简介:《TM500 LTE Test Mobile Application用户指南》是Aeroflex(艾法斯)官方发布的TD-LTE基站测试工具手册,面向华为、中兴、大唐、诺基亚-西门子等设备厂商的研发与测试工程师,解决基站射频性能、协议栈和系统级行为的验证难题。这份指南详细介绍了TM500测试终端如何模拟真实移动终端,如何在实验室重现实际网络条件,并给出了测试场景搭建、设备配置、操作步骤、示例配置与故障排查等完整流程。手册覆盖多种网络制式,支持TD-LTE基站的射频一致性、协议一致性与应用层性能测试,同时提供文本约定、文档套件指引、支持培训渠道及反馈机制,方便不同层级用户快速找到所需信息。资源共1个文件,为DOCX格式文档,压缩包大小4.62MB,文档目录清晰、模块化组织,适合按需查阅。目前已有278人学习下载,尤其适合需要在实验室环境中精准验证LTE基站性能的工程师参考。
1. 一张 2010 年的用户手册,为什么仍是 LTE 测试入门的必修课:TM500 LTE Test Mobile Application 是什么
第一次拿到 TM500 测试手机的人,打开 PC 端的 TMA(Test Mobile Application)通常都是同一个反应:窗口七八个、菜单十几条、测试步骤上百种,没人告诉你某个信道参数该填整数还是枚举,也没人告诉你日志转换失败到底是格式选错还是日志没写完。这份 2010 年 2 月 26 日发布的《TM500 LTE Test Mobile Application User Guide》,原厂文档号 46882/878 Issue 16,在 LTE 基站研发与生产测试圈子里几乎算得上入门教材。
它解决的不是“哪个按钮干什么”,而是“怎么把测试场景想清楚再落到 TMA 里”。TM500 本身是一台模拟真实终端的网络测试仪,用来验证基站的射频指标、协议栈行为和数据业务能力,而这份手册讲的就是如何操作 TMA 把这个验证过程跑起来。适合三类人:刚接手 LTE 基站测试的新手,从其他仪表平台转过来想快速上手的老手,以及要给团队搭自动化回归环境的人。
2. 把 TMA 驯服成自己的测试工具:主窗口、工具窗口与 11 组 Preferences 的取舍
TMA 是运行在 PC 上的 TM500 控制端软件,测试人员看到的界面就是它的主窗口:上方是菜单和工具栏,中间是工作区,底部是状态栏。真正干活全靠那些 Tool Windows——Test Manager、测量视图、日志窗口、Command Line、Error Monitor、会话历史,每个都可以独立停靠、浮动和重新排列。布局这东西很玄学,同一个项目组里,两个人屏幕上的 TMA 往往是两副面孔,但测试结果必须对齐,所以第一步别急着点按钮,先把窗口和偏好设置统一。
2.1 主窗口与工具窗口:先认识布局再干活
TMA 主窗口本身不承载具体测试逻辑,它更像一个容器,所有功能都以工具窗口的形式挂在上边。默认打开时,Test Manager 通常占据左侧或中央,测量和日志窗口分布在下方或右侧,Error Monitor 平时处于收起状态。工具窗口可以拖出来变成浮动窗,也可以停靠到任意边缘,双击标题栏还能自动收缩成侧边条。
我一般会按“左侧测试管理、中间测量视图、下方日志与错误监视、右侧会话历史”的方式排,把最常用的几个窗口固定,不常用的收进自动隐藏。这样跑一个长时测试时,眼睛不需要在屏幕上找窗口。文档里专门有一节讲 Arranging Tool Windows,就是告诉你怎么把窗口排成自己顺手的样子。注意一点:窗口布局是随会话保存的,如果 TMA 异常退出,布局可能回滚到上一次正常关闭的状态,所以别在界面卡死时直接杀进程。
2.2 11 组 Preferences 分别管什么
Preferences 对话框里能看到全部运行参数,文档把它们分成 11 组。这 11 组不是都可以乱动的,我按影响面排了个序,表格里标注了每组跟日常操作的关联度。
| Preferences 分组 | 主要配置内容 | 对日常测试的影响 |
|---|---|---|
| Connection | TM500 设备标识、连接链路类型、端口参数 | 连不上设备时先查这里 |
| Data Log | 日志保存目录、文件命名规则、写入方式 | 决定后处理找不找得到文件 |
| Conversion | log 文件转换的目标格式与输出目录 | 转换失败时首先排查 |
| Command Line | 命令行窗口行为、外部命令调用 | 自动化场景必须设对 |
| Error Monitor | 错误监视的显示策略与触发条件 | 排障时信息全不全看这里 |
| External Tools | 外部辅助工具的路径和调用参数 | 扩展分析能力时用 |
| Session History | 会话历史的保存策略与深度 | 影响回放和界面性能 |
| Performance Tuning | 日志缓冲大小、处理线程优先级 | 长时间测试卡不卡看这里 |
| Performance Charting Priority | 图表刷新优先级与绘图节流 | 界面响应速度直接受影响 |
| Test Manager | 测试管理器的默认行为和显示选项 | 写脚本的效率 |
| Incident Reporting | 事件报告的产生条件与收集范围 | 故障定位辅助 |
这里面 Connection、Data Log、Conversion 和 Performance 四组是日常最常动的,下面展开说。
2.3 连接偏好与性能偏好:最影响实操的两组
Connection preferences 决定了 TMA 能挂上哪台 TM500。常见配置项包括设备地址、连接端口、终端编号,以及是否需要拨号建立链路。如果状态栏一直显示 Offline,先别怀疑仪表坏了,多数情况是这里的终端编号和 TM500 面板上的编号对不上,或者连接方式选错了。文档里提到的 TMA remote automation 也依赖这一组配置,远程自动化模式下,连接参数是否正确直接决定脚本能在哪台机器上跑起来。
Performance Tuning 是另一组容易被忽略但很关键的设置。TM500 长时间跑自动测量时,数据量会持续灌进日志缓冲,如果缓冲太小而界面又在实时刷新图表,TMA 会越来越迟钝。做长时间稳定性测试之前,我一般会把日志缓冲调到较大档位,把 Performance Charting Priority 里的图表刷新优先级调低,让界面绘制给数据处理让路。这个思路跟做服务器压测时关掉可视化是一个道理,界面好看不如数据完整。
2.4 数据日志、转换与会话历史偏好:把后路铺好
Data Log preferences 设置的是测量日志写到哪里、文件名怎么生成。很多团队一开始用默认目录,跑几天测试后发现日志散落一堆,连哪条对应哪次测试都分不清。我习惯把输出目录改成按日期命名的子目录,一天一个文件夹,文件名里带测试场景名,这样后处理省事很多。
Conversion preferences 关系到日志后处理。TMA 记录的原始 log 文件格式并不适合直接做数据分析,通常要转成更通用的文本或表格格式。这里需要指定目标格式、转换后的输出目录,以及是否保留协议原始数据。Session History preferences 则控制会话历史保留多长时间、记录哪些操作。它看起来只是“留个操作记录”,但真到了复现问题、对比两次测试差异的时候,会话历史就是后悔药。
3. 用 Test Manager 组织测试流程:套件、用例、脚本和 Test Steps 参数的填法
Test Manager 是 TMA 里组织测试用例的核心窗口。新手最容易犯的错是直接在某个测试步骤上改参数跑一次,跑完就丢,下次要用再重新配一遍。文档的第 4 章和第 5 章合起来看,才知道 Test Manager 的层级和 Test Steps 的参数规则是一套完整的组织方法。
3.1 Test Manager 的层级:套件、用例、脚本、命令
Test Manager 的层次关系很清晰:测试套件(Test Suite)是最顶层,套件下面挂测试用例(Test Case),用例里面是测试脚本(Test Script),脚本由一条条命令(Command)组成,而命令本质上就是在执行具体的测试步骤。模板和快捷方式在这一层很实用,模板可以把一组配置好的步骤存下来反复引用,快捷方式则能跨套件直接跳转到某个用例。
文档里提到的 Working with Test Suites、Test Cases、Test Scripts、Commands 四节,对应的就是这四级结构。实际项目里我建议按“套件对应一轮测试任务、用例对应一个测试场景、脚本对应场景里的一组操作”来划分,而不是把几十个用例平铺在同一个套件里。层级分好了,后面加注释、做筛选、生成报告都方便。
3.2 生成一个简单脚本的五个动作
文档里有个“How to generate a simple script”的专题,它给出的路径其实可以压缩成五个动作:
- 在 Test Manager 窗口新建一个测试套件,命名时带上项目名和日期。
- 在套件下新建测试用例,写清楚验证目标。
- 在用例里添加测试脚本,脚本名建议按测试步骤顺序编号。
- 在脚本中添加测试步骤,从步骤列表里拖入 System Control、Channel Configuration、Measurement 等节点。
- 逐个配置步骤参数,确认无误后保存。
这五个动作看起来简单,但第 4 步和第 5 步才是真正的门槛。测试步骤有一百多种,每种步骤的参数类型和取值范围都不同,后面单独讲。保存之后,整个套件可以整体导出、复制或归档,下次做回归测试直接把历史套件调出来改参数就行,不用从零搭。
3.3 测试步骤组速查表
文档第 5 章给了一份完整的测试步骤列表,按功能分成了 12 组。我把它整理成一张速查表,日常写脚本时对着这张表找步骤会快很多。
| 步骤组 | 典型用途 | 常用参数 |
|---|---|---|
| System Control | 系统复位、电源状态控制、等待时间 | 复位模式、延时 |
| Script Control | 脚本内分支、循环、等待和跳转 | 条件参数、循环次数 |
| Measurement | 发起手动或自动测量,控制日志记录 | 测量组、类别、记录时长 |
| Layers 1/2 | 物理层和数据链路层行为配置 | 调制方式、重传次数 |
| Channel Configuration | 配置上下行物理信道参数 | 频点、带宽、RB 起始位置 |
| Channel Deletion | 删除已配置的信道,复位信道状态 | 信道索引 |
| Test Features | 打开或关闭专项测试特性 | 特性开关、特性参数 |
| Higher Layers | 配置 RRC 等高层协议行为 | 消息类型、内容字段 |
| NAS | 控制附着、去附着等 NAS 信令流程 | 附着类型、APN |
| APT | 与 APT 相关的测试流程控制 | APT 模式、触发条件 |
| Data Service Generator | 产生上下行数据业务流量 | 包大小、速率、持续时间 |
| Override Tables | 覆盖协议栈默认参数表 | 参数 ID、覆盖值 |
这张表不需要背,但它能帮你在写脚本时迅速判断“我要做的动作属于哪一组该去哪里找”。其中 Override Tables 最容易忽略,它适用于想强制测试边界参数的场景,比如把某个定时器设成协议允许的最小值。
3.4 测试步骤参数怎么填:枚举、数值与边界
测试步骤参数的类型大致分四类:整数、枚举、布尔、字节串。整数参数有范围限制,枚举参数只能选下拉列表里的值,布尔参数就是开或关,字节串参数按十六进制填。参数填错时系统会报 invalid value,但不会告诉你具体是哪个字段,只能自己排查,这个坑后面第 5 章会具体讲。
举个例子,配置一个下行信道时,频点、带宽、RB 起始位置和调制方式是典型的四类参数。常见做法是先在界面上把这些参数填好,再把脚本导出看内部结构,大致会长这样:
<!-- 一个典型的测试步骤参数配置示例,实际结构与TMA导出格式相关 --> <testStep type="ChannelConfiguration" name="配置PDSCH"> <parameter name="band" value="38"/> <parameter name="dlEarfcn" value="38000"/> <parameter name="bandwidth" value="20"/> <parameter name="rbStart" value="0"/> <parameter name="rbCount" value="100"/> <parameter name="modulation" value="QPSK"/> </testStep>这里几个参数的填法很有代表性:band 和 bandwidth 是整数,bandwidth 的取值必须是协议规定的集合之一;rbStart 和 rbCount 是整数,但 rbStart 加 rbCount 不能超过带宽对应的 RB 总数;modulation 是枚举,只能填 QPSK、16QAM、64QAM 这类固定值。如果你把 modulation 填成小写 qpsk,或者把 rbCount 填成超出范围的值,保存时就会报错。所以我建议在界面里选参数而不是直接手敲,界面会约束取值范围。
3.5 模板与快捷键:减少重复劳动
同一个测试场景反复跑的时候,模板的价值就体现出来了。把一组配好的 Channel Configuration 步骤存成模板,新用例里直接拖进来再改个别参数,比重新填一遍快得多,而且不容易填错。文档里提到 Creating Shortcuts 也是这个思路,把常用的用例或脚本加到快捷方式里,避免每次都在套件树里层层展开。
另外文档还专门讲了 Adding and Editing Comments,这一步别偷懒。测试步骤加上注释,说明“这个参数为什么这样设”,两周后你自己回来看脚本都省力,更别说团队其他人要接手你的测试套件。注释不多占资源,但排障时能省几个小时。
4. 测量、日志与会话回放:从 L3 Status 到星座图的完整数据链路
Test Script 跑起来之后,真正要盯的是测量结果和日志。文档第 6 章把测量和日志放在一起讲是有道理的——测量配置决定采集什么数据,日志决定数据落到哪里,而会话历史决定了事后能不能把现场完整还原。这一整条链路理顺了,测试才不是黑匣子。
4.1 三种日志类型怎么选
文档把 Logging Types 分成三大类:Layer 3 Status 日志、手动测量日志、自动测量日志。三者的区别不只是触发方式,而是适用场景完全不同。
| 日志类型 | 适用场景 | 特点 |
|---|---|---|
| L3 Status Logging | 观察 RRC、NAS 等协议状态变迁 | 记录信令状态流,适合协议调测 |
| Manual Measurements | 手动触发专项测量,跑一次看一次 | 数据量小,适合定位问题 |
| Automatic Measurements | 长时间稳定性测试、回归测试 | 按事件或周期自动记录,适合批跑 |
L3 Status 日志在排查“终端为什么没附着上”这类问题时最有用,它能看到协议状态走到哪一步断掉的。手动测量适合单点验证,比如刚改完一个射频参数,立刻拉一次测量看结果。自动测量则是长时间跑测试的主力,日志按预设条件触发,磁盘占用可控,不会把所有原始波形都存下来。
4.2 测量组和类别:附录 A 的 ID 表怎么查
文档附录 A 是一张 Measurement Group and Category ID 对照表,这是配置 Measurement 测试步骤时的核心依据。测量组是大类,比如射频信号质量、传输性能、协议行为,每个组下面再分若干 Category,对应具体测量项。配置步骤时要先选 Group 再选 Category,然后指定日志类型和记录时长。
这里有个易踩的坑:不同软件版本下,Group 和 Category 的 ID 编号可能调整过,不要凭记忆填数字。配置时从界面下拉列表里选,或者对照手册附录 A 的当前版本核对。表结构大致是这样,具体 ID 以文档附录为准:
| Group 用途 | 常见 Category | 记录内容 |
|---|---|---|
| 射频信号质量 | EVM、频率误差、发射功率 | 调制精度与功率参数 |
| 传输性能 | BLER、吞吐量 | 数据面传输质量 |
| 协议行为 | 状态迁移、定时器超时 | 信令流程与状态 |
测量配好之后,TMA 生成的星座图是判断调制质量的直观手段。看星座图时盯着 EVM 数值和散点分布,点位聚拢且偏离理想点小,说明射频链路质量好;散点发散成环形或者云状,大概率是相位噪声或放大器线性度问题。
4.3 数据日志选项与 log 文件转换
Data Logging Options 控制日志以什么规则写入磁盘,包括文件命名、保存目录、是否记录协议原始数据、以及磁盘满时是否循环覆盖。长时间跑测试建议开启循环覆盖,同时把日志目录放在剩余空间充足的盘上,避免日志写满系统盘导致 TMA 卡死。
原始 log 文件转成通用格式的操作,文档里专门有 Converting Log Files 一节。基本流程是:
- 在测量视图或会话历史里选中要转换的日志文件。
- 打开 Conversion 设置,选择目标格式和输出目录。
- 确认源日志没有还在写入的状态,日志记录完全停止后再转。
- 执行转换,等进度条走完。
- 用文本编辑器或表格工具打开结果,抽查几个关键字段确认没有乱码。
转换失败的常见原因,一是目标格式选错,二是日志文件本身损坏或没写完整,三是记录过程中 TMA 异常退出导致文件头缺失。判断标准很简单:先用 TMA 自带的测量视图打开这个日志,如果 TMA 自己都打不开,转出来大概率也是废文件。
4.4 会话历史:排查问题的后悔药
Session History 会记录 TMA 的完整操作轨迹,包括每次跑了哪些测试步骤、改了哪些参数、产生了哪些日志。文档里的 Using Session History、Exporting and Importing Sessions、Generate Command Log Files、Generate Data Files from the Session History 这几节,讲的都是怎么利用这份历史。
排查问题时我的习惯是:先打开会话历史,看测试执行时间线,定位到出问题的那一次,再看当时的参数和日志。这样比凭记忆复现现场可靠得多。会话历史还可以导出导入,换一台机器或者把测试现场发给同事分析,都能保持现场原样。
5. 常见问题与排查:接不上、找不到、参数不生效的五个翻车现场
用了这份手册之后,最常见的求助不是“这个功能怎么用”,而是“为什么设置对了还是不行”。下面这五个场景我基本都撞过,写出来省得你再翻一遍文档。
5.1 连不上 TM500
现象:TMA 状态栏一直显示 Offline,连接操作没有任何反应。
原因:Connection Preferences 里的终端编号和 TM500 面板不一致,或者连接链路类型配置错误;还有一种情况是 TM500 本身没有处于可连接状态。
解决:先看 TM500 面板状态,确认它已经上电并进入等待连接状态,然后逐项核对 Connection 配置里的设备标识和端口参数,最后打开 Error Monitor 看底层错误信息。换一台确认正常的 TM500 试一下,能快速判断是不是仪表侧的问题。经验是,八成情况出在终端编号填错,不是设备坏了。
5.2 调好的窗口布局重启就乱
现象:前一天排好的工具窗口位置、显示状态,第二天开机全回到默认布局。
原因:布局状态是随会话保存的,TMA 异常退出时配置没有写回,回滚到了上一次正常关闭时的样子;或者当前使用的 Profile 本身没有保存布局信息。
解决:调好布局后,正常退出 TMA 之前确认会话历史里有对应的关闭记录,同时把配置存成一个专用 Profile。不要直接结束进程退出 TMA,尽量走正常关闭流程。
5.3 测试步骤参数报非法值
现象:保存测试脚本时提示 invalid value,但对话框没标出是哪个参数不合法。
原因:枚举参数填了自由文本,或者整数参数越界;还有一种情况是参数之间存在联动关系,比如 RB 起始位置加 RB 数量超过当前带宽允许的最大值。
解决:鼠标悬停在字段上查看类型提示,枚举参数必须从下拉列表里选;整数参数先确认取值范围,再确认跟其他参数的联动约束。最稳妥的方式是从已验证的脚本里复制一个同类型步骤改参数,而不是从空步骤开始填。填入成功后立即保存一次,把“合法值”固化下来。
5.4 日志转换结果打不开
现象:转换完成后的文件在文本编辑器里是乱码,或者打不开。
原因:Conversion 偏好里的目标格式选错,源日志和输出格式不匹配;另一个常见原因是日志还在写入时就启动了转换,读到了半个文件。
解决:等日志记录完全停止再执行转换;转换前用 TMA 自带的测量视图先打开日志确认文件完整;检查 Conversion 偏好里的输出格式设置,改成实际需要的文本或表格格式。
5.5 长时间测试越跑越卡
现象:自动测量跑了半小时后,界面点击延迟越来越高,日志窗口刷新肉眼可见地慢。
原因:Performance Tuning 里的日志缓冲设得太小,或者 Performance Charting Priority 里图表刷新优先级太高,界面绘制抢占了数据处理资源。
解决:在 Preferences 里调大日志缓冲,把图表刷新优先级降低。如果只是做自动化回归,不需要人工盯界面,就进入远程控制模式,让 TMA 在后台跑,把界面刷新降到最低。跑长任务前先做一个 10 分钟的短任务验证稳定性,再放开跑整晚。
6. 用 RCI 把 TMA 变成自动化黑匣子:远程连接、命令分类与批处理封装
TMA 本身支持远程自动化,文档第 11 章讲的 Remote Control Interface(RCI)就是干这个的。日常手工操作 Test Manager 写脚本只能算第一步,真正提升效率的是把 TMA 纳入自动化测试框架,让脚本调度仪器而不是人去点按钮。
6.1 远程连接的两种姿势
一种是在本机的 Windows 命令行里启动 TMA,带参数直接进入测试场景;另一种是从另一台电脑通过网络连接到 TM500,由 TM500 上的 TMA 接收外部命令并执行。后一种适合把测试终端放在实验室、人在办公室调度的场景。RCI 是 TMA 暴露给外部程序的接口,通过它可以实现连接的建立和断开、日志配置和测试执行控制。
6.2 LC_GRP 与 LC_CAT 和日志控制命令
RCI 命令大体分成四类:连接与断开、日志配置、日志控制、状态指示。日志配置里最常用的是 LC_GRP 和 LC_CAT,分别用来选择测量组和测量类别。比如先执行 LC_GRP 选射频信号质量这一组,再用 LC_CAT 选 EVM 这个类别,最后用日志控制命令启动记录。状态指示消息则把测量结果和执行状态回传给外部脚本,供上层框架判断测试是否通过。
一个最小自动化流程的命令序列大致是这样:
@echo off REM 最小自动化流程:连接 TM500 -> 配置测量 -> 启动日志 -> 执行测试 -> 停止日志 -> 断开 RCI_CONNECT 192.168.1.100 LC_GRP 1 LC_CAT 3 LOGGING_START REM 这里插入测试场景触发命令,比如配置信道或启动数据业务 LOGGING_STOP RCI_DISCONNECT这段脚本的逻辑很直白:先建立连接,接着选测量组和类别,启动日志,等测试场景执行完再停止日志,最后断开连接。实际项目中,中间那段注释位置通常是一条或一组控制测试步骤执行的命令,具体命令名取决于你的测试场景编排方式。封装成批处理之后,整个回归流程可以被外部框架反复调用,每次测试的日志文件还能按时间戳自动归档。
我刚做自动化那阵子,总想一口气把所有命令写进一个脚本,结果一跑就卡在某个环节,翻日志排查半天。后来固定了一个习惯:每次搭批处理之前,先手动跑一遍最小流程,确认连接、测量组、日志控制三个环节都通,再往脚本里补测试动作。从那以后,我每次写 RCI 脚本都强制走一遍这个最小验证,翻车率降了大半。这份用户指南的 PDF 版我已经整理进下载资源,里面包含完整的测量分组附录和命令参考,做自动化搭建时可以直接对照着查。希望帮到你。
本文还有配套的精品资源,点击获取