自动化测试作为常规测试手段之一,已经有非常成熟的自动化工具领域了。目前市场上自动化工具繁多,测试人员在针对性选择时可以从以下几个角度进行评估。
- 基于质量分层进行选型:
- 系统级测试通常选择UI自动化。国内主流UI自动化当前以selenium/appium为主,基于dom元素进行定位,实现元素操作,从而验证页面UI交互和系统级响应的正确性。
- UI自动化的优点有:技术框架成熟、元素识别和定位简单、有稳定的录制回放工具,可以实现0代码用例;从质量上可以实现端到端的最终效果验证。
- UI自动化的缺点有:稳定性差(全系统集成,依赖多)、排查成本高(定位链路长)、需要独立的测试机。
- 基于以上优缺点,UI自动化通常只用来做核心流程的校验。
- 接口级测试通常选择接口自动化工具,场景的有apifox、jmeter(是的,也有很多人用jmeter做接口自动化)等,通过覆盖不同协议的接口api来实现自动化测试。
- 接口自动化的优点有:稳定性高、有很多0代码界面操作工具、覆盖率容易提升(通常api功能可以实现100%自动化覆盖)
- 接口自动化的缺点有:链路不完整,缺少前端UI层,无法覆盖前端代码缺陷等。
- 系统级测试通常选择UI自动化。国内主流UI自动化当前以selenium/appium为主,基于dom元素进行定位,实现元素操作,从而验证页面UI交互和系统级响应的正确性。
- 基于开发阶段进行选型:
- 系统开发阶段通常选择单测、接口测试:由于处于代码开发阶段,因此对应自动化手段也偏向于代码层自动化,便于集成到CI阶段,可以用于研发在local开发阶段进行自测、准入测试。
- 系统提测后通常选择接口测试、大数据对比测试:大数据对比测试是指通过复制已有流量数据/测试数据,批量对系统发起请求,并对返回结果进行diff对比。该类自动化不关注具体场景,而是通过返回结果的分析进行异常排查,确认已有功能的质量。
- 基于产品特性进行选型:
- 密集升级的产品通常选择高代码自动化,便于改动和升级维护;
- 稳定迭代的产品通常选择集成端到端的自动化方式,便于验证最终效果。