天天看点

apiAutoTest:自动化测试中的数据依赖处理

简书:https://www.jianshu.com/p/6bfaca87a93b

博客园:https://www.cnblogs.com/zy7y/p/13426816.html

testerhome:https://testerhome.com/topics/25003

我理解的参数依赖/接口依赖就是接口进行关联操作,比如有些查询接口需要登录之后才可以操作,那么我们就需要拿到token之类的东西,这一部分东西是放到header中的,apiAutoTest围绕的只有路径参数依赖,请求数据依赖

路径参数依赖

譬如说现在的restful,一个users接口,路由一般这样的<code>users</code>他的请求方式是get,这个路由我们把他认为是查所有用户,如果查某一个用户可能是这样的<code>users/:id</code>也是个get请求,这里这个id想表达的意思是这里有个需要个用户id的参数,比如1-500里面的任意1个,也就是说这个id是可变的,可以从登录接口的返回响应取一个叫userId的值

请求参数依赖

这个应该好理解些,就是说支付接口需要的订单id,是从上一步提交订单接口返回的响应订单id

举个例子

假设现在有个实际响应结果字典如下

excel中接口路径内容:<code>users/&amp;$.case_005.data.id&amp;/state/&amp;$.case_005.data.careate_time&amp;</code>

代码内部解析后如下:<code>users/511/state/1605711095</code>

<code>&amp;$.case_005.data.id&amp;</code> 代表从响应字典中提取case_005字典中data字典中的id的值,提取出来的结果是511

excel中请求参数内容如下:

代码内部解析后如下:

其实不难看出其中规则<code>&amp;jsonpath提取语法&amp;</code>,如果你需要的内容是字符串类型,只需要这样<code>"&amp;jsonpath提取语法&amp;"</code>

用例中书写格式,在上传文件栏

用例书写格式

config.yaml文件中新增可配置初始header,整体代码优化,相比之前,同样测试用例执行下,快了2s左右

将配置文件读取,用例读取整合在<code>read_file.py</code>下

移除报告压缩方法

减少日志信息

tools/init.py

tools/data_process.py

master: 分支为最新代码

version1.0: 分支为之前开源的代码(通过字典迭代的方式来处理数据依赖)

Https://gitee.com/zy7y/apiAutoTest.git

Https://github.com/zy7y/apiAutoTest.git

目前在公司正在做接口测试,说实话也是摸索着来,以上的优化项都是实际做的过程中突然想到的,然后就更新了

接入用例前后置SQL, 前置SQL目前想的是现在项目中遇到的问题,有些接口没有返回需要的数据,这里就要用前置SQL查询的结果传到请求数据里面了,后置SQL主要是请求后查看数据库中的数据是否变动,形成数据库断言 2020/12/08 完成 , 至此 apiAutoTest 应该不会 再有大更新~~~ 谢谢 看这个Demo的人

企业微信推送:目前项目中预想的效果,是后端人员提交代码,自动部署之后,通过gitlab-ci 启动测试代码,进行接口测试完成之后采集allure中的测试结果一有异常/失败用例就发送邮件并进行企业微信推送给领导 这个其实就是重新发送请求~

.... 就不说了还有很多优化项,能力不够好好充电吧,~~

谢谢各位对apiAutoTest的帮助,谢谢~~~

作者:zy7y

出处:http://www.cnblogs.com/zy7y

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。