## 框架介绍
本框架主要是基于 Python + pytest + allure + log + yaml + mysql + redis + 钉钉通知 + Jenkins 实现的接口自动化框架。
* git地址: [https://gitee.com/yu_xiao_qi/pytest-auto-api](https://gitee.com/yu_xiao_qi/pytest-auto-api)
* 项目参与者: 余少琪
* 技术支持邮箱: 1603453211@qq.com
* 个人博客地址: [https://blog.csdn.net/weixin_43865008](https://blog.csdn.net/weixin_43865008)
如果对您有帮助,请点亮 小星星 以表支持,谢谢
![img.png](Files/image/starts.png)
## 前言
公司突然要求你做自动化,但是没有代码基础不知道怎么做?或者有自动化基础,但是不知道如何系统性的做自动化,
放在yaml文件中维护,不知道如何处理多业务依赖的逻辑?
那么这里 Gitte 中开源的自动化框架,将为你解决这些问题。
框架主要使用 python 语言编写,结合 pytest 进行二次开发,用户仅需要在 yaml 文件中编写测试用例,
编写成功之后,会自动生成 pytest 的代码,零基础代码小白,也可以操作。
本框架支持多业务接口依赖,多进程执行,mysql 数据库断言和 接口响应断言,并且用例直接在yaml文件中维护,无需编写业务代码,
接口pytest框架生成allure报告,并且发送 企业微信通知/ 钉钉通知/ 邮箱通知/ 飞书通知,灵活配置。
## 实现功能
* 测试数据隔离, 实现数据驱动
* 支持多接口数据依赖: 如A接口需要同时依赖B、C接口的响应数据作为参数
* 数据库断言: 直接在测试用例中写入查询的sql即可断言,无需编写代码
* 动态多断言: 如接口需要同时校验响应数据和sql校验,支持多场景断言
* 自动生成用例代码: 测试人员在yaml文件中填写好测试用例, 程序可以直接生成用例代码,纯小白也能使用
* 代理录制: 支持代理录制,生成yaml格式的测试用例
* 统计接口的运行时长: 拓展功能,订制开关,可以决定是否需要使用
* 日志模块: 打印每个接口的日志信息,同样订制了开关,可以决定是否需要打印日志
* 钉钉、企业微信通知: 支持多种通知场景,执行成功之后,可选择发送钉钉、或者企业微信、邮箱通知
* 自定义拓展字段: 如用例中需要生成的随机数据,可直接调用
* 多线程执行
## 联系方式
因为微信群二维码,有效期只有15天,如果有遇到的问题的同学,可以先加微信:being_chaoren
加微信的朋友,需备注是从Gitee上看到的加的好友,加上之后,会将你们拉入一个自动化测试微信交流群
![img.png](Files/image/wechat.png)
## 目录结构
├── Cache // 存放缓存文件
├── common // 配置
│ ├── conf.yaml // 公共配置
│ ├── setting.py // 环境路径存放区域
├── data // 测试用例数据
├── Enums // 枚举层,用于存放项目中所需的枚举
├── File // 上传文件接口所需的文件存放区域
├── log // 日志层
├── report // 测试报告层
├── test_case // 测试用例代码
├── utils // 工具类
│ └── assertUtils // 断言
│ └── assertUtils.py
│ └── cacheUtils // 缓存处理模块
│ └── cacheControl.py
│ └── redisControl.py
│ └── logUtils // 日志处理模块
│ └── logControl.py
│ └── logDecoratrol.py // 日志装饰器
│ └── runTimeDecoratrol.py // 统计用例执行时长装饰器
│ └── mysqlUtils // 数据库模块
│ └── get_sql_data.py
│ └── mysqlControl.py
│ └── noticUtils // 通知模块
│ └── dingtalkControl.py // 钉钉通知
│ └── feishuControl.py // 飞书通知
│ └── sendmailControl.py // 邮箱通知
│ └── weChatSendControl.py // 企业微信通知
│ └── otherUtils // 其他工具类
│ └── allureDate // allure封装
│ └── allure_report_data.py // allure报告数据清洗
│ └── allure_tools.py // allure 方法封装
│ └── error_case_excel.py // 收集allure异常用例,生成excel测试报告
│ └── localIpControl.py // 获取本地IP
│ └── threadControl.py // 定时器类
│ └── readFilesUtils // 文件操作
│ └── caseAutomaticControl.py // 自动生成测试代码
│ └── clean_files.py // 清理文件
│ └── excelControl.py // 读写excel
│ └── get_all_files_path.py // 获取所有文件路径
│ └── get_yaml_data_analysis.py // yaml用例数据清洗
│ └── regularControl.py // 正则
│ └── yamlControl.py // yaml文件读写
│ └── recordingUtils // 代理录制
│ └── mitmproxyContorl.py
│ └── requestsUtils
│ └── dependentCase.py // 数据依赖处理
│ └── requestControl.py // 请求封装
│ └── timeUtils
├── Readme.md // help
├── pytest.ini
├── run.py // 运行入口
## 依赖库
allure-pytest==2.9.45
allure-python-commons==2.9.45
atomicwrites==1.4.0
attrs==21.2.0
certifi==2021.10.8
cffi==1.15.0
charset-normalizer==2.0.7
colorama==0.4.4
colorlog==6.6.0
cryptography==36.0.0
DingtalkChatbot==1.5.3
execnet==1.9.0
Faker==9.8.3
idna==3.3
iniconfig==1.1.1
jsonpath==0.82
packaging==21.3
pluggy==1.0.0
py==1.11.0
pycparser==2.21
PyMySQL==1.0.2
pyOpenSSL==21.0.0
pyparsing==3.0.6
pytest==6.2.5
pytest-forked==1.3.0
pytest-xdist==2.4.0
python-dateutil==2.8.2
PyYAML==6.0
requests==2.26.0
six==1.16.0
text-unidecode==1.3
toml==0.10.2
urllib3==1.26.7
xlrd==2.0.1
xlutils==2.0.0
xlwt==1.3.0
## 安装教程
首先,执行本框架之后,需要搭建好 python、jdk、 allure环境
搭建python教程:[http://c.biancheng.net/view/4161.html](http://c.biancheng.net/view/4161.html)
搭建jdk环境:[https://www.cnblogs.com/zll-wyf/p/15095664.html](https://www.cnblogs.com/zll-wyf/p/15095664.html)
安装allure:[https://blog.csdn.net/m0_49225959/article/details/117194318](https://blog.csdn.net/m0_49225959/article/details/117194318)
如上环境如都搭建好,则安装本框架的所有第三方库依赖,执行如下命令
pip install -r requirements.txt
## 接口文档
这里非常感谢一位安卓的朋友,给我推荐了开源的接口文件,框架中会针对开源接口中的登录、个人信息、收藏(新增、查看、修改、删除)等功能,编写结果自动化案例
下方是接口文档地址,大家可以自行查看(因为开源的接口,里面有些逻辑性的功能,如修改被删除的网址接口并没有过多的做判断,
因此用例中只写了一些基础的场景,仅供大家参考。)
[https://wanandroid.com/blog/show/2](https://wanandroid.com/blog/show/2)
## 如何创建用例
### 创建用例步骤
1、在data文件夹
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
Python+pytest+allure+log+yaml+mysql+钉钉企微通知接口自动化框架 Python+pytest+allure+log+yaml+mysql+钉钉企微通知接口自动化框架 Python+pytest+allure+log+yaml+mysql+钉钉企微通知接口自动化框架 Python+pytest+allure+log+yaml+mysql+钉钉企微通知接口自动化框架 Python+pytest+allure+log+yaml+mysql+钉钉企微通知接口自动化框架 Python+pytest+allure+log+yaml+mysql+钉钉企微通知接口自动化框架 Python+pytest+allure+log+yaml+mysql+钉钉企微通知接口自动化框架 Python+pytest+allure+log+yaml+mysql+钉钉企微通知接口自动化框架
资源推荐
资源详情
资源评论
收起资源包目录
Python+pytest+allure+log+yaml+mysql+钉钉企微通知接口自动化框架.zip (149个子文件)
warning.log.2022-04-26 5KB
error.log.2022-04-26 3KB
info.log.2022-05-03 2.51MB
error.log.2022-05-03 4KB
warning.log.2022-05-03 348B
info.log.2022-05-05 3.64MB
error.log.2022-05-05 2KB
warning.log.2022-05-05 928B
error.log.2022-05-06 1KB
warning.log.2022-05-06 777B
error.log.2022-05-12 10KB
warning.log.2022-05-12 4KB
info.log.2022-05-13 32.76MB
case_process 9KB
.coverage 52KB
.gitignore 471B
pytest.ini 165B
login_cookie 214B
login_token 5B
README.md 30KB
case_detail.png 430KB
wechat.png 242KB
test.png 187KB
weixin_pay.png 185KB
log.png 182KB
img.png 159KB
run_times.png 156KB
img_1.png 155KB
cookie.png 152KB
randoms.png 150KB
write_test_case.png 149KB
dingding.png 148KB
conf.png 121KB
login.png 115KB
img2.png 113KB
starts.png 105KB
conftest.png 97KB
regular.png 96KB
case_data.png 96KB
allure.png 82KB
send_sms_code.png 76KB
files.png 74KB
assert_type.png 61KB
files_up.png 56KB
conftest_token.png 54KB
sql.png 52KB
allure2.png 47KB
wechart.png 24KB
question_coun.png 21KB
排入水体名.png 2KB
error_case_excel.py 10KB
get_yaml_data_analysis.py 10KB
feishuControl.py 9KB
requestControl.py 9KB
caseAutomaticControl.py 8KB
mitmproxyContorl.py 8KB
dependentCase.py 7KB
assertControl.py 7KB
weChatSendControl.py 7KB
conftest.py 5KB
mysqlControl.py 5KB
dingtalkControl.py 4KB
regularControl.py 4KB
logDecoratorl.py 4KB
sendmailControl.py 3KB
run.py 3KB
allure_report_data.py 3KB
allure_tools.py 3KB
install_requirements.py 3KB
yamlControl.py 3KB
testcase_template.py 3KB
assert_type.py 3KB
get_swagger_api_data.py 3KB
logControl.py 2KB
redisControl.py 2KB
threadControl.py 2KB
cacheControl.py 2KB
setting.py 2KB
timeControl.py 2KB
excelControl.py 1KB
runTimeDecoratorl.py 1KB
assertMethod_enum.py 1KB
test_collect_delete_tool.py 1KB
test_collect_update_tool.py 1KB
test_collect_tool_list.py 1KB
test_collect_addtool.py 1KB
test_get_user_info.py 1KB
test_login.py 1KB
yamlData_enum.py 978B
get_conf_data.py 915B
get_all_files_path.py 733B
allureAttchementType_enum.py 666B
dependentType_enum.py 427B
localIpControl.py 381B
notificationType_enum.py 370B
requestType_enum.py 367B
clean_files.py 352B
get_os_sep.py 317B
__init__.py 226B
ding_report.py 164B
共 149 条
- 1
- 2
「已注销」
- 粉丝: 838
- 资源: 3602
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于JavaWeb的学生管理系统.zip
- (源码)基于Android的VR应用转换系统.zip
- (源码)基于NetCore3.1和Vue的系统管理平台.zip
- (源码)基于Arduino的蓝牙控制LED系统.zip
- SwitchResX 4.6.4 自定义分辨率 黑苹果神器
- (源码)基于Spring Boot和MyBatis的大文件分片上传系统.zip
- (源码)基于Spring Boot和MyBatis的后台管理系统.zip
- (源码)基于JDBC的Java学生管理系统.zip
- (源码)基于Arduino的教室电力节能管理系统.zip
- (源码)基于Python语言的注释格式处理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
前往页