pytest 执行用例的基本使用

发布时间 2024-01-12 15:41:58作者: 哩子吖

pytest 测试用例的运行方式

  1、主函数模式:

    a. 运行所有:pytest.main()

    b. 运行指定模块:pytest.main(['-vs', 'test_login.py'])

    c. 运行指定目录:pytest.main(['-vs', './testcase'])

    d. 通过nodeid 指定用例运行:nodeid 由模块名,分隔符,类名,方法名,函数名组成

      pytest.main(['-vs', './testcase/test_login.py::test_01_func'])

     pytest.mian(['-vs', './testcase/test_login.py::TestLogin::test_01_func'])

  2、命令行模式:

    1)运行所有:pytest

    2)指定模块:pytest -vs test_login.py

    3)指定目录:pytest -vs ./testcase

    4)指定用例执行:pytest -vs ./testcase/test_login.py::test_01_func

    一些基本常用指令:

      -v:显示运行用例的更详细信息

      -s:输出调试信息,包括 print() 打印信息

      -x:表示只要有一个用例的报错,那么测试停止

      -maxfail=2:出现两个用例失败则停止运行用例

      -rerunfail num:失败用例重跑

      -k:根据测试用例的部分字符串指定测试用例,如:pytest -vs ./testcase -k "ao"

      -html ./report/report.html:生成html 的测试报告

      -n:支持多线程或者分布式运行测试用例,如:pytest -vs ./testcase/test_login.py -n 2

 

pytest 执行用例的顺序是默认从上到下,改变执行用例的顺序使用 mark 标记,如:@pytest.mark.run(order=3)

 

pytest 分组执行用例(冒烟,分模块执行,分接口和web执行)

  smoke:冒烟用例,分布在各个模块里面

  执行指令:pytest -m "smoke"

       pytest -m "smoke or usemanage or productmanage"

 

pytest 跳过测试用例

  1)无条件跳过:@pytest.mark.skip(reason="测试")

  2)有条件跳过:@pytest.mark.skipif(age>18, reason='已成年')