pytest_L2_学习(作业)笔记

根据每个章节的作业相关知识点,进行梳理汇总,作业链接参考请查看知识延伸。
针对每个知识点更基础的运用,请点击对应基础代码demo进行查阅。

一、知识重点:

  • 用例参数化

  • 使用mark标签为测试用例分类

  • 设置跳过、预期失败用例分类

  • 对异常用例进行处理

二、知识延伸:

项目链接:参考代码

三、理论与实战:

(一) 用例参数化

使用场景:

通过参数的方式传递数据,从而实现数据和脚本分离。

并且可以实现用例的重复生成与执行。

image

将数据放在列表嵌套列表中

通过ids参数,将别名放在列表中

image

image

基础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”

image

实际使用:

pytest .\test_add.py -vs -m “P0”

pytest .\test_add.py -m “P0”

基础demo:参考代码(pytest.mark)

(三) 设置跳过、预期失败用例分类

pytest内置标签,用于处理特殊/不能成功测试用例

  • skip - 始终跳过该测试用例
  • skipif - 遇到特定情况跳过该测试用例
  • xfail - 遇到特定情况,产生一个“期望失败”输出

使用场景:

  • 调试时不想运行这个用例
  • 标记无法在某些平台上运行的测试功能
  • 在某些版本中执行,其他版本中跳过

image

基础demo:参考代码(pytest.Skip)

(四) 对异常用例进行处理

使用场景:

  • 可以捕获特定的异常
  • 获取捕获的异常的细节(异常类型,异常信息)
  • 发生异常,后面的代码将不会被执行

image

基础demo:参考代码(Pytest.异常处理)