什么是Pytest?
- 一、什么是pytest
- 二、Pytest的特点
- 三、Pytest以及常用插件安装
- 四、编写规则
- 五、Pytest之收集用例及命令行参数
- 六、跳过用例
- 七、Pytest的前置和后置方法
- 八、pytest的ini配置文件
- 九、python编程之ini文件处理-configparser模块应用
- 十、pytest执行测试的方法
- 十一、fixtrue修饰器标记的方法
- 十二、pytest之内置fixture函数之request
- 十三、@pytest.mark.parametrize()方法实现参数化
- 十四、request.config 是获取测试的配置文件参数
一、什么是pytest
Pytest是一个非常成熟的全功能的Python测试框架。
二、Pytest的特点
三、Pytest以及常用插件安装
新建一个文件require-install.txt,把以下内容放进去:
pytest
pytest-html
pytest-xdist
pytest-rerunfailures
然后在Dos窗口中使用此命令安装所有的模块:
pip install -r require-install.txt
四、编写规则
五、Pytest之收集用例及命令行参数
1、用例收集规则
2、命令行参数
六、跳过用例
@pytest.mark.skipif(2 > 1, reason="当条件为True时跳过")
七、Pytest的前置和后置方法
1、Pytest可以集成unittest实现前置和后置
注意:setUpClass和tearDownClass需要用@classmethod装饰器装饰。
import unittest
import pytest
class TestCase(unittest.TestCase):
def setUp(self) -> None:
print("unittest 每个用例前置")
def tearDown(self) -> None:
print("unittest 每个用例后置")
@classmethod
def setUpClass(cls) -> None:
print("unittest 所有用例的前置,所有用例之前只执行一次")
@classmethod
def tearDownClass(cls) -> None:
print("unittest 所有用例的后置,所有用例之后只执行一次")
def test_case1(self):
print("测试用例case1")
def test_case2(self):
print("测试用例case2")
if __name__ == '__main__':
pytest.main(["-vs", "pytest_unittest_demo.py"])
运行结果:
2、Pytest前置和后置
(1)setup:在测试函数或类之前执行,完成准备工作,例如数据库链接、测试数据、打开文件等。
(2)teardown:在测试函数或类之后执行,完成收尾工作,例如断开数据库链接、回收内存资源等。
注意:setup、teardown、setup_class、teardown_class都是小写!
class TestCase:
def setup_class(self):
print("pytest 所有测试用例的前置,所有用例执行之前只执行一次!")
def teardown_class(self):
print("pytest 所有测试用例的后置,所有用例执行之后只执行一次!")
def setup(self):
print("pytest 在每一个测试用例执行之前执行一次!")
def teardown(self):
print("pytest 在每一个测试用例执行之后执行一次!")
def test_case3(self):
print("测试用例三case3")
def test_case4(self):
print("测试用例case4")
if __name__ == '__main__':
pytest.main(["-vs", "pytest_demo.py"])
运行结果:
八、pytest的ini配置文件
pytest.ini文件是pytest的主配置文件,可以改变pytest的默认行为。
1、pytest.ini的放置位置
一般放在项目工程的根目录(即当前项目的顶级文件夹下)。
2、pytest.ini的作用
指定pytest的运行方式。
(在cmd输入pytest后,会读取pytest.ini中的配置信息,按指定的方式去运行)
九、python编程之ini文件处理-configparser模块应用
1、configparser模块是什么
可以用来操作后缀为 .ini 的配置文件;
python标准库(就是python自带的意思,无需安装);
2、configparser模块基本使用
详情请查看另外一篇文章:https://blog.csdn.net/weixin_40608713/article/details/120930460?spm=1001.2014.3001.5501