Python pytest fixture夹具

摘要:
测试夹具的本质是一种功能。添加@pytest。fixture()声明,以成为fixture。收益率与回报率相似。它可以有一个返回值,但收益率不同。执行yield后,它可以继续运行。函数在遇到返回时终止。方法2:添加@pytest。做记号测试用例函数上方的usefixture()标记,并将fixture函数名传递给usefixture()。可以传递多个值,例如@pytest。做记号使用固定装置。5、 Conftest.py共享fixture并将fixture单独存储在Conftest.py.可以直接使用用例模块,而无需导入模块名称。

一、简要描述

  在自动化测试过程中,为测试用例提前准备的一个运行环境,这个测试环境被称为测试夹具。

  测试夹具的本质是一个函数,在函数上方加上@pytest.fixture()声明即可成为夹具。

  在测试用例方法执行之前的称为前置条件,测试用例方法执行之后的称为后置条件。以yield作为标记,yield之前的代码为前置条件执行的代码,反之为后置条件执行的代码。

  在夹具中的yield后面可以传递参数(想要返回的值),即前置条件的返回值。yield与return类似,可以有返回值,但yield不一样,执行完yield之后还可以继续往下运行,而函数遇到return就终止了。

  Python pytest fixture夹具第1张

二、使用方式

  方法一:把夹具的函数名称作为参数传到测试用例函数当中。若要获取夹具的返回值,可以直接使用夹具函数名称。

  Python pytest fixture夹具第2张

   方法二:在测试用例函数上方添加@pytest.mark.usefixtures()标记,并将夹具函数名称传递到usefixtures()中,可以传多个值,如@pytest.mark.usefixtures('function_before', 'function_two')。不能接受夹具的返回值,即测试用例函数中要使用夹具的返回值时,该方法不适用。

  Python pytest fixture夹具第3张

三、作用域

  根据@pytest.fixture()中scope参数不同,作用域区分如下:

  function(函数):每个测试用例函数执行时都会执行一次,默认值  

  class(类):不论有多少测试用例,整个类只会运行一次

  module(模块):不论有多少测试用例,整个模块(文件)下只运行一次

  package(包):不论有多少测试用例,整个包(文件夹)下只运行一次

  session:不论有多少测试用例,整个pytest下只会运行一次

  Python pytest fixture夹具第4张

   Python pytest fixture夹具第5张

四、自动使用

  将@pytest.fixture()中autouse参数设为True,即可自动使用夹具,不需要一个个传参数,默认值为False。

  Python pytest fixture夹具第6张

五、conftest.py

  共享夹具fixture,将夹具单独存放到conftest.py中(文件名称是固定的,文件放在项目根目录),用例模块不需要导入模块名,就可以直接使用。

  Python pytest fixture夹具第7张

  Python pytest fixture夹具第8张

免责声明:文章转载自《Python pytest fixture夹具》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Redis学习---Redis的免密操作Java审计之CMS中的那些反序列化漏洞下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

pytest运行流程

pytest的整个测试分成如下6个阶段: pytest_configure   插件和conftest.py文件配置初始化等,创建session。 2、pytest_sessionstart   创建session完以后,执行collection之前的阶段。会调用pytest_report_header向terminal打印一些环境信息,比如插件版本,py...

pycharm中以pytest的方式运行测试用例

》》在pycharm中,右键run test01方法是执行不到测试用例的。 2、在pycharm中配置pytest运行方式。Pycharm--->Preferences页面输入Python Integrated Tools,将default test runner由【unittests】变为【pytest】,apply应用一下。 3、上面是在系...

pytest中xfail、xpass、skip的简单使用

概述: pytest.skip():跳过当前case,这句之前的代码正常执行,之后的不执行 pytest.xfail():标记当前case为xfail,这句之前的代码正常执行,之后的不执行 @pytest.mark.xfail:如果被注解的case执行通过,则状态为xpass。如果不通过状态为xfail import pytest class Test...

pytest + allure自动化测试

首先需要安装一些东西: 从百度网盘下载allure,再配置 链接:https://pan.baidu.com/s/149wQIUux_JbeWwPFTGHAmQ 提取码:jbny 配置allure:在系统变量path中添加:对应的allure安装路径 配置成功的标志: 在pycharm中安装allure: pip install allure-pytes...

unittest与pytest的区别

1、pytest可以根据标签自动设别测试用例 2、断言简洁 assert+表达式,而unittest需调用内部函数,如assertEqual 3、pytest可设置会话级、模块级、类级、函数级的fixtures,即用yield分割:数据准备和数据清理工作(前置后置) 4、pytest有多种插件可以集成,如reruns重运行、allure测试报告的集成等。...

pytest使用allure生成测试报告的2种命令

pytest中使用allure生成测试报告有两种命令方式: 1.第一种(推荐): 第一步:输入下面的命令,执行pytest生成allure的json结果文件: pytest test_cals.py --alluredir ./report 第二步:输入下面的命令生成html文件并启动一个服务,通过访问链接浏览html报告: allure serve ....