一、pytest对比unittest
二、pytest用例前后置
方式二:
@pytest.fixture(scope='function') 用例级别的前后置
@pytest.fixture(scope='class') 类级别的前后置
定义和引用:
随便定义一个方法,加上@pytest.fixture(scope='function')
标签
引用:
用例中把方法名当参数传入,def test_01(self,cls_setup):
写入conftest.py
文件下,pytest运行时,会自动读取这个文件的里面的前后置,用例中需要时,直接引用不用导入包
三、pytest执行顺序,同一个文件按照用例文件中代码的前后顺序,(多个文件根据文件名的ASCII码排序)
四、用例打标签筛选执行用例(给单条用例添加):pytest.mark
1、在pytest.ini文件
中markers这个配置项中注册标签
2、用@pytest.mark.标签名
,给用例加上标签
3、执行用例时可以通过pytest -m 标签名
或者pytest.main(['参数列表'])
去筛选执行用例
筛选多个标签(and or not)
pytest -m "not wen"
:执行不带有wen标签的用例
pytest -m "wen or main"
:执行带有wen或者main标签的用例
pytest -m "wen and main"
:执行同时带有wen和main标签的用例
4、内置标签
skip:跳过用例
skipif:条件成立,跳过该用例
五、用例运行方式
1、命令行:pytest 参数
2、pytest.main运行,pytest.main([‘参数列表’])
import pytest
pytest.main(['-m','main']) # 执行带有标签main的用例
3、筛选用例的执行文件 或者测试类 用例方法
六、断言(assert关键字)
七、参数化
item:自定义接受的参数名,后面的测试方法中直接引用这个参数
cases:传入的参数
八、测试报告(集成allure报告平台)
allure报告标题显示:
1、单个用例标题:给用例添加标签,@allure.title("用例标题")
2、参数化的形式添加标题:allure.dynamic.title(case['title'])