一、pytest运行命令参数解析
1.指定测试用例
(1)指定路径 pytest.main([“testcase/test_case.py::TestOrder::test_order”])
(2)-m 运行指定标记的用例 pytest -m “smoke or order” 或 pytest.main([“-m”, “smoke or order”])
@pytest.mark.xx可以标记在具体用例上也可以标记在用例类上
(3)-k 运行匹配指定字符串的测试用例 匹配包名、模块、类、函数、方法
pytest -k order testcase/test_case.py::TestOrder
或
pytest.main([“-k”, “order”, “testcase/test_case.py::TestOrder”])
2.控制执行过程
(1)用例失败重新执行次数 --rerun
需要按照包pytest-refailures
# 运行失败后该用例重新运行最多3次
pytest.main(["--reruns", "3", "testcase/test_case.py"])
# 命令行形式
pytest --reruns=3 testcase/test_case.py
(2)用例执行失败停止运行
-
遇到用例失败就停止项目运行 -x 或者–exitfirst
-
失败几个用例后停止项目运行 --maxfail=num
(3)运行上次失败案例
– if或–last-failed 只执行上次运行失败的用例
–ff或 --failed-first 先执行失败的,再执行项目中其他的
3.执行结果展示
(1) -s 测试结果里显示print里的信息(默认不显示的)
(2) -v 查看详细报告/测试结果
(3) -q 简略执行
4.自定义命令行参数
https://www.cnblogs.com/yoyoketang/p/9457473.html
conftest.py
# content of conftest.py
import pytest
def pytest_addoption(parser):
parser.addoption(
"--cmdopt", action="store", default="type1", help="my option: type1 or type2"
)
@pytest.fixture
def cmdopt(request):
return request.config.getoption("--cmdopt")
用例
# content of test_sample.py
import pytest
def test_answer(cmdopt):
if cmdopt == "type1":
print("first")
elif cmdopt == "type2":
print("second")
assert 0 # to see what was printed
if __name__ == "__main__":
pytest.main(["-s", "test_case1.py"])
pytest.ini
pytest.ini能做什么
1、修改用例的命名规则
2、配置日志格式,比代码配置更方便——日志分为输出到控制台的和保存到文件中的
3、添加标签,防止运行过程中报告警错误
4、指定执行目录
5、配置pytest命令运行所带参数