python+requests+pytest 接口自动化框架(一)
目录
一、Pytest详解以及常用的插件安装
二、Pytest默认的测试用例的规则
三、Pytest用例运行方式以及参数
1.命令行模式运行 命令:pytes
2.主函数模式运行
3.基于pytest.ini配置文件运行
四、pytest测试用例的执行顺序
五、pytest跳过测试用例
六、pytest测试用例的前后置
今日内容:接口自动化测试框架必会之pytest插件,运行规则以及参数,pytest.ini配置文 件,跳过用例,用例执行顺序,夹具等
资源:python+requests+pytest接口自动化框架(1-4)-Python文档类资源-CSDN下载
一、Pytest详解以及常用的插件安装
1.pytest是一个非常成熟的基于python的单元测试框架(测试的是程序的最小单元:函 数,方法)
- python:unittest和pytest
- java:junit和testng
2.pytest可以和所有的自动化测试工具或模块:selenium,requets,appium结合实现 web自动化,接口自动化,app自动化。
3.它可以和allure插件生成美观以及定制化的报告以及和jenkins实现持续集成。
4.pytest有很多强大的插件 pytest(自己)
- pytest-html (生成简易的HTML报告)
- pytest-xdist(多线程执行)
- pytest-ordering(修改测试用例的执行顺序)
- pytest-rerunfailures (失败用例重跑)
- pytest-base-url(管理基础路径:测试环境,开发环境,线上环境)
- allure-pytest(生成allure报告)
放到一个requirements.txt的文件。一次行的安装所有的插件。
命令如下:-r表示递归
pip install ‐r requirements.txt
5.pytest单元框架主要用来做什么?
- 发现测试用
- 执行测试用例
- 判断测试结果
- 生成测试报告
二、Pytest默认的测试用例的规则
- 模块名(py文件)必须以test_开头或_test结尾
- 测试类必须以Test开头,并且不能带有init方法(初始化方法)
- 测试用例必须以test开头
三、Pytest用例运行方式以及参数
1.命令行模式运行
命令:pytes
参数: -vs
-v 输出更加详细的测试用例的信息
-s 输出用例中的调试信息
示例:pytest -vs
-n 多线程运行
示例:pytest -vs -n 2
--reruns 失败用例重跑
示例:pytest -vs --reruns 2
-x 一旦出现一个用例失败则终止测试。
示例:pytest -x
--maxfail 出现指定次数的错误则终止测试。
示例:pytest -vs --maxfail 2
--html 生成简易的html报告
示例:pytest -vs --html=./reports/report.html
-k 运行包含有指定字符串的测试用例(测试用例的名称必须很规范)
test_usermanage_adduser
test_usermanage_deluser
test_usermanage_edituser
示例:pytest -vs -k "mashang or jiaoyu"
指定模块运行:pytest -vs ./testcases/test_weixin.py
指定文件夹运行:pytest -vs ./testcases/weixin
通过node id运行:pytest -vs
./testcases/weixin/test_weixin.py::TestApi::test_02_add_flag
2.主函数模式运行
if __name__ == '__main__':pytest.main(['‐vs']);
3.基于pytest.ini配置文件运行
- 配置文件的名称是固定的,一般放在项目的根目录下。
- 作用是:可以改变pytest默认的测试用例的规则。
- 不管是命令行的方式,还是主函数的方式都会自动的读取这个配置文件去运行。
[pytest]
#命令行参数
addopts = -vs --html=./reports/report.html
#指定测试用例的路径
testpaths = ./testcases
#指定测试模块的默认规则
python_files = test_*.py
#指定测试类的默认规则
python_classes = Test*
#指定测试用例的默认规则
python_functions = test_*
四、pytest测试用例的执行顺序
默认的执行顺序是从上到下依次执行。
改变测试用例的执行顺序可以使用插件:pytest-ordering
五、pytest跳过测试用例
1.无条件跳过
@pytest.mark.skip(reason="这里写跳过的理由")
2.有条件跳过
@pytest.mark.skipif(age<5,reason="少于10年工作经验不考虑录取")
六、pytest测试用例的前后置
def setup_class(self):print("在类的前面执行的操作")def teardown_class(self):print("在类的后面执行的操作")def setup(self):print("测试用例执行之前的操作")def teardown(self):print("测试用例执行之后的操作")
python+requests+pytest 接口自动化框架(一)相关推荐
- python+requests+pytest 接口自动化框架(四)
目录 一.requests库简介 二.requests库常用方法 三.request()返回的response对象 四.实战案例 post(url, data=None, json=None, **k ...
- python+requests+pytest 接口自动化框架(八)
今日内容:接口自动化测试框架封装之数据类型处理以及DDT数据驱动封装 一.数据类型处理 "${read_extract_data(tag_id)}" 替换成 110 json: { ...
- 浅谈Python+requests+pytest接口自动化测试框架的搭建
框架的设计思路 首先要明确进行接口自动化需要的步骤,如下图所示: 然后逐步拆解需要完成的工作: 1)了解分析需求:了解接口要实现的功能 2)数据准备:根据开发文档确定接口的基本情况,知晓接口的url. ...
- 最全最新pytest接口自动化框架
pytest接口自动化框架介绍: Python+pytest+allure+log+yaml(默认数据和动态传参)+数据驱动+关键字驱动+pymysql(数据清理尽量接口清理)+一键切换环境+多角色随 ...
- 浅谈python+requests实现接口自动化
前言 今年2月调去支持项目接口测试,测试过程中使用过postman.jmeter工具,基本能满足使用,但是部分情况下使用较为麻烦. 比如:部分字段存在唯一性校验或字段间有业务性校验,每次请求均需手工修 ...
- 测试之路 pytest接口自动化框架扩展-GUI窗口
各位大佬好~上期内容梳理了下接口自动化脚本扩展思路,以及成果展示,本期开始就从代码角度出发.分享出源码后的同时将我的思路一并梳理出来.好了,废话不多,昊料开始~ 引言 本期先从数据入口开始,扩展脚本初 ...
- Python+Requests实现接口自动化
一般对于自动化的理解,有两种方式的自动化. 第一,不需要写代码,完全由工具实现,这种方式的工具一般是公司自己研发的,方便黑盒测试人员使用.这种工具的特点是学习成本低,方便使用,但是通用性不强,也就是换 ...
- pytest接口自动化框架搭建
目录: 一.设计思路-整体框架: 二.具体框架搭建 1.公共方法-common 1.1.yaml_util.py 1.2.excel_util.py 1.4.text_ util.py 1.5.exc ...
- python+pytest接口自动化框架(5)-requests发送post请求
在HTTP协议中,与get请求把请求参数直接放在url中不同,post请求的请求数据需通过消息主体(request body)中传递. 且协议中并没有规定post请求的请求数据必须使用什么样的编码方式 ...
最新文章
- Android Studio 中删除项目和项目找回------ Project Structure的使用
- HDU 1269 移动城堡 联通分量 Tarjan
- React 16 Jest单元测试 之 Jest工具
- [BZOJ] 1637: [Usaco2007 Mar]Balanced Lineup
- P6620 [省选联考 2020 A 卷] 组合数问题(斯特林数、下降幂)
- favicon ico什么意思_你真的知道IPFS与Filecoin是什么吗?
- Atitit 编程范式 体系树 目录 1. 编程范型、编程范式或程序设计法(英语:Programming paradigm)	1 2. 编程范式	2 3. 声明式编程体系树	3 3.1. 声明式(对
- 烈火如歌手游找回服务器,《烈火如歌》05月02日新服公告:侠肝义胆
- 2020届华为面试题【Python】
- 用微PE安装KALI LINUX到U盘,【U盘安装kali】U盘+kali+pe三合一教程
- AI后门检测论文翻译:Universal Litmus Patterns: Revealing Backdoor Attacks in CNNs
- 蓝盘绿盘黑盘红盘的区别
- zzulioj 1055: 兔子繁殖问题
- GPT硬盘分区命令parted
- js代码中引入js文件
- 可怕的冷读术:十二种瞬间打开陌生…
- 【优化分配】基遗传算法求解医疗资源分配优化问题【含Matlab源码 1419期】
- mysql树形结构 无限分类_使用 authenticationDatabase 参数连接 aliyun 上的 MongoDB - SegmentFault 思否...
- 如何调整参数来更好地使用频谱分析仪
- 最新QT从入门到实战完整版(07 对象树)
热门文章
- Deep learning for fine-grained image analysis: A survey
- 同济大学计算机学硕考什么,同济大学考研难吗?一般要什么水平才可以进入?...
- GD32F107使用RTL8201F在LWIP-1.41上运行
- linux系统需要占多大的内存,linux启动过程Bootloader、kernel
- Linux引导启动详细过程
- SuperMap iClient3D for WebGL教程(空间分析)- 地表开挖及修改
- 最新系统漏洞--YzmCMS服务器端请求伪造漏洞
- 测试圈相亲平台开发流程(4):选个漂亮的首页
- 使用BT下载是否会损毁SSD?
- HCIA学习笔记#1