自动化测试之技术选型

前言

本选型来自于6年前,前公司准备开展自动化时,本人基于当时市面自动化工具以及技术的调研思考结果。

选型指标

  1. 校验(断言):需要支持对请求状态码、接口返回值等进行校验。

  2. 数据隔离(测试用例与脚本分离):为了便于维护,需要支持测试用例即具体的请求接口、请求参数、预期返回结果等测试数据与代码分离。这样做的好处比如后续接口调整了请求参数或者需要修改/新增接口用例,就能直接定位并操作,不用再去改代码。而且方便检查接口用例的覆盖程度,交接方便。

  3. 动态数据:某些入参有唯一性校验,当重复进行接口请求测试时,数据需要支持动态变化。比如手机号、订单号等,约定一个关键字orderid,当识别到入参为orderid时对应生成不同的订单号。

  4. 数据依赖(接口依赖):一个接口的入参/请求头依赖另外一个接口的返回值,需要支持返回值提取传参。最常见的就是接口请求需要在headers中写入登录接口返回的Token了。

  5. 操作数据库:进行数据库验证或者构造测试数据

  6. 数据加/解密:接口可能会对某些敏感数据进行加密操作,当进行返回值校验时需要支持数据加/解密

  7. 用例执行选择器:自定义配置接口用例是否执行

  8. 配置文件:需要支持配置文件来控制在不同的环境执行接口自动化测试

  9. 日志:提供执行情况(执行时间、执行接口、请求方式、请求数据、返回值等关键信息)日志,当用例执行有问题时方便定位。

  10. 可视化报告:将接口执行情况:用时/失败/成功/报错等展示给需要关注的团队成员

选型结果

考量因素

Pytest/Unittest+Request+Selenium

结论

优点:基于python语言,入门门槛低上手快,可扩展性强,面对不同的业务需求具备更高的灵活性和可操作性

缺点:没有现成的可视化管理平台,进行自动化脚本编写需要一定的代码基础

必备功能

校验(断言)

支持

数据隔离

支持

动态数据

支持

数据依赖

支持

操作数据库

支持

数据加/解密

支持

用例执行选择器

支持

配置文件

支持

日志

支持

可视化报告

支持。unittest支持 HTMLRunner生成简单的html测试报告,pytest支持 allure生成更详细美观的测试报告

其他考量

团队协作

暂时没有可视化管理平台,自主开发工作量大。目前普遍做法是直接使用Excel进行用例管理,脚本管理用git/SVN。所以整体而言,需要协作者皆严格执行统一定制的规范,不然当用例/脚本达到一定数量时,不好维护。

技术要求

可以分成接口用例设计人员与脚本人员两类考量

  • 用例设计人员:无编码要求,仅要求熟悉接口/业务功能测试

  • 脚本人员:有一定的python编码能力

执行方式

可集成到Jenkins定时执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值