pytest 常用方法

一、pytest 特点

  • 支持参数化
  • 支持某些测试跳过(skip)
  • 支持重复执行失败的case
  • 支持执行部分用例
  • 方便jenkins与allure报告

二、用例执行规则

  • 只执行 pytest ,会查找当前目录及其子目录下以  test_*.py  或 *_test.py 文件,找到文件后,在文件中找到以  test 开头函数并执行


三、常用方法

1、fixture 

  1)定义fixture:@pytest.fixture()

  2)调用fixture:

  • 在需要调用的函数()内把定义fixture的函数名称当做参数传入。 
  • @pytest.mark.usefixtures() 的括号内填入定义fixture的函数名称

    两者的区别,需要到reture 值时,只能使用传参的方式。不需要到reture,两者都可以使用。

2、skip(跳过用例)

  1)调用方法:@pytest.mark.skip()

   

 

 

3、xfail(预期失败)

  1)调用方式:@pytest.mark.xfail() ,注:xfail(condition, reason)

  --condition 预期失败的条件
  --reason 预期失败的原因

  

 

 

 

4、parametrize (参数化)

  1)调用方式:@pytest.mark.parametrize () ,在括号内填入key与value。

  

 

 

 

 

5、flaky(失败重跑)

  1)调用方式:@pytest.mark.flaky(reruns=5, reruns_delay=1) 

  

 

 

 6、pytest hook 钩子函数(可以自定义功能或者插件)

   什么是hook 函数?

  1)通俗的说,就是根据软件定义某些钩子函数,当软件命中某些行为时就会执行钩子函数内设定好的逻辑。前提必须提供给外部使用,相当于对软件进行监听和修改。

  什么情况使用到hook 函数呢?

  1)在pytest  中Hook函数通常需要在conftest.py(全局生效)文件中定义。(如果不在这个文件内定义也是可以,只能局部生效)

    1、获取pytest 执行结果@pytest.hookimpl  2、修改pytest 乱码(参数化用例中文名称)pytest_collection_modifyitems()。 3、提前进行异常处理,避免用例执行失败终止测试。

    4、进行用例参数化。

四:allure 特性

 

 

posted @ 2022-03-14 22:36  Jc_code  阅读(790)  评论(0编辑  收藏  举报