@pytest.fixture有一个params参数,接受一个列表,列表中每个数据都可以作为用例的输入。也就说有多少数据,就会形成多少用例。
如下面例子,就形成3条用例
test_parametrizing.py
 import pytest

 seq=["case1","case2","case3"]

 @pytest.fixture(scope="module",params=seq)
def params(request):
return request.param def test_params(params):
print(params)
assert "case" in params

执行命令:

pytest -rA  test_parametrizing.py

执行结果:

正常情况params参数不能动态取值的,如果需要动态取值,可以采用在params的序列值中放入函数的方法解决

 import uuid
import pytest def duuid():
return str(uuid.uuid4()) duuids=[]
duuids.append(duuid()) @pytest.fixture(scope="function", params=duuids)
def gparams(request):
p = request.param
return p def guuid():
def _uuid():
return str(uuid.uuid4())
return _uuid @pytest.fixture(scope="function", params=[guuid()])
def funcparam(request):
p = request.param
return p() @pytest.fixture(scope="function", params=[guuid(), guuid()])
def funcparams(request):
p = request.param
return p() def test_params1(gparams):
print("test_params1:"+gparams)
#fb3dc70e-273f-4622-bedb-72b3967e9296 def test_params1_1(gparams):
print("test_params1_1:"+gparams)
#fb3dc70e-273f-4622-bedb-72b3967e9296 def test_params2(funcparam):
print("test_params2:"+funcparam)
#92bc5bf6-0dbe-44d0-b402-29f57971949e def test_params2_2(funcparam):
print("test_params2:" + funcparam)
#2d42e226-47f1-47d5-9561-557ab2a1115e def test_params3(funcparams):
print("test_params3:"+funcparams)
#05e9e475-fb6e-4a02-8f47-dd14bdea53f4
#520bd717-7d95-4281-94f7-d7ba45f88db1

在用例test_params2和test_params2_2的执行结果中可以看到,在scope为function的情况下,两条用例获取到不同的UUID值。

pytest fixture 利用 params参数实现用例集合的更多相关文章

  1. 求任意长度数组的最大值(整数类型)。利用params参数实现任意长度的改变。

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. Pytest fixture及conftest详解

    前言 fixture是在测试函数运行前后,由pytest执行的外壳函数.fixture中的代码可以定制,满足多变的测试需求,包括定义传入测试中的数据集.配置测试前系统的初始状态.为批量测试提供数据源等 ...

  3. pytest文档28-重复执行用例(pytest-repeat)

    前言 平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来. 自动化运行用例时候,也会出现偶然的bug,可以针对单个用例, ...

  4. Pytest学习笔记11-重复执行用例插件pytest-repeat

    前言 我们在平时做测试的时候,经常会遇到一些偶现的bug,通常我们会多次执行来复现此类bug,那么在自动化测试的时候,如何多次运行某个或某些用例呢,我们可以使用pytest-repeat这个插件来帮助 ...

  5. pytest--fixture基本使用(主要用来进行测试环境的初始化和清理,fixture中的params参数还可以用来进行参数化)

    fixture fixture修饰器来标记固定的工厂函数,在其他函数,模块,类或整个工程调用它时会被激活并优先执行,通常会被用于完成预置处理和重复操作. 方法: fixture(scope=" ...

  6. Pytest测试框架(三):pytest fixture 用法

    xUnit style 结构的 fixture用于初始化测试函数, pytest fixture是对传统的 xUnit 架构的setup/teardown功能的改进.pytest fixture为测试 ...

  7. Pytest(6)重复运行用例pytest-repeat

    前言 平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来. 自动化运行用例时候,也会出现偶然的bug,可以针对单个用例, ...

  8. 【又长见识了】函数传参,params参数,ref和out参数详解

    一.原来函数这样传参 先看一个函数和函数调用. static void Main(string[] args) { ; Test(num);//局部变量在使用之前赋值 //Test(10); //直接 ...

  9. pytest文档47-allure报告添加用例失败截图

    前言 使用 selenium 做 web 自动化的时候,很多小伙伴希望用例失败的时候能截图,把异常截图展示到allure报告里面. pytest 有个很好的钩子函数 pytest_runtest_ma ...

随机推荐

  1. Windows API 第17篇 GetLogicalDriveStrings 获取本机所有逻辑驱动器,以根目录的形式表示

    函数原型:DWORD GetLogicalDriveStrings(  DWORD nBufferLength,  // size of buffer                          ...

  2. virtualbox 启动虚拟机提示Cannot load R0 module

    Cannot load R0 module C:\Program Files\Oracle\VirtualBox/VBoxDDR0.r0: SUPR3LoadModule: supLoadModule ...

  3. 第六章 Odoo 12开发之模型 - 结构化应用数据

    在本系列文章第三篇Odoo 12 开发之创建第一个 Odoo 应用中,我们概览了创建 Odoo 应用所需的所有组件.本文及接下来的一篇我们将深入到组成应用的每一层:模型层.视图层和业务逻辑层. 本文中 ...

  4. Java SE、Java EE、Java ME三者的区别

    1. Java SE(Java Platform,Standard Edition).Java SE 以前称为 J2SE.它允许开发和部署在桌面.服务器.嵌入式环境和实时环境中使用的 Java 应用程 ...

  5. [转]SQLserver字符串分割函数

    一.按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果. CREATE function Get_StrArrayLength ( ) ...

  6. docker tomcat启动慢

    镜像 https://hub.docker.com/r/errorlife/tomcat/ docker pull errorlife/tomcat

  7. UVA11389 The Bus Driver Problem

        题意:有司机,下午路线,晚上路线各n个.给每个司机恰好分配一个下午路线和晚上路线.给出行驶每条路线的时间,如果司机开车时间超过d,则要付加班费d*r.问如何分配路线才能使加班费最少.   贪心 ...

  8. webpack打包js,css和图片

    1.webpack打包默认配置文件webpack.config.js 2.打包js文件:有这个文件并配置可以直接在cmd上webpack打包,没有这个文件要在cmd上输入 webpack main.j ...

  9. vue项目 安装和配置sass & main.js引入scss文件报错

    通过npm 安装 cnpm install --save-dev sass-loader cnpm install --save-dev node-sass 在build文件夹下的webpack.ba ...

  10. Wamp 扩展Oracle Oci

    参考网址: http://www.cnblogs.com/azhw/p/4599632.html