基于pytest搭建接口自动化测试框架,提供源码
基于pytest搭建接口自动化测试框架
- 框架整体介绍和方法教程
- 新框架(比这个功能多了很多,用例使用yaml编写)
- 源码框架结构
- xmind项目结构介绍
- 源码地址
- 使用教程
- 1.全局变量设置和使用
- 2.参数配置
- 3.接口参数依赖关联
- 参数提取:
- 参数使用
- 处理参数依赖代码截图
- 4.使用效果
- 5.日志使用
- 源码
- 使用
- 6.requests二次简单封装
- 源码
- 使用
- 7.yaml_.py教程
- 源码:
- 写使用
- 写的效果
- 读使用
- 8.mysql_.py教程
- 源码
- 使用
- 9.pytest.ini配置使用
- 10.运行文件
- 11.参数自动化使用
- 12.allure报告
框架整体介绍和方法教程
新框架(比这个功能多了很多,用例使用yaml编写)
pytest+yaml设计接口自动化框架过程记录(一步一步记录如何设计),源码提供
源码框架结构
xmind项目结构介绍
源码地址
喜欢打个星啊,感谢
gitee :https://gitee.com/your_dad_died/bm_pytest_api
github: https://github.com/Theshy0000/bm_pytest_api
使用教程
1.全局变量设置和使用
知识点:使用conftest配合@pytest.fixture()使用在用例所在的文件中不需要导入可以直接使用
2.参数配置
其他文件通过导入进行读取
3.接口参数依赖关联
参数提取:
调用parameter.update_rv()方法设置参数提取 方法源码自选观看
result 为接口返回的完整响应主体内容,通过字典键值提取值,给与这个值赋值给waybillNo这个变量,后续通过waybillNo可以使用这个提取的值。类似于jmeter的提取器
参数使用
upstream_create_waybill_data 这个是接口原始参数,我存放在data文件下
replace_expression 这个为依赖表达式,我直接用变量写的,也可以写在yaml文件下,自己扩展
rv 之前提取的参数所储存的字典
处理参数依赖代码截图
知识点: 我标记的地方先使用了集合去重的特性,最后用列表返回
4.使用效果
注意:在上面的原数据截图中 “waybillNo”:“Y22011101026000006”,经过替换变了。原始数据的’id’:1111也被替换
5.日志使用
源码
颜色文件存储位置,储存文件日志级别日志名称等
使用
from tool.log import logger
logger.info()等,上面都有打印到控制台的截图
6.requests二次简单封装
源码
直接写了get和post的2种方法,现在常用的就这2个,大部分都是post,提前把ip,headers信息提前封装,针对公司业务封装上下游企业
使用
post方式: result = requests.post('/waybill/createWaybill', upstream_create_waybill_data).json()get方式: result = requests.get('/waybill/generateWaybillNo').json()
7.yaml_.py教程
源码:
实现读和写,判断文件不存在则新建后读写
写使用
我这里使用了’a’ 操作文件,追加
写的效果
读使用
8.mysql_.py教程
源码
self.cur = self.db.cursor(cursor=pymysql.cursors.DictCursor) 设置以字典的格式返回查询数据
先创建数据库连接,在进行非查询操作时操作完sql语句后需要提交self.db.commit(),如果发生错误就进行回滚self.db.rollback()
使用
知识点 f’{}’ 这是python新语法,等同于format()
9.pytest.ini配置使用
(之前这些和pytest好像没啥关系啊,都自己写的方法)
更改默认运行pytest命令 其他参数百度
addopts = -vs --alluredir ./report/allure_raw --durations=0
--alluredir ./report/allure_raw 设置报告原始数据的目录
设置运行用例目录
testpaths = case
设置标签,可以根据标签来运行指定用例
markers =waybill : run waybill case -m waybillbill :run bill case -m bill
10.运行文件
import pytest
import os
import shutil
if __name__ == '__main__':try:# 删除之前的文件夹shutil.rmtree("report/allure_raw")except:print('之前未生成报告原文件')pytest.main([])#编译报告原文件并启动报告服务os.system('allure serve report/allure_raw')
11.参数自动化使用
12.allure报告
基于pytest搭建接口自动化测试框架,提供源码相关推荐
- 2023最新pytest+yaml接口自动化测试框架封装总结
1. 框架封装基础 以下是框架封装的技术基础,打好这些基础的话,能够很轻松地封装出来框架 对于基础还有欠缺的话,建议针对性精进: 1. 扎实的Python语言基础 函数.类 文件读写 处理报错 数据结 ...
- 如何搭建接口自动化测试框架?
为什么要做(自动化)接口测试? 1.由于现在各个系统的复杂度不断上升,导致传统的测试方法成本上升且测试效率大幅下降,而接口测试相对于UI测试更加稳定,且相对容易实现自动化持续集成,可以减少人工回归测试 ...
- Python+Pytest+tox 接口自动化测试框架
目录 前言: 1. 该框架重构自之前的框架 2. 目录截图 一.tox简介和使用介绍 1. tox简介 2. 配置文件tox.ini 二.框架搭建 1. 封装接口请求 2. 配置接口信息 3. 维护测 ...
- 基于Python的接口自动化测试框架
项目背景 公司内部的软件采用B/S架构,目的是进行实验室的数据存储.分析.管理. 大部分是数据的增删改查,但是由于还在开发阶段,所以UI的变化非常快,难以针对UI进行自动化测试,那样会消耗大量的精力与 ...
- 接口报params province error_Python3+requests搭建接口自动化测试框架
01 接口自动化的意义(为什么做这个框架?) 新版本上线时之前版本的功能需要进行回归测试,导致大量的重复性手工测试. 引入自动化测试可以使用自动化技术代替部分手工的回归性测试,解放更多人力做其它更有必 ...
- 基于SpringBoot的健身房管理系统(提供源码)
项目演示地址:http://gym.liujian.cool 项目gitHub源码地址:https://github.com/liujianview/gymxmjpa 项目gitee源码地址:http ...
- SpringBoot之从零搭建网站(可提供源码)
前言 为什么想要搭建这个工作室? 我还记得,在大学的时候,我们往常一样的在学习过着大学生活,同往常一样的解决这某个bug,不停地问度娘,很巧的碰到了一个同行在他的博客中完美的记录了搭建网站的过程,随后 ...
- pytest接口自动化测试框架 | 汇总
视频来源:B站<冒死上传!pytest接口自动化测试框架(基础理论到项目实战及二次开发)教学视频[软件测试]> 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! ...
- 接口自动化测试框架搭建:基于python+requests+pytest+allure实现
目录 一.接口自动化测试框架需要具备什么功能? 二.接口自动化测试框架目录结构 三.日志监控文件的信息 四.搭建具有企业Logo的定制化报告. 众所周知,目前市面上大部分的企业实施接口自动化最常用的有 ...
最新文章
- 华为机考HJ17坐标移动
- [转载] 杜拉拉升职记——33 360度评估
- requests.get(url)执行没反应_翟至宇:执行路上,从未停歇
- 2020.5.27 线性规划测试(Lingo实现)
- Android 百度地图-实现POI的搜索(搜索周边)附源码
- poj 2181 jumping cows
- QPushButton/QLabel在鼠标悬浮(划过, hover)、选中(单击, pressed)状态下更换图标样式
- centos5.5+NAT+Squid透明代理总结
- gulp工具rename
- linux performance test
- 项目5—中断控制LED下降沿有效与低电平触发
- 尚硅谷实战项目---手机影音APP
- 学习Python的第一天
- 10000小时定律:成为大牛的秘密是什么?
- 港科夜闻|「广州粤港澳大湾区研究院」成立,香港科技大学校长史维教授获聘担任研究院顾问...
- 国际移动设备识别码IMEI
- python tkinter stringvar_关于tkinter StringVar()
- 史上最牛的论坛推广方法,论坛推广实战方案!
- 江苏省南通中学2021高考成绩查询,南通中学排名前十名,2021年南通中学排名一览表...
- H3CTE讲师分享H3C广域网接口和线缆实验
热门文章
- 全面屏手机Android,前所未有的新姿态 安卓真全面屏手机推荐
- Android Handler消息队列的实现原理
- matlab中surf x,matlab中surf什么意思
- 容易保:买错保险比不买更可怕!你的保险买对了吗?
- maya动画设计课程
- C语言的编译,汇编和链接
- s8 能刷android p吗,国行三星S8迎重大更新:手机终于能刷卡了
- linux命令查看时间属于哪个地区,详解Linux下用date命令查看和计算包含时区的时间戳...
- css好看的背景收集
- 北上广工程师手机的必装App,为什么是“它”? | 自由职客