Go to file
zy7y 7506721e0b 增加测试前数据库备份/测试后数据恢复(支持linux服务器部署mysql, linux下docker部署的mysql服务) 2021-01-19 18:55:59 +08:00
api 修改说明文档,以免形成误导 2021-01-14 14:58:06 +08:00
api_server 增加测试前数据库备份/测试后数据恢复(支持linux服务器部署mysql, linux下docker部署的mysql服务) 2021-01-19 18:55:59 +08:00
backup_sqls 增加测试前数据库备份/测试后数据恢复(支持linux服务器部署mysql, linux下docker部署的mysql服务) 2021-01-19 18:55:59 +08:00
config 增加测试前数据库备份/测试后数据恢复(支持linux服务器部署mysql, linux下docker部署的mysql服务) 2021-01-19 18:55:59 +08:00
data 增加测试前数据库备份/测试后数据恢复(支持linux服务器部署mysql, linux下docker部署的mysql服务) 2021-01-19 18:55:59 +08:00
image 修改说明文档,以免形成误导 2021-01-14 14:58:06 +08:00
report update 2020-11-22 22:36:56 +08:00
test 增加测试前数据库备份/测试后数据恢复(支持linux服务器部署mysql, linux下docker部署的mysql服务) 2021-01-19 18:55:59 +08:00
tools 增加测试前数据库备份/测试后数据恢复(支持linux服务器部署mysql, linux下docker部署的mysql服务) 2021-01-19 18:55:59 +08:00
.gitignore requests+pytest+allure+jsonpath接口自动化测试框架 2020-08-03 16:15:03 +08:00
LICENSE add LICENSE. 2020-12-16 10:11:48 +08:00
README.md 增加测试前数据库备份/测试后数据恢复(支持linux服务器部署mysql, linux下docker部署的mysql服务) 2021-01-19 18:55:59 +08:00
pytest.ini requests+pytest+allure+jsonpath接口自动化测试框架 2020-08-03 16:15:03 +08:00
requirements.txt 添加失败用例重跑插件pytest-rerunfailures 2020-12-16 09:54:45 +08:00
run.py 添加以服务生成报告命令,使用时自行解出注释 2020-12-29 18:51:02 +08:00
test.sql 用例中使用的本地sql数据,用navicat导入就行,如果不需要sql,请把sql栏置空 2020-12-08 17:48:36 +08:00
项目实战接口文档.md update 项目实战接口文档.md. 2020-08-12 02:50:42 +08:00

README.md

apiAutoTest

介绍

软件架构

名称 版本 作用
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 发送请求
pymysql 0.10.1 连接mysql
paramiko 2.7.2 ssh连接linux服务器用于备份/删除数据库文件

目录结构

apiAutoTest

.pytest_cache(文件夹): pytest运行测试文件的时候产生的文件

api(包):主请求

__init__.py

base_requests.py: 封装了get、post、put、delete等接口请求

config(文件夹) 配置文件

config.yaml: 脚本配置文件sever、提取规则

data(文件夹) 用例数据

case_data.xlsx: 测试用例

image(文件夹)

...: gitee仓库中使用的静态文件资源

log 日志文件

运行日志文件.....: 运行代码时,脚本中打印的日志会存到这里。

report(文件夹) 测试报告文件

data 每次执行测试用例的结果,存在这里

html 使用了allure 的一个命令生成的本地可视化的一个html报告

test(包): 运行文件所在包

conftest.py: 存放可用于整个测试目录的方法 2020/12/08 + test_api.pyPytest 命令可直接运行的测试文件,里面是我们的主函数

tools(包): 工具包

__init__.py

data_process.py封装依赖数据与请求数据的逻辑处理处理了path参数依赖headers关键字参数的入参header

db.py : 封装连接mysql方法 read_file.py 读取配置文件、读取excel用例文件

data_clearing.py: 数据清洗方法封装ssh2服务器连接数据库备份/恢复 2021/01/19日更新

send_email.py 发送邮件

zip_file.py 压缩测试报告

venv python 虚拟环境

pytest.ini pytest框架的一个可用配置解决中文显示乱码

requirements.txt 依赖库

项目实战接口文档该Demo中实例的电商后台项目接口文档

run.py: 主运行文件2020/12/06 更新

test.sql 模拟用例sql的数据

安装教程

  1. git clone https://gitee.com/zy7y/apiAutoTest.git / https://github.com/zy7y/apiAutoTest.git
  2. 安装Java与allurehttps://www.cnblogs.com/zy7y/p/13403699.html
  3. 使用pycharm打开项目使用Terminal 输入 python3 -m venv venv 新建虚拟环境 (可选)
  4. 执行pip install -r requirements.txt 安装依赖库若下载超时pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
  5. 修改config.ymal文件中email文件配置邮箱request_header配置初始请求头database 配置数据库信息
  6. 运行/test/test_api.py 文件
  7. 运行 run.py文件

用例说明文档

case_data.xlsx用例说明文档

使用说明

  1. 本项目直接使用的requests.Session理论上实现了cookie请求的管理不用单独提取cookie支持前后端分离项目兼容Restful接口规范。
  2. 项目中token操作中为写时请务必保证是能正常获得响应并且返回了token字段
  3. 本项目用例书写格式请务必遵循sheet页用例说明中有一部分
  4. 该项目找的是b站上的一个前后端分离应用域名使用的是b站某视频里提供的请大家谨慎操作学习
  5. 本项目所要投入生产请自行修改配置文件config.yaml及用例数据case_data.xlsx
  6. 默认注释了用例失败重跑装饰器,需要的时候自行解除注释即可,但这个功能比较耗时间,自取所需吧
  7. 本项目从2020年8月提交陆续迭代如果各位有什么建议 欢迎提给我,会尽力解决~~

接口服务(后端源码来自)

vue 电商项目实战 教学视频: https://www.bilibili.com/video/BV1EE411B7SU?p=10

测试报告

本地运行测试后生成报告 测试报告用例失败重跑

更新

2020/08/08 增加实际响应存储数据的方法并在字典可以处理依赖见tools/svae_response.py

2020/08/09 实现多文件上传接口中Path参数依赖处理

2020/11/18 使用re库解决当请求参数层级结构多出现无法提取的bug减少冗余代码优化path路径参数提取更新用例填写说明文档

2020/11/21 更新用例文档,合并文件对象,文件地址,优化文件上传处理方式

2020/11/21 config.yaml文件中新增request_headers 选项默认header在此设置优化test_api.py文件整合read_file.py

2020/11/22 优化请求断言方法支持用户自定义提取响应自定内容,支持多数据断言,整合请求方法,优化测试启动方法,部分日志移除,修改预期结果处理

2020/12/08 优化断言信息增加数据库支持mysql查询操作 使用@pytest.fixture(scope="session")来托管数据库对象用例新增sql栏

2020/12/16 使用conftest.py 初始化用例, 增加失败重跑机制, 增加运行文件run优化test_api.py冗余代码

2021/01/19 添加数据清洗功能(测试开始前进行数据库备份-分别在服务器和本地进行,测试结束后将备份用以恢复数据-将尝试从服务器和本地恢复到服务器数据库中docker部署的mysql服务已本地调试通过直接linux部署的mysql并未测试)

详细内容见代码注释tools/data_clearing.py 如不需要使用该功能请做如下处理,如也不使用数据库对象,只需参考 https://gitee.com/zy7y/apiAutoTest/issues/I2BAQL 修改即可

博客园首发

https://www.cnblogs.com/zy7y/p/13426816.html

Jenkins集成

https://www.cnblogs.com/zy7y/p/13448102.html

视频教程主要给大家讲这个Demo实现的一些思路 后续将考虑从0-1录一个但能力有限别有太多期许一是免费二是开源

B站https://www.bilibili.com/video/BV1pv411i7zK/

联系我

QQ396667207