iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >pytest如何实现测试用例参数化
  • 303
分享到

pytest如何实现测试用例参数化

2023-06-14 13:06:10 303人浏览 八月长安
摘要

小编给大家分享一下pytest如何实现测试用例参数化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!说明软件测试中,输入相应值,检查期望值,是常见测试方法。在自动化

小编给大家分享一下pytest如何实现测试用例参数化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

说明

软件测试中,输入相应值,检查期望值,是常见测试方法。
自动化测试中,一个测试用例对应一个测试点,通常一组测试数据无法完全覆盖测试范围,所以,需要参数化来传递多组数据。

pytest的测试用例参数化使用如下装饰器即可完成。

@pytest.mark.parametrize(argnames, argvalues)# 参数:# argnames:以逗号分隔的字符串# argvaluse: 参数值列表,若有多个参数,一组参数以元组形式存在,包含多组参数的所有参数# 以元组列表形式存在

示例:

参数化之一个参数。

# ./test_case/test_func.pyimport pytest@pytest.mark.parametrize("arg_1", [4399, 2012])def test_add_by_func_aaa(arg_1): print(arg_1) # ./run_test.pyimport pytestif __name__ == '__main__': pytest.main(['-v','-s']) '''============================= test session starts =============================platfORM win32 -- python 3.7.0, pytest-5.3.4, py-1.8.1, pluggy-0.13.1 -- D:\python3.7\Python.execachedir: .pytest_cacherootdir: D:\Python3.7\project\pytest, inifile: pytest.iniplugins: allure-pytest-2.8.9, rerunfailures-8.0collecting ... collected 2 itemstest_case/test_func.py::test_add_by_func_aaa[4399] 4399PASSEDtest_case/test_func.py::test_add_by_func_aaa[2012] 2012PASSED============================== 2 passed in 0.04s ==============================[Finished in 1.3s]'''

参数化之多个参数。

# ./test_case/test_func.pyimport pytest  @pytest.mark.parametrize("arg_1, arg_2", [(4399, 'AAAA'), (2012, 'BBBB')])def test_add_by_func_aaa(arg_1,arg_2): print("arg_1:{}  arg_2:{}".format(arg_1, arg_2))# ./run_test.pyimport pytestif __name__ == '__main__': pytest.main(['-v','-s']) '''============================= test session starts =============================platform win32 -- Python 3.7.0, pytest-5.3.4, py-1.8.1, pluggy-0.13.1 -- D:\Python3.7\python.execachedir: .pytest_cacherootdir: D:\Python3.7\project\pytest, inifile: pytest.iniplugins: allure-pytest-2.8.9, rerunfailures-8.0collecting ... collected 2 itemstest_case/test_func.py::test_add_by_func_aaa[4399-AAAA] arg_1:4399  arg_2:AAAAPASSEDtest_case/test_func.py::test_add_by_func_aaa[2012-BBBB] arg_1:2012  arg_2:BBBBPASSED============================== 2 passed in 0.05s ==============================[Finished in 1.3s]'''

以上第2个示例,展现的是一个测试用例有两个参数,然后参数化了两组数据。

但在实际测试中,有的场景,比如多条件查询,比如有2个查询条件,每个条件有3个选项,如果要全部覆盖,则是3*3==9种情况。这种情景,人工测试一般是不会全部覆盖的,但在自动化测试中,只要你想,就可以做到。如下示例:

如下格式参数化,其测试结果为所有参数选项数量的乘积。

# ./test_case/test_func.pyimport pytestfrom func import *'''class TestFunc: # 正常测试用例 def test_add_by_class(self):  assert add(2,3) == 5 def test_add_by_class_11(self):  assert add(2,3) == 5'''  @pytest.mark.parametrize("arg_1", [4399,  2012, 1997])@pytest.mark.parametrize("arg_2", ['AAAA', 'BBBB', 'CCCC'])def test_add_by_func_aaa(arg_1,arg_2): print("arg_1:{}  arg_2:{}".format(arg_1, arg_2)) # ./run_test.pyimport pytestif __name__ == '__main__': pytest.main(['-v','-s'])   '''============================= test session starts =============================platform win32 -- Python 3.7.0, pytest-5.3.4, py-1.8.1, pluggy-0.13.1 -- D:\Python3.7\python.execachedir: .pytest_cacherootdir: D:\Python3.7\project\pytest, inifile: pytest.iniplugins: allure-pytest-2.8.9, rerunfailures-8.0collecting ... collected 9 itemstest_case/test_func.py::test_add_by_func_aaa[AAAA-4399] arg_1:4399  arg_2:AAAAPASSEDtest_case/test_func.py::test_add_by_func_aaa[AAAA-2012] arg_1:2012  arg_2:AAAAPASSEDtest_case/test_func.py::test_add_by_func_aaa[AAAA-1997] arg_1:1997  arg_2:AAAAPASSEDtest_case/test_func.py::test_add_by_func_aaa[BBBB-4399] arg_1:4399  arg_2:BBBBPASSEDtest_case/test_func.py::test_add_by_func_aaa[BBBB-2012] arg_1:2012  arg_2:BBBBPASSEDtest_case/test_func.py::test_add_by_func_aaa[BBBB-1997] arg_1:1997  arg_2:BBBBPASSEDtest_case/test_func.py::test_add_by_func_aaa[CCCC-4399] arg_1:4399  arg_2:CCCCPASSEDtest_case/test_func.py::test_add_by_func_aaa[CCCC-2012] arg_1:2012  arg_2:CCCCPASSEDtest_case/test_func.py::test_add_by_func_aaa[CCCC-1997] arg_1:1997  arg_2:CCCCPASSED============================== 9 passed in 0.06s ==============================[Finished in 1.4s]'''

以上是“pytest如何实现测试用例参数化”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: pytest如何实现测试用例参数化

本文链接: https://www.lsjlt.com/news/271146.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • pytest如何实现测试用例参数化
    小编给大家分享一下pytest如何实现测试用例参数化,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!说明软件测试中,输入相应值,检查期望值,是常见测试方法。在自动化...
    99+
    2023-06-14
  • pytest实现测试用例参数化
    背景 本文总结pytest的测试用例参数化。 说明 软件测试中,输入相应值,检查期望值,是常见测试方法。 在自动化测试中,一个测试用例对应一个测试点,通常一组测试数据无法完全覆盖...
    99+
    2024-04-02
  • pytest fixtures函数及测试函数的参数化实例分析
    这篇文章主要介绍“pytest fixtures函数及测试函数的参数化实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“pytest fixtures函数及测试函数的参数化实...
    99+
    2023-06-30
  • pytest如何使用@pytest.mark.parametrize()实现参数化
    这篇文章主要介绍“pytest如何使用@pytest.mark.parametrize()实现参数化”,在日常操作中,相信很多人在pytest如何使用@pytest.mark.parametrize()实现...
    99+
    2024-04-02
  • pytest fixtures函数及测试函数的参数化解读
    目录pytest fixtures测试函数参数化一、@pytest.mark.parametrize:参数化测试函数1. 常规用法2. 在参数化中标记单个测试实例3. 多个参数化组合...
    99+
    2024-04-02
  • pytest使用@pytest.mark.parametrize()实现参数化的示例代码
    目录1.方法详情:2.使用方法2.1.一个列表中一个参数多个值2.2.多参数多值2.3.多个参数混合使用2.4.传入字典数据1.方法详情: parametrize(argnames,...
    99+
    2024-04-02
  • JUnit5中的参数化测试实现
    目录参数化测试的基本概念使用不同类型的参数使用自定义的参数参数化测试的高级用法结论JUnit是Java中最受欢迎的测试框架之一。JUnit 5是JUnit的最新版本,它引入了许多新功...
    99+
    2023-05-20
    JUnit5 参数化测试 JUnit 参数化测试
  • Python的pytest参数化实例分析
    今天小编给大家分享一下Python的pytest参数化实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。源代码分析def...
    99+
    2023-06-26
  • Pytest自动化测试框架如何使用
    这篇文章主要讲解了“Pytest自动化测试框架如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pytest自动化测试框架如何使用”吧!Pytest和Unittest测试框架的区别?如何...
    99+
    2023-07-05
  • pytest怎么使用@pytest.mark.parametrize()实现参数化
    这篇文章主要介绍了pytest怎么使用@pytest.mark.parametrize()实现参数化的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇pytest怎么使用@pytest.mark.parametri...
    99+
    2023-07-02
  • Python中怎样实现参数化测试
    Python中怎样实现参数化测试,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、什么是参数化测试?对于普通测试来说,一个测试方法只需要运行一遍,而参数化测试对于一个测试方法,...
    99+
    2023-06-16
  • Pytest+Yaml+Excel 接口自动化测试框架的实现示例
    目录一、框架架构二、项目目录结构三、框架功能说明四、核心逻辑说明配置文件输出目录请求工具类代码编写case程序主入口执行记录一、框架架构 二、项目目录结构 三、框架功能说明 解决...
    99+
    2024-04-02
  • python+pytest自动化测试封装怎么实现
    本篇内容介绍了“python+pytest自动化测试封装怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!例如单个接口的请求代码如下:i...
    99+
    2023-07-02
  • pytest接口测试之fixture传参数request的使用
    目录前言 一、函数传参 request参数 request传两个参数 前言 有的测试用例,需要依赖于某些特定的case才可以执行,比如登录获取到token,后面的请求都需要带着,为...
    99+
    2024-04-02
  • pytest自动化测试fixture的作用域实例化顺序及可用性
    目录1. fixture的作用域1.1 scope1.function:2.class:3.module:4.package:5.session:1.2 动态作用域(Dynamic ...
    99+
    2024-04-02
  • 怎么用Python+Pytest实现压力测试
    这篇“怎么用Python+Pytest实现压力测试”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Python+Pyte...
    99+
    2023-07-05
  • python+playwright+pytest+allure+pom+yaml实现UI自动化测试
    一. 演示项目源码 https://gitee.com/giteetangll/playwright-demo 二、UI自动化分层设计 Auth:登录认证保存后的认证信息 BasePage:封装pl...
    99+
    2023-09-10
    python pytest 开发语言
  • Python测试框架pytest如何使用
    本文小编为大家详细介绍“Python测试框架pytest如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python测试框架pytest如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言pytes...
    99+
    2023-06-30
  • 如何测试测试用例?
    编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天编程网就整理分享《如何测试测试用例?》,文章讲解的...
    99+
    2024-04-05
  • 测试驱动技术系列之怎么用pytest实现测试数据驱动
    本篇内容主要讲解“测试驱动技术系列之怎么用pytest实现测试数据驱动”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“测试驱动技术系列之怎么用pytest实现测试数据驱动”吧!一组参数化数据定义参...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作