fixture的参数可以解决大量重复代码工作,比如数据库的连接、查询、关闭等.同样可以使用参数化来测试多条数据用例

例一、

import pytest

@pytest.fixture(params=[("redis", "6379"), ("elasticsearch", "9200")])

def params(request):

return request.param

@pytest.fixture()

def db(params):

print(f"\nuse to connection: {params}")

yield

print(f"\nclose to connection:{params}")

@pytest.mark.usefixtures("db")

def test_demo():

assert 1 == 1

运行结果:

╰ pytest -v -s test_data.py

======================================================= test session starts ========================================================

platform darwin -- Python 3.7.4, pytest-4.4.0, py-1.8.0, pluggy-0.13.0 -- /Users/zhouwanghua/Code/Leyan/python/robocop/bin/python

cachedir: .pytest_cache

metadata: {'Python': '3.7.4', 'Platform': 'Darwin-18.6.0-x86_64-i386-64bit', 'Packages': {'pytest': '4.4.0', 'py': '1.8.0', 'pluggy': '0.13.0'}, 'Plugins': {'bdd': '3.1.0', 'html': '1.20.0', 'metadata': '1.8.0'}}

rootdir: /Users/zhouwanghua/Code/Leyan/robocop, inifile: pytest.ini

plugins: bdd-3.1.0, html-1.20.0, metadata-1.8.0

collected 2 items

test_data.py::test_demo[params0]

use to connection: ('redis', '6379')

PASSED

close to connection:('redis', '6379')

test_data.py::test_demo[params1]

use to connection: ('elasticsearch', '9200')

PASSED

close to connection:('elasticsearch', '9200')

===================================================== 2 passed in 0.03 seconds =====================================================

例二、

import pytest

@pytest.fixture(params=[1, 2])

def data(request):

"""

:param request:

"""

return request.param

def test_data(data):

print(f"data:{data}")

运行结果:

╰ pytest -v -s test_data.py

======================================================= test session starts ========================================================

platform darwin -- Python 3.7.4, pytest-4.4.0, py-1.8.0, pluggy-0.13.0 -- /Users/zhouwanghua/Code/Leyan/python/robocop/bin/python

cachedir: .pytest_cache

metadata: {'Python': '3.7.4', 'Platform': 'Darwin-18.6.0-x86_64-i386-64bit', 'Packages': {'pytest': '4.4.0', 'py': '1.8.0', 'pluggy': '0.13.0'}, 'Plugins': {'bdd': '3.1.0', 'html': '1.20.0', 'metadata': '1.8.0'}}

rootdir: /Users/zhouwanghua/Code/Leyan/robocop, inifile: pytest.ini

plugins: bdd-3.1.0, html-1.20.0, metadata-1.8.0

collected 2 items

test_data.py::test_data[1] data:1

PASSED

test_data.py::test_data[2] data:2

PASSED

===================================================== 2 passed in 0.02 seconds =====================================================

java fixture_10、fixture参数化相关推荐

  1. Pytest fixture参数化params

    unittest使用ddt来实现测试用例参数化.或parameterized实现测试用例参数化,pytest测试用例里面对应的参数可以用 parametrize 实现参数化,今天我们来了解下fixtu ...

  2. 【pytest】(十)fixture参数化-巧用params和ids优雅的创建测试数据

    我们都知道参数化. 比如我要测试一个查询接口/test/get_goods_list,这个接口可以查询到商品的信息. 在请求中,我可以根据请参数goods_status的不同传值,可以查询到对应状态的 ...

  3. pytest之fixture参数化

    背景 本文总结fixture参数化 说明 pytest除了支持基本的测试用例参数化,还支持fixture参数化.当然,fixture参数化的过程与测试用例参数化有点点区别. fixture的参数化涉及 ...

  4. 小博老师解析Java核心技术 ——JDBC参数化查询(一)

    [引言] 我们在学习Java编程时,连接数据库技术(JDBC)是一项必备技能,我们经常需要读取或操作持久性存储的结构化数据.那么现在开始,小博老师就开始为大家讲解JDBC中的常用操作技术,今天我们来了 ...

  5. java参数化查询_小博老师解析Java核心技术 ——JDBC参数化查询(二)

    [步骤阅读四]SQL注入 按照以上方式开发,确实已经完成了基本的用户登录业务需求,但是这么做的话可以会出现一个比较严重的问题,那就是容易被SQL注入.所谓SQL注入,就是在需要用户填写信息,并且这些信 ...

  6. java泛型,“参数化参数”的基本理解

    Java在JDK1.5中引入泛型这一新特性,泛型的本质是参数化类型,也就是说,可以把数据类型指定为一个参数,这个参数类型可以用在类.接口和方法的创建中.泛型在Java语言的Collection中大量地 ...

  7. pytest实战--参数化parametrize+前置fixture

    文章目录 参数化 parametrize 适用场景 一个典型的例子 前置fixture+参数化 适用场景 一个典型的例子 示例2 个人疑问? pytest既可以用来做单元测试,也可以用来做自动化接口测 ...

  8. java lambda 多个参数_Java Lambda行为参数化

    Java Lambda行为参数化 我们可以将lambda表达式作为参数传递给方法. 例子 以下代码创建了一个名为Calculator的函数接口. 在Calculator中有一个称为calculate的 ...

  9. pytest.5.参数化的Fixture

    From: http://www.testclass.net/pytest/parametrize_fixture/ 背景 继续上一节的测试需求,在上一节里,任何1条测试数据导致断言不通过后测试用例就 ...

最新文章

  1. Linux CentOS 6.5 + Apache + Mariadb + PHP环境搭建
  2. linux 多线程实现倒计时,Linux用脚本实现“时分秒“倒计时功能
  3. python现在时间 命令,Python 日期格式和时间以及当前时间和时间戳
  4. linux堡垒机开源软件,Jumpserver开源堡垒机
  5. 2013 ACM/ICPC Asia Regional Changsha Online - C
  6. SQL Server 执行计划利用统计信息对数据行的预估原理二(为什么复合索引列顺序会影响到执行计划对数据行的预估)...
  7. 在ASP.NET 3.5中使用新的ListView控件(3)
  8. Java生产环境下性能监控与调优详解 第4章 基于Btrace的监控调试
  9. request.post
  10. spss 安装包以及许可证
  11. css003 选择器:明确设置哪些样式
  12. Exp9 Web安全实践基础 20154328 常城
  13. 2021-07-01 <1000+常用Python库>
  14. 用户“*****”不具有所需的权限。请验证授予了足够的权限并且解决了 Windows 用户帐户控制(UAC)限制问题。
  15. 你要怎么切你的披萨?
  16. app小程序手机端Python爬虫实战02-uiautomator2自动化抓取开发环境搭建
  17. Word中调节图片统一大小
  18. 羊皮卷的故事-第十二章-羊皮卷之五
  19. 程序猿如何练习用英语讲好一个笑话?
  20. 程序员考试下午题知识点总结

热门文章

  1. USB2.0 协议规范的4 端口USB HUB 控制器芯片
  2. python小海龟画房子编程_编程入门06:Python海龟绘图
  3. 《jQuery》实现一个H5的九宫格抽奖
  4. 极客战记怎么换成java_「网易官方」极客战记(codecombat)攻略-森林-矮人蜂拥而至-munchkin-swarm...
  5. js基本数据类型和引用数据类型有什么区别?
  6. Vue2项目引入矢量图报错(显示□)
  7. 放大招!!!落地成盒?教你开发自己的联网吃鸡游戏 1
  8. 异地神器之同步看视频
  9. 微信小程序 漂亮的按钮 多颜色+动画效果,超好看的button 样式
  10. 2、项目3-如何买玫瑰