详解Pytest测试用例的执行方法
作者:0o一人情 发布时间:2022-02-15 18:28:14
pytest概述
pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点:
1、简单灵活,容易上手,文档丰富;
2、支持参数化,可以细粒度地控制要测试的测试用例;
3、能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests);
4、pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等;
5、测试用例的skip和xfail处理;
6、可以很好的和CI工具结合,例如jenkins
如下是目录结构:
1、主函数模式
(1)运行所有 pytest.main()
(2)指定模块 pytest.main('[-vs],','./testcase/test_day1.py')
(3)指定目录pytest.main('[-vs]'),'./testcase')
(4)通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成
#pytest.main(["-vs"],'./interface_testcase/test_day3.py::test_demo11')
#pytest.main(["-vs"],'./interface_testcase/test_day3.py::TestLogin::test_01_qianghong1')
2、命令行模式
(1)运行所有:pytest
(2)指定模块 pytest -vs ./testcase/test_day1.py
(3)指定目录 pytest -vs ./testcase
(4)通过nodeid指定用例运行:nodeid由模块名,分隔符,类名,方法名,函数名组成
pytest -vs ./interface_testcase/test_day3.py::test_demo11
pytest -vs ./interface_testcase/test_day3.py::TestLogin::test_01_qianghong1
参数详解:
-s:表示输出调试信息,包括print打印的信息
-v显示更详细的信息
-vs一起使用
-n支持多线程或者分布式运行测试用例
#如 #pytest.main(['-vs','./testcase/test_day1.py','-n=2'])
# pytest -vs ./testcase/test_day1.py -n 2
#reruns==number 表示失败用例重跑
#pytest -vs ./testcase/test_day2.py --reruns 2
#pytest.main(['–vs','./testcase/test_day2.py',‘reruns=2']) #失败得的用例重跑两次
#-x表示只要一个用例报错,那么测试停止运行
#–maxfail=2 出现两个失败用例停止
#-k 根据测试用例的部分字符串指定测试用例 pytest -vs test_day2 -k “yang”
3、通过读取pytest ini配置文件运行 (最主要运用的方式)
#pytest.ini是pytest单元测试框架中的核心配置文件
(1)位置:一般是放在项目的根目录
(2)编码:必须是ANSI,可以使用notepad++来修改编码格式
(3)作用:改变pytest的默认行为
(4)运行的规则:不管是主函数的模式运行该,命令行模式,都会区读取这个配置文件
[pytest]
addopts=-vs #命令行参数 用空格分离
testpaths=./testcase #测试用例的路径 ./testcase/test_day2.py #
python_files=test_*.py #模块名的规则
python_classes=Test* #类名的规则
python_functions=test #方法名的规则
#实际项目配置中,尽量删除注释,确保不必要的问题出现
来源:https://blog.csdn.net/qq_43767472/article/details/116769479
猜你喜欢
- 按单字节计算字符串的长度,汉字算两个字节。<script type="text/JavaScript"
- 废话不多说,看代码吧!import tkinterfrom tkinter import ttkdef go(*args): #
- Python自动的os库是和操作系统交互的库,常用的操作包括文件/目录操作,路径操作,环境变量操作和执行系统命令等。文件/目录操作获取当前目
- 首先,来看每次处理一个字符的情况,可以有如下方法去实现:方法一: >>> a='
- $n=round(1.95583, 2); 这是四舍五入法保留2位小数
- Python使用Try Exception来处理异常机制 若Exception中有Try对应的异常处理,则Try - exception之后
- 任何数据库系统都无法避免崩溃的状况,即使你使用了Clustered,双机热备等等,仍然无法完全根除系统中的单点故障,何况对于大部分用户来说,
- 第一种打开PyCharm, 然后PyCharm -> Preferences -> 在搜索框中输入Project Interpr
- 前言本文介绍的主要内容是 Redux-Toolkit 在 React + TypeScript 大型应用中的实践,主要解决的问题是使用 cr
- 我不知道没有他们我该如何生活我编写Python已有5年以上了,我的工具集通常变得越来越小,而不是越来越大。 许多工具不是必需的或无用的,而其
- 这几天一直在看《Pro JavaScript Techniques》,书中有不少优美、健壮代码,让我不得不惊叹老外对语言这东西的研究程度之深
- insert into(列名) select 列名 from 表名 where 条件 --不创建表,只复制表数据 select 列名 int
- 如果你在爬虫过程中有遇到“您的请求太过频繁,请稍后再试”,或者说代码完全正确,可是爬虫过程中突然就访问不了,那么恭喜你,你的爬虫被对方识破了
- 目录1.引言2.获取目标网站3.爬取目标网站4.解析爬取内容4.1. 解析全国今日总况4.2. 解析全国各省份疫情情况4.3. 解析江苏各地
- 上传问题可以说是网络编程中经常遇到的,也是一个很重要的问题,我们不仅要实现上传文件,图片等基本功能,还有考虑到上传程序的安全性,本文介绍了一
- 1.相信大家,在经过前面的初步学习之后,相信大家也想要有一个舒适的编程环境了。接下来将交给大家一个简单的配置环境Anaconda + VSC
- 这篇文章主要介绍了python ftplib模块使用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 在之前的一篇文章我们介绍了《如何向PHP数组中头部和尾部添加元素》既然有添加元素,那么就有删除元素,今天这篇文章详细介绍如何删除数组中的头部
- 批量修改: EXEC sp_MSforeachtable 'exec sp_changeob
- 不知不觉已经在家两个月了,眼看马上春节就要来临了。满怀期待的写了一个新年倒计时的小工具!设置新年时间后都能够使用,打开软件后可以自动计算到新