根据每个章节的作业相关知识点,进行梳理汇总,作业链接参考请查看知识延伸。
针对每个知识点更基础的运用,请点击对应基础代码demo进行查阅。
一、知识重点:
-
用例参数化
-
使用mark标签为测试用例分类
-
设置跳过、预期失败用例分类
-
对异常用例进行处理
二、知识延伸:
项目链接:参考代码
三、理论与实战:
(一) 用例参数化
使用场景:
通过参数的方式传递数据,从而实现数据和脚本分离。
并且可以实现用例的重复生成与执行。
将数据放在列表嵌套列表中
通过ids参数,将别名放在列表中
基础demo:参考代码(pytest.parameter)
(二) 使用mark标签为测试用例分类
场景:只执行符合要求的某一部分用例 可以把一个web项目划分多个模块,然后指定模块名称执行。
解决: 在测试用例方法上加 @pytest.mark.标签名
执行: -m 执行自定义标记的相关用例
- pytest -s test_mark_zi_09.py -m=webtest
- pytest -s test_mark_zi_09.py -m apptest
- pytest -s test_mark_zi_09.py -m “not ios”
实际使用:
pytest .\test_add.py -vs -m “P0”
pytest .\test_add.py -m “P0”
基础demo:参考代码(pytest.mark)
(三) 设置跳过、预期失败用例分类
pytest内置标签,用于处理特殊/不能成功测试用例
- skip - 始终跳过该测试用例
- skipif - 遇到特定情况跳过该测试用例
- xfail - 遇到特定情况,产生一个“期望失败”输出
使用场景:
- 调试时不想运行这个用例
- 标记无法在某些平台上运行的测试功能
- 在某些版本中执行,其他版本中跳过
基础demo:参考代码(pytest.Skip)
(四) 对异常用例进行处理
使用场景:
- 可以捕获特定的异常
- 获取捕获的异常的细节(异常类型,异常信息)
- 发生异常,后面的代码将不会被执行
基础demo:参考代码(Pytest.异常处理)