1 Star 0 Fork 21

chengshun16 / python接口自动化测试框架

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

此框架是基于Python3+Pytest+Requests+Allure+Yaml+Json实现全链路接口自动化测试。

主要流程:

1)抓包的接口 解析接口数据包 ->生成接口基础配置(yml) ->生成测试用例(yaml+json) ->生成测试脚本(.py) ->运行测试(pytest) ->生成测试报告(allure) 2)手工编写的接口用例 手工根据规则编写测试用例(yaml+json) ->生成测试脚本(.py) ->运行测试(pytest) ->生成测试报告(allure)

测试流程:

初始化请求 ->处理接口基础信息 ->读取前置接口用例 ->发送前置接口 ->处理当前接口数据 ->发送当前接口 ->检查接口返回

接口自动化测试框架介绍:

关于接口依赖:支持前置接口预置,填写前置接口相对路径即可,如果存在数据依赖关系,此时你也仅需要填写前置接口对应的参数值,本框架将自动为你调用和替换关联数据。 1、前置接口配置: 1)项目文件的page目录下有comeCase.yaml 公用测试用例文件,前置写这个文件类的接口时,配置: premise: /commonCase.yaml xxx接口 测试数据索引(从0开始); 2)也支持填写已有接口,从测试文件中去数据,配置:premise: /xxx/xxxx.yaml _ 测试数据索引(从0开始) 2、前置接口数据依赖: 1)当前接口的参数类,某个参数要引用前置接口的数据,直接用${xxx}进行引用,将自动给你查找替换 2)可引用前置接口的请求参数和接口响应输出参数,引用方式同上; 3)如果前置接口中存在参数为列表形式,如: documents: ['111','222'],当前接口可用${documents}引用整个参数值,也支持用${ducuments_x}引用参数列表中任一一个值。

关于测试数据:本框架采用yaml记录接口基本信息,当请求参数和结果较大时,将单独保存到json文件中,解决各类数据的错综复杂问题。

关于参数化:本框架采用常用工具使用的变量标识 ${var} ,通过正则表达式,自动检索变量,自动为你替换变量,并且为你提供多种函数助手【$RandInt()、$GenGuid()】等,生成一些随机的伪数据,解决各种数据问题。

关于用例执行:本框架利用pytest扩展库,支持多线程模式、失败用例重试、用例模糊匹配等。

关于数据校验:本框架支持多种校验方式(5种) 1) no_check:不做任何校验

2) check_code:仅校验接口返回码code

3) check_json:校验接口返回码code,并进行json格式比较返回结果(默认方式)

4) entirely_check:校验接口返回码code,并进行完整比较返回结果

5) regular_check:校验接口返回码code,并进行正则匹配返回结果

6) check_db:数据库校验

关于环境切换:本框架支持环境切换,只需增加修改配置文件 1)默认项目名称:PyDemo (用于大部分项目支持) 2)如果有项目对断言以及用例修改校大,可以复制PyDemo项目,重新生成一个项目包,如:PyDemoFW ,没有复制新的项目包会默认使用PyDemo项目的数据 3)修改配置: - apiConfig.yaml 【项目配置】 复制一份默认项目配置,在文件下粘贴,修改键名为你需要运行的项目名; - dbConfig.yaml 【数据库配置】同上 - requestConfig.yaml 【处理后写入的数据键值对】同上 这里的值不需要去修改,运行项目时后自动修改,可根据需求,可不用此配置 - runConfig.yaml 【运行配置】 对应修改项目名,其他内容按需修改

运行配置说明:

运行项目名 project_name: PyDemo

运行模式: auto_switch: 2

0 - 不开启自动生成测试用例功能,将直接运行测试

1 - 根据手工编写用例,自动生成测试脚本,然后运行测试

2 - 根据接口抓包数据,自动生成测试用例和测试脚本,然后运行测试

3 - 根据接口抓包数据,自动生成测试用例和测试脚本,但不运行测试

注意:目前解析仅支持(.chlsj)格式,请使用Charles工具抓包导出JSON Session File

扫描测试用例目录(且仅当auto_switch=1时有用) scan_dir:

使用模糊匹配测试用例(空则匹配所有) pattern:

执行并发线程数(0表示不开启) process: 0

失败重试次数(0表示不重试) reruns: 0

本轮测试最大允许失败数(超出则立即结束测试) maxfail: 20

接口调用间隔时间(s) interval: 1

接口自动化框架超级实用!本人已在企业中落地使用,目前已经测试多条用例,完全可以落地企业中接口自动化测试。可以大大提高我们测试人员的工作效率。 详情了解qq:3270244710.群里全套测试视频文档资料从功能到自动化,性能,希望各位给颗星星!!!

空文件

简介

接口自动化框架超级实用!本人已在企业中落地使用,目前已经测试多条用例,完全可以落地企业中接口自动化测试。可以大大提高我们测试人员的工作效率。详情了解qq群:587704226.希望各位给颗星星!!! 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/chengshun16/python-interface-automation.git
git@gitee.com:chengshun16/python-interface-automation.git
chengshun16
python-interface-automation
python接口自动化测试框架
master

搜索帮助