串行通信测试场景:Threading与asyncio选型问询(Python DUT并行测试)
Python DUT测试并发模型选型咨询
我正在使用Python运行串行命令测试被测设备(DUT),为提升测试效率需实现并行/并发执行,现寻求该场景下最适配的并发模型建议。
当前需求
- 单台DUT的测试步骤需串行执行,但多台DUT可并行测试——测试任务为并行执行的工作单元
- 测试可能涉及阻塞/非线程安全的共享资源(服务器/数据库连接、辅助硬件等)——需管控共享资源访问
- 测试瓶颈在于向DUT发送命令后的等待阶段(等待响应或轮询状态),此阶段可处理其他DUT命令或计算——需利用等待间隙实现并发
倾向的并发模型:threading
我更倾向采用threading模型,理由如下:
- 使用
async需额外开发DUT命令的异步API,开发成本较高 - 除共享资源管控外,并行测试仅需收集最终结果,线程间通信需求极少,同步逻辑简单
设想的解决方案
- 将测试计划拆解为多个串行执行的步骤
- 单个测试步骤拆分为多个并行测试任务,每个任务在独立线程中运行
- 通过
locks与mutexes实现共享资源的线程安全访问
希望得到对该思路的反馈,也欢迎提出async模型的适配理由!
内容的提问来源于stack exchange,提问作者frimann
相关产品推荐
相关产品推荐

