10 python pytest

1安装插件

项目里面新建 xxx.txt文件

执行pip install -r xxx.txt一次性安装所有插件

复制代码
pytest
pytest-html
pytest-xdist
pytest-ordering
pytest-rerunfailures
pytest-pytest

pytest-html 生成html格式的自动化测试报告

pytest-xdist 测试用例分布式执行,多cpu分发

pytest-ordering 用于改变测试用例的执行顺序

pytest-rerunfailures 用于失败后重跑

pytest-pytest 用于生成美观的测试报告

2使用pytest规则

1,模块必须以test_开头或者_test结尾

2,测试类必须以Test开头,并且不能有init方法。

3,测试方法必须以test开头

3pytest测试用例的运行方式

1,主函数模式

(1)运行所有:pytest.main()

(2) 指定模块:pytest.main('-vs','test_login.py')

(3) 指定目录:pytest.main('-vs','./interface_testcase')

2,命令行模式

(1)运行所有:pytest

(2) 指定模块:pytest -vs test_login.py

(3) 指定目录:pytest -vs ./initerface_testcase

3,通过读取pytest.int配置文件运行

参数详解:

-s:表示输出调试信息,包括print打印信息

-v:显示更详细的信息

-vs:这两个参数一起用

-n:支持多线程或者分布式运行测试用例

如:pytest -vs ./testcase/test_login.py -n 2

--reruns 2:失败用例重跑 数字是几就跑几次

-k:根据测试用例的部分字符串指定测试用例

如:pytest -vs ./testcase -k "ao"

--html ./report/report.html:生成html的测试报告

3,通过读取pytest.ini配置文件运行

pytest.ini这个文件他是pytest单元测试框架的核心配置文件

1,位置:一般放在项目的根目录

2,编码:必须时ANSI,可以使用notpad++修改

3,作用:改变pytest默认的行为

4,运行规则:不管时主函数的模式运行,命令行模式运行,都会去运行这个文件

复制代码
[pytest]
addopts = -vs --html ./report/report.html           		 #命令行的参数
testpaths = ./testcase		 #测试用例的路径
python_files = test_*.py	 #模块名的规则
python_classes = Test* 	#类名的规则
python_functions = test	 #方法名的规则
markers = 
        smoke:冒烟用例
        usermanage:用户管理模块

4,pytest执行测试用例的顺序

unitest: ascII的大小来绝对的执行顺序

Pytest:默认从上到下

改变默认顺序在用例上加 order=为添加顺序

@pytest.mark.run(order=1)

5,如何分组执行(冒烟,分模块执行,分接口和web执行)

@pytest.mark.smoke

smoke:冒烟用例,分布在各个模块里面 smoke为自定义标记

pytest -m 'smoke'

pytest -m 'smoke or usermanage'

6,pytest跳过测试用例

@pytest.mark.skip(reason='跳过原因')

@pytest.mark.skipif(age<18,'原因')

7,通过conftest.py和@pytest.fixture()结合使用实现全局的前置应用

1,conftest.py文件是单独存放在一个夹具配置文件,名称不能更改。

2,用处可以在不同py文件中是用同一个fixture函数。

3,原则上conftest.py需要和运行的用例放到同一层,并且不需要做任何的import导入的操作

相关推荐
头茬韭菜3 分钟前
第 4 篇:「Fluss + Flink 集成实战」—— Catalog、Source 与 Sink
大数据·python·flink·fluss
天天爱吃肉821819 分钟前
【工程师硬件学习笔记:串口‑总线体系与三电试验室异构系统集成深度实战】
大数据·笔记·python·嵌入式硬件·学习·汽车
AC赳赳老秦21 分钟前
官方技术文档聚合实践:用 OpenClaw 批量抓取开源项目文档,构建离线可检索技术知识库
java·运维·服务器·python·信息可视化·deepseek·openclaw
Zenova EdgeOS23 分钟前
工业边缘 SDK 设计实战:从 API 到 Python/Go 多语言工程落地
python·golang·php
breeze jiang24 分钟前
Next.js App Router 全栈实战:从 SPA 的 SEO 痛点到服务端组件与 Hydration 水合机制
开发语言·javascript·ecmascript
程序员老陆28 分钟前
Qt::WidgetAttribute 常用属性详解
开发语言·qt
XLYcmy35 分钟前
pdf论文处理:CSV输出模式
数据库·python·pycharm·pdf·论文·csv·dify
苏灿烤鱼1 小时前
14MB 模型,凭什么跟 270M 对打?
javascript·python·agent
特立独行的猫a3 小时前
Windows安装Rust环境 Clang替代GCC MinGW环境LLVM工具链(详细教程)
开发语言·windows·rust·mingw·环境搭建·llvm
m0_720245019 小时前
1543.统计好三元组(简单)
开发语言·算法