Tbox(车载智能终端)是车联网核心部件,负责车辆数据采集、远程控制、紧急呼叫等关键功能。
【行业背景】随着车联网快速发展,Tbox产品面临多型号并行(M1/V1/Y3)、测试类型复杂(功能/性能)、硬件接口多样(adb/CAN/串口)的测试挑战,手工测试已无法支撑快速迭代需求。
【立项原因】本项目旨在解决Tbox产品测试效率低下、多型号维护困难、回归测试周期长的痛点,通过构建自动化测试框架,将测试人员从重复劳动中解放出来,提升产品质量和交付效率。
点击空白处退出提示
Tbox(车载智能终端)是车联网核心部件,负责车辆数据采集、远程控制、紧急呼叫等关键功能。
【行业背景】随着车联网快速发展,Tbox产品面临多型号并行(M1/V1/Y3)、测试类型复杂(功能/性能)、硬件接口多样(adb/CAN/串口)的测试挑战,手工测试已无法支撑快速迭代需求。
【立项原因】本项目旨在解决Tbox产品测试效率低下、多型号维护困难、回归测试周期长的痛点,通过构建自动化测试框架,将测试人员从重复劳动中解放出来,提升产品质量和交付效率。
【功能模块一:多型号统一测试框架】
支持M1、V1、Y3三个型号的Tbox产品,共用一套测试逻辑。新增型号只需在testcase下添加文件夹,核心代码零修改,大幅降低多版本维护成本。
【功能模块二:功能测试+性能测试全覆盖】
每个型号独立划分functional(功能测试)和performance(性能测试)目录:
- 功能测试:覆盖adb命令执行、电池状态读取、Flash信息获取、GPS供电控制、MCU模块检测、电源管理、RTC读写、版本号查询等核心功能
- 性能测试:涵盖响应时间、CPU占用、内存使用等关键指标
【功能模块三:分层架构设计】
- 用例层(testcase):按型号管理,每个用例含详细步骤说明
- 实现层(logic):用例具体实现,公共逻辑下沉复用
- 服务层(baselib):封装adb/can/serial等底层操作
- 扩展库(extralib):集成ControlCan.dll等第三方动态库
【功能模块四:多种硬件通信协议支持】
- adb(Android调试桥):用于Android系统交互、应用调试
- CAN(控制器局域网络):用于车载总线通信,模拟整车环境
- 串口(Serial):用于调试和数据传输,支持日志采集
【功能模块五:动态库无缝集成】
通过ctypes封装ControlCan.dll,Python代码可直接调用C动态库,实现高效稳定的CAN通信,无需额外开发中间件。
【功能模块六:性能监控自动采集】
封装性能监控装饰器,自动采集测试过程中的响应时间、CPU占用、内存使用等数据,生成标准化测试报告。
【我负责的具体任务】
独立完成:
1. 测试框架架构设计(分层:testcase/logic/baselib/extralib)
2. 底层通信封装:adb、CAN、串口协议的Python封装
3. 动态库集成:ctypes封装ControlCan.dll(C库),解决Python调用问题
4. 多型号支持:M1/V1/Y3共用一套核心代码
5. 用例规范制定:设计包含目的/前置/步骤的模板
【技术栈】
pytest + Python 3.8 + adb/CAN/串口 + ctypes
【实现难点与亮点】
难点一:多型号统一管理
方案:分层架构,公共逻辑下沉到logic层,用例层只关注步骤
效果:新增型号只需添加用例文件,核心代码零修改
难点二:C库Python封装
方案:ctypes精确封装C库,定义参数类型和返回值
效果:测试代码可像调用普通函数一样使用CAN功能
难点三:硬件通信抽象
方案:baselib层统一封装adb/CAN/串口,对外提供一致API
效果:测试代码只关心业务逻辑,无需关注通信细节
难点四:用例可维护性
方案:用例模板包含目的/前置/步骤/预期,规范注释
效果:新人上手时间从1周缩至1天
【项目成果】
覆盖M1/V1/Y3三个型号,自动化用例120+个
测试效率提升6倍(3天→4小时)
回归覆盖率100%,上线缺陷率下降80%
累计节省测试人力约20人月




评论