python接口自动化框架搭建_接口自动化测试框架搭建思路

前言:

基于Python+macaca 的web、Android 自动化测试框架已在内部运行一段时间,运行效果稳定。于是产生了把接口自动化也加入到框架中的念头。

https://testerhome.com/topics/11183

技术框架使用:

管理平台: Python+flask

测试用例管理: Python

测试用例执行:Python+request(Python的http 接口组件)

需求来源:

一个接口的字段定义格式大致如下(以登录接口为例):

869c0350-9537-4e60-831a-c3569be48991.png!large

在对接口进行测试时,一般会基于一些规则,对不同的字段组合进行测试,如:

1. 为空验证:逐个测试不允许为空的字段为空时,是否正确处理。

2. 长度校验:逐个测试每个字段超过限定长度时,是否正确处理。

3. 签名验证:生成的签名不符合签名规则时,是否正确处理。

4. 格式验证:逐个测试每个字段格式错误时,是否正确处理。

。。。

如果按以上的规则逐个字段进行测试,则每条规则需要N条测试用例(N为对应的字段数量);规则越多,测试用例的数量也越多,执行和回归的工作量就越大。因此,按一定的规则做成自动化很有价值。

设计思路:

1. 接口的定义和保存格式

类似上图Excel中的定义格式,转换为json 对象保存到数据库中:

aa062338-06e8-4666-aacb-784a26daa60f.png!large

保存的信息包括:接口名称,url路径,参数列表,加密方式,加密规则等。

2. 规则定义

整理通用的测试规则:

53f8d5a2-a67a-42b8-97dd-43ebdbe6d5f8.png!large

3. 用例生成

通过关联某个接口和对应的规则,生成批量的测试用例。

如选择 remove 规则,则会根据规则,生成一批测试用例,每个用例中移除一个必填字段。

具体的规则实现通过代码来定义。

0f42e191-7ee5-4ca8-a561-e46aeada1def.png!large

如下图,就是remove 规则和 init 接口生成的用例列表。 key field代表该条用例测试的字段,old value 和new value 分别是该字段修改前后的值对比, context 是该条用例生成的参数数值列表。

a9caf554-49ad-4b1d-bfb5-545633d940c5.png!large

4. 用例执行

用例执行时,读取某条用例中生成的 url 和 context,并组装成对应的 http 报文发送到对应服务器接口,并记录对应的执行结果。

其中期望结果由对应的规则确定,代表在该条规则下,该用例期望的返回码是什么; 实际结果,是本条用例实际执行的返回码。 执行状态,则根据期望结果和实际结果的对比判断该条用例是否执行成功。

14a3bab3-c8a7-4f9a-8e34-1837c8adf19d.png!large

5. 用例组管理

与web、Android自动化测试用例管理方式类似,接口自动化测试也会按照:

批次 - 接口 - 用例 的方式进行管理。 一个批次对应多个接口,一个接口对应多条用例。

这样就可以根据需要,在一个批次里测试对应的接口列表。

529d9c5e-b6bb-4ffe-9b05-02cbe6bcfd54.png!large

6. 使用场景

6.1 新接口测试:

当系统需要添加新的接口时,将对应接口按格式添加到系统中,即可快速按定义的规则进行测试,快速发现问题。

6.2 自动化回归测试:

当系统版本更新时,对所有接口进行一次完整的自动化测试,可快速完成回归测试,判断系统更新对相关接口的功能是否产生影响。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值