二、pytest的测试用例管理及运行管理

xianyumaixianyu / 2023-09-01 / 原文

2.1 测试用例的命名管理:
(1)不能使用关键字
(2)应以 _ 间隔有实际意义的单词为主

(3)考虑测试用例的执行可通过用例的名称组合进行

 

2.2 用例执行顺序:
(1)根据名称的字母注意进行 ASCII 比较,其值越小越先执行
(2)在一个测试模块(.py文件)中,先执行测试函数,后执行测试类

 

2.3 测试用例的断言管理:
断言:pytest 的断言使用 Python 中的 assert 函数
断言时机:
验证页面是否跳转到正确的页面
验证计算结果与正确结果是否一致
验证接口返回的 JSON 数据是否正确
验证接口返回的状态码是否正确
验证返回值是否与预期一致


断言的分类:
1.验证函数返回值是否相等,断言函数返回了某个值
2.表达式断言,通过表达式运算后的结果进行真假判断
3.比较类型断言
4.不同数据类型的比较断言
为失败断言添加自定义说明:可直接在断言后添加提示信息

 

2.4 在 Python 代码中调用 pytest:
pytest.main(["-q", __file__]):
q是参数 quiet 的简写,表示静默执行,__file__获得当前文件名,也是要执行的文件

pytest.main(["-x", "module.py"])

 

2.5 跳过测试用例方法:
(1)@pytest.mark.skip(reason="") 装饰器,reason 表明跳过原因
(2)pytest.skip("reason") 方法
(3)@pytest.mark.skipif() 装饰器,满足条件就跳过,不满足条件就不跳过
*注意:跳过测试类或测试模块,可以同样适用 @pytest.mark.skip(reason="") 装饰器

 

2.6 标记用例为预期失败:
@pytest.mark.xfail():标记用例,表示期望这个用例执行失败。结果:用例执行失败(XFALL:符合预期的失败),用例执行成功(XPASS:不符合预期的成功)
参数:
condition:条件,reason:原因,raises:引起异常,run:是否执行,strict:失败的用例是否显示为 FAILED 的开关