【架构艺术】自动化测试平台架构设计的一些通用要点

在Game-Of-AutoTest系列的文章当中,曾经深入聊到如何做好游戏自动化测试的技术实践,包括用例编写和任务调度等多个方面。由于工作原因,笔者再一次需要了解自动化测试平台的整体架构,因此也借着这个机会,从更加宏观的角度,再聊一下自动化平台架构设计的一些通用要点。

首先从细粒度的来讲,测试用例testcase管理是基础,一个最简单的测试用例需要包含标题、setup、执行步骤以及teardown等环节。而执行步骤里面,由于要做自动化测试,所以需要拆分成较细的step粒度,每个step粒度可能有不同的操作类型,比如正常和真机交互断言,或者是对外发送HTTP请求这类,都可以算作是一类步骤,所以如果有共性的步骤的话,也可以抽象出步骤集能力,方便多场景共用。再往宏观一点的话,testcase需要打标,需要通过集合、类别、场景以及业务等维度去做统一的管理。作为一个自动化测试平台,需要有这么样一套索引机制,让测试同学更好使用整套产品。

然后是自动化用例的执行,这里首先需要注意执行是有多个粒度的。假使一个大的客户端版本发布,那么这个版本可能对应多个OS的客户端,执行多个场景的用例。那么自顶向下来看,首先有那么一套集成测试任务,下面会挂很多个用例的子任务,每个用例可能在多端运行,如果单端运行失败也需要有历史记录,所以起码得有4张表去描述整一套业务集成测试这个事情。一个用例执行也需要关联很多内容,除了包体信息之外,机器调度、状态周知、环境变量、执行策略以及webhook等各种任务执行相关的元素都是需要考虑的,所以如果有共性的一些东西的话,也可以抽象出来任务模板能力,方便任务复用。

之后是任务调度、执行和监控。调度的话通常逻辑是先访问设备管理服务,给设备上锁,然后要求用例执行服务操作这个设备,执行自动化测试操作。任务执行过程中,就需要考虑如何保障任务执行稳定性,这部分先前的文章有聊,此处不再赘述。如果人力充足且服务数量较多的话,最好是通过MQ的形式在不同服务之间搭桥,驱动执行状态变化,这么做的原因正好是执行是多粒度且状态是相互依赖的,只有最小粒度执行状态变化了,粗粒度的执行才跟着变化,这样就不容易出现卡状态的情况。如果人力不充足的话,最好是统一通过外部定时任务推动任务状态执行跟补偿,这样服务间职责会更加清晰一些。

最后就是需要做好任务执行的trace模块,精确到每一个客户端执行的每一个Step,每一个Step需要记录操作日志、截图、结果以及思考等多类元信息,这样不论是调试用例还是排查线上问题都是非常方便的,能显著提升工作效率。从业务视角,自动化测试的稳定性和结果的可读性会显著动化测试问题是否能快速跟进,进而影响这个事情在业务里是否能长久的推下去。

相关推荐
亥时无人机管理系统21 分钟前
一网统飞无人机管理系统源码深度评测
架构·私有化部署·无人机·低空经济·无人机管理系统·一网统飞
石逸凡24 分钟前
金融产品架构演进之三:极速、一致与高可扩展并存核心目标
金融·架构
吴建旭 智宅焕1 小时前
智能家居全国交付中双边平台冷启动的供给治理架构:从预期管理到分层调度
架构·智能家居
得助智能-垂类大模型2 小时前
降低大模型推理成本:2026企业级模型推理平台核心架构与选型指标
架构
伯奥克客服2 小时前
2026年专业全域智能管控平台怎么选?底层架构与协议对接深度解析
架构
海宇服务2 小时前
零信任架构实战:基于海宇全国车辆配置查验构建自动化二手商用车出厂参数建档网关
运维·人工智能·架构·自动化·1024程序员节
七夜zippoe2 小时前
软件工程3.0时代,大模型驱动测试实战指南
大模型·实战·软件工程·测试·驱动软件
代码方舟2 小时前
零信任架构实战:基于天远人企关联构建自动化供应链核心企业关联穿透与利益冲突审查网关
java·人工智能·架构·自动化
奈落243 小时前
Dify 管对话、n8n 管执行:把‘大脑+手脚‘的组合架构对照三方平台资料读清楚
人工智能·架构·agent·ai 办公