查看所有Python相关学习笔记
pytest学习
一、相关内容的下载安装
1.1 基础安装
pip install pytest
1.2 html报告相关
pip install pytest-html
1.3 多进程运行相关
pip install pytest-xdist
1.4 错误重试相关
pip install pytest-rerunfailures
二、代码编写
2.1 编写规则
- 测试文件以
test_
开头(以_test
结尾也可以); - 测试类以
Test
开头,并且不能带有init
方法; - 测试函数以
test_
开头; - 断言使用基本的
assert
。 - 可自定义规则,详见【Pytest】pytest的基本设置
2.2 简单示例
简单示例代码详见第三章节
2.3 断言的使用
三、pytest执行命令
3.1 选择需要运行的用例
- 执行时需先切换到相关文件夹下
- 运行pytest时会找当前目录及其子目录中的所有test_*.py 或 *_test.py格式的文件以及以test开头的方法或者class,不然就会提示找不到可以运行的case了
- 演示代码
- test_01.py
class Testcases01:
def test_01(self):
assert 1 == 1
def test_02(self):
assert 1 == 1
class Testcases02:
def test_01(self):
assert 1 == 1
def test_02(self):
assert 1 == 1
- test_02.py
class Testcases03:
def test_01(self):
assert 1 == 1
def test_02(self):
assert 1 == 1
3.1.1 运行当前文件夹下的所有用例
pytest
运行当前文件夹下的所有用例(加了html参数,详见3.2.2章节)
3.1.2 运行某个py文件中的所有用例
pytest test_01.py
运行某个py文件中的所有用例(加了html参数,详见3.2.2章节)
3.1.3 运行某个py文件中的某个class下的所有用例
pytest test_01.py::Testcases01
运行某个py文件中的某个class下的所有用例(加了html参数,详见3.2.2章节)
3.1.3 运行某个py文件中的某个class下的某个用例
pytest test_01.py::Testcases01::test_02
运行某个py文件中的某个class下的某个用例(加了html参数,详见3.2.2章节)
3.2 参数说明
3.2.1 -q
(-quiet)作用是减少冗长(命令行窗口不再展示pytest的版本信息)。
- 演示代码
class TestClass:
def test_one(self):
x = "this"
assert 'h' in x
- 演示命令
pytest -q
带-q与不带-q的区别
3.2.2 --html=xxx.html
运行后生成html测试报告
执行前需先安装pytest-html模块,详见1.2章节。
- 演示代码
class TestClass:
def test_one(self):
x = "this"
assert 'h' in x
def test_two(self):
x = "hello"
assert hasattr(x, 'check')
- 演示命令
pytest --html=myreport/myreport.html
- 上面方法生成的报告,css是独立的,分享报告的时候样式会丢失,为了更好的分享发邮件展示报告,可以把css样式合并到html里
pytest --html=report.html --self-contained-html
生成的html报告界面
3.2.3 -n NUM
多进程运行用例,NUM是线程数。
执行前需先安装pytest-xdist模块,详见1.3章节。
pytest -n 3
3.2.4 --reruns NUM
某个用例运行失败时自动重试,NUM是重试次数。
执行前需先安装ppytest-rerunfailures模块,详见1.4章节。
pytest --reruns 2
3.2.5 -s
运行命令时显示调试信息(print内容)。
pytest -s
带-s与不带-s的区别
网友评论