3. 测试环境搭建:硬件、软件与网络配置
环境搭建这事儿,说简单也简单,说复杂能让你折腾一整天。我见过太多测试用例写得漂亮,结果环境没搭好,半天出不了数据的案例。说白了,环境搭得稳,测试就成功了一半。
咱们分三块来讲:硬件环境、软件环境、网络环境。每一块都有坑,我尽量把踩过的坑都告诉你。
3.1 硬件环境搭建
硬件环境是基础,也是最容易出幺蛾子的地方。你想想看,设备、线缆、工装,哪个环节松了都不行。
3.1.1 设备清单与准备
先列个设备清单,别到了现场才发现少东西。我个人习惯是提前三天就把清单拉出来,逐项打勾。
| 设备类型 | 典型设备 | 关键检查项 |
|---|---|---|
| 被测设备(DUT) | 嵌入式主板、传感器模组 | 固件版本、供电电压、接口完好 |
| 测试仪器 | 示波器、万用表、频谱仪 | 校准有效期、探头衰减比设置 |
| 辅助设备 | 可编程电源、电子负载 | 输出纹波、过流保护阈值 |
| 工装夹具 | 烧录座、测试针床、转接板 | 针脚对位、接触阻抗 |
3.1.2 线缆选择与连接
线缆这事儿,很多人不重视。其实线缆选不对,信号质量直接崩。
- 信号线: 高速信号(如I2C、SPI超过1MHz)必须用屏蔽双绞线,长度控制在30cm以内。我见过有人用杜邦线飞了半米长,结果波形惨不忍睹。
- 电源线: 线径要够粗。比如给一个5V/3A的设备供电,至少用AWG18以上的线,否则压降会让你怀疑人生。
- 接地线: 所有设备共地,这是铁律。不共地的话,共模干扰会让你抓狂。
3.1.3 工装夹具验证
工装夹具是连接DUT和测试仪器的桥梁。我建议每次测试前都做一次“空载验证”——不接DUT,先用万用表测一下工装上的电源和地是否短路。
为什么会这样?因为工装用久了,针脚可能会歪,或者有焊锡碎屑掉进去。短路一发生,轻则烧保险,重则烧DUT。
3.2 软件环境搭建
硬件搭好了,接下来就是软件。软件环境包括驱动、中间件和模拟器。这三样缺一不可。
3.2.1 驱动安装与验证
驱动是操作系统和硬件之间的翻译官。装驱动有个顺序:先装芯片组驱动,再装外设驱动,最后装测试仪器驱动。
# 以Linux环境为例,检查驱动是否加载
lsmod | grep usb
dmesg | tail -20
# 查看设备节点
ls -l /dev/ttyUSB*
装完驱动后,一定要做验证。我习惯写一个简单的读写测试脚本,确认驱动能正常工作。
3.2.2 中间件配置
中间件是连接测试程序和硬件的桥梁。常见的中间件有ROS、MQTT、Modbus协议栈等。
配置中间件时,重点关注三个参数:
- 通信协议: TCP/UDP、串口波特率、CAN总线速率,必须和硬件端一致。
- 超时时间: 设得太短容易误报,设得太长影响测试效率。我一般设500ms,然后根据实际调试再微调。
- 日志级别: 调试阶段设DEBUG,正式测试设INFO或WARN。否则日志文件会爆炸。
3.2.3 模拟器部署
模拟器用来模拟真实环境中的其他设备。比如测试一个温度传感器,你可以用模拟器生成温度数据,而不是真的去烤炉子。
部署模拟器时,要注意模拟器的精度和实时性。我曾经遇到过一个模拟器,它生成的数据是理想曲线,但实际传感器数据是有噪声的。结果测试用例全过了,一到现场就崩。
3.3 网络环境配置
现在的设备大多联网,网络环境配置不好,测试结果就没意义。
3.3.1 网络拓扑设计
先画网络拓扑图。我习惯用SVG画一张简单的图,贴在工位上,方便随时看。
3.3.2 IP地址与端口规划
IP地址要提前规划好,别用DHCP自动分配。我建议用静态IP,方便排查问题。
| 设备 | IP地址 | 端口 | 用途 |
|---|---|---|---|
| 测试服务器 | 192.168.1.100 | 8080 | Web管理界面 |
| DUT 1 | 192.168.1.101 | 502 | Modbus通信 |
| DUT 2 | 192.168.1.102 | 502 | Modbus通信 |
| 模拟器 | 192.168.1.200 | 8888 | 数据注入 |
3.3.3 网络连通性验证
配置完了,得验证一下。我一般做三步验证:
- Ping测试: 确认IP层通不通。
- 端口测试: 用telnet或nc测试指定端口是否开放。
- 应用层测试: 发一条真实协议的数据,看响应是否正确。
# 第一步:Ping测试
ping 192.168.1.101 -c 4
# 第二步:端口测试
nc -zv 192.168.1.101 502
# 第三步:应用层测试(以Modbus为例)
modbus_client -t tcp 192.168.1.101 -p 502 -r 1 -c 10
好了,硬件、软件、网络,三块都搭好了。别急着开始跑用例,先花10分钟做个整体检查。我每次都会拿着清单逐项打勾,确认无误后再上电。这个习惯救了我很多次。