【Python_pytest】pytest 实用插件

ytest 断言

 原生 assert 

# 无需安装
# 在断言失败时,会停止运行之后的代码或断言。
assert 1 == 1, "不相等"

  

pytest-check 模块的断言

# 会执行所有的测试用例,断言失败时,可自定义打印信息,更利于记录和排查问题。
pip install pytest-check  
pytest-check.equal("1",  "1", "错误原因:不相等")

 

多重断言 pytest-assume

# 在断言失败时,不会停止运行代码,会执行所有的测试用例,但断言失败时的结果不详细。
pip install pytest-assume  

 

 

 测试报告

pip install pytest-html

示例:  https://www.cnblogs.com/phoenixy/p/16144461.html 

 

元数据使用

pip install pytest-metadata     # 元数据使用

 

 

日期模块

pip install python-dateutil

 

 

控制用例的执行顺序

pip install pytest-ordering 

 示例:  https://www.cnblogs.com/phoenixy/p/16143132.html


分布式并发执行测试用例

pip install pytest-xdist 
if __name__ == "__main__":

    pytest.main(["test_pressure.py::TestPressure",        # "运行文件名"::"类名"::"方法名"                 "-v",  # 日志打印 -q仅报告 -s仅控制台, -v 报告及控制台
                 "-n 2",    # 不使用则注释掉,xdist多进程并发 -n后+num
                 '-W', 'ignore:Module already imported:pytest.PytestWarning',       # 忽略错误
                 ])

 

控制用例的依赖关系 

pip install pytest-dependency 

 示例:  https://www.cnblogs.com/phoenixy/p/16191241.html


失败重跑

pip install pytest-rerunfailures 

 

 

用例随机执行

pip install pytest-random-order 

 

 

重复执行

pip install pytest-repeat
 --repeat-scope与pytest的fixture的scope参数是类似的:--repeat-scope可设置的值:
  ①module:以整个.py文件为单位,重复执行模块里面的用例,然后再执行下一个(以.py文件为单位,执行一次.py,然后再执行一下.py); 
  ②class:以class为单位,重复运行class中的用例,然后重复执行下一个(以class为单位,运行一次class,再运行一次class这样);
  ③session:重复运行整个会话,所有测试用例运行一次,然后再所有测试用例运行一次;
  ④function(默认):针对每个用例重复运行,然后再运行下一次用例;

 

if __name__ == "__main__":
    pytest.main(["test_pressure.py::TestPressure",  # "运行文件名"::"类名"::"方法名"
                 "-v",  # 日志打印 -q仅报告 -s仅控制台, -v 报告及控制台
                 "--count=4",  # 重复执行3次
                 "-–repeat-scope=function",     # 重复执行整个会话用例
                 "-x",      # 遇到失败就停止运行
                 ])

 

posted @ 2022-04-15 17:18  Phoenixy  阅读(274)  评论(0)    收藏  举报