天天看点

Python接口自动化测试工具(Pytest+Allure+jsonpath+xlrd+excel、支持Restful接口规范)

目录

废话

功能

运行机制

已知问题

环境与依赖

目录结构

执行顺序

config.ymal展示

EXcel用例展示

脚本一览

请求方法封装

读取excel用例数据

存储接口实际结果响应

处理依赖数据逻辑

启动文件

运行测试

运行结果

致谢

源码地址

更新

和几个朋友聊天然后出来的产物希望能帮到大家学习接口自动化测试,欢迎大家交流指出不合适的地方,源码在文末

实现:get/post请求(上传文件)::理论上其他delete/put等请求也实现了,支持restful接口规范

发送邮件

生成allure测试报告

压缩测试报告文件

数据依赖

通过读取配置文件,获取到host地址、提取token的jsonpath表达式,提取实际响应结果用来与预期结果比对的jsonpath表达式。

读取excel用例文件数据,组成一个符合pytest参数化的用例数据,根据每列进行数据处理(token操作、数据依赖)

token,写,需要使用一个正常登录的接口,并且接口中要返回token数据,才可以提取,token,读为该请求将携带有token的header,token 无数据的将不携带token

数据依赖处理,从excel中读取出来的格式{"用例编号":["jsonpath表达式1", "jsonpath表达式2"]},通过用例编号来获取对应case的实际响应结果(实际响应结果在发送请求后,回写到excel中),通过jsonpath表达式提取对应的依赖参数字段,以及对应的值,最终会返回一个存储该接口需要依赖数据的字典如{"userid":500, "username": "zy7y"},在发送请求时与请求数据进行合并,组成一个新的data放到请求中

每次请求完成之后将回写实际的响应结果到excel中

根据配置文件中配置的jsonpath表达式提取实际响应内容与excel中预期结果的数据对比

生成测试报告

压缩测试报告文件夹

执行接口消耗时间变长,代码乱(语言学的不扎实),频繁读写excel(可考虑用字典存每个接口的实际响应,取值直接从响应字典中取出)

整体代码结构优化未实现,导致最终测试时间变长,其他工具单接口测试只需要39ms,该框架中使用了101ms,考虑和频繁读写用例数据导致

名称

版本

作用

python

3.7.8

pytest

6.0.1

底层单元测试框架,用来实现参数化,自动执行用例

allure-pytest

2.8.17

allure与pytest的插件可以生成allure的测试报告

jsonpath

0.82

用来进行响应断言操作

loguru

0.54

记录日志

PyYAML

5.3.1

读取yml/yaml格式的配置文件

Allure

2.13.5

要生成allure测试报告必须要在本机安装allure并配置环境变量

xlrd

1.2.0

用来读取excel中用例数据

yagmail

0.11.224

测试完成后发送邮件

requests

2.24.0

发送请求

运行test_api.py -> 读取config.yaml(tools.read_config.py) -> 读取excel用例文件(tools.read_data.py) -> test_api.py实现参数化 -> 处理是否依赖数据 ->base_requests.py发送请求 -> test_api.py断言 -> read_data.py回写实际响应到用例文件中(方便根据依赖提取对应的数据)

Python接口自动化测试工具(Pytest+Allure+jsonpath+xlrd+excel、支持Restful接口规范)

首先确保需要的环境与依赖包无问题之后,使用Pycharm打开项目,找到<code>settings</code>修改为unitest或者其他非pytest,具体操作如下

Python接口自动化测试工具(Pytest+Allure+jsonpath+xlrd+excel、支持Restful接口规范)
Python接口自动化测试工具(Pytest+Allure+jsonpath+xlrd+excel、支持Restful接口规范)

jsonpath语法学习:https://blog.csdn.net/liuchunming033/article/details/106272542

zip文件压缩:https://www.cnblogs.com/yhleng/p/9407946.html

欢迎交流。

源码地址Gitee - version1.0分支: https://gitee.com/zy7y/apiAutoTest/tree/version1.0/

源码地址GitHub- version1.0 分支:https://github.com/zy7y/apiAutoTest/tree/version1.0/

2020/11/23 - 优化数据参数、路径参数依赖处理方式,现版本与之前同等环境下,测试时间提升2S

介绍:https://www.cnblogs.com/zy7y/p/14022398.html

作者:zy7y

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

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