首页 > 其他分享 >软件测试/测试开发全日制|Pyest结合json实现数据驱动测试

软件测试/测试开发全日制|Pyest结合json实现数据驱动测试

时间:2024-01-11 19:33:46浏览次数:28  
标签:Pyest test pytest result 测试 operand data 软件测试

软件测试/测试开发全日制|Pyest结合json实现数据驱动测试_数据驱动

前言

数据驱动测试是提高代码覆盖率和可靠性的重要方法。结合pytest和JSON(JavaScript对象表示)文件可以轻松实现数据驱动测试。和CSV文件类似,Python读取json文件也不需要借助其他的第三方库,因此我们不需要进行额外的环境安装。下面是如何使用pytest和JSON文件进行数据驱动测试的步骤。

创建测试文件和JSON文件

假设我们有一个简单的函数需要测试,比如对两个数进行求和:

# code.py

def add(a, b):
    return a + b

接下来,创建一个JSON文件,用于存储测试数据:

[
  {
    "test_case": "Case 1",
    "operand_a": 2,
    "operand_b": 3,
    "expected_result": 5
  },
  {
    "test_case": "Case 2",
    "operand_a": -1,
    "operand_b": 10,
    "expected_result": 9
  },
  {
    "test_case": "Case 3",
    "operand_a": 0,
    "operand_b": 0,
    "expected_result": 0
  }
]

编写测试用例

创建一个pytest测试文件,编写测试用例并读取JSON文件中的数据:

# test_code.py

import json
import pytest
from code import add

def load_test_data():
    with open('test_data.json', 'r') as file:
        test_data = json.load(file)
    return test_data

@pytest.mark.parametrize("data", load_test_data())
def test_add(data):
    operand_a = data['operand_a']
    operand_b = data['operand_b']
    expected_result = data['expected_result']

    result = add(operand_a, operand_b)
    assert result == expected_result, f"{operand_a} + {operand_b} 应该得到 {expected_result},实际得到 {result}"

运行测试

现在,运行pytest命令来执行测试:

pytest test_code.py

pytest将会读取test_code.py文件中的测试用例,并根据JSON文件中提供的数据对add函数进行测试。每个测试用例都会使用JSON文件中的数据进行数据驱动测试。

总结

结合pytest和JSON文件,我们成功实现了数据驱动测试,对同一个函数在不同输入下进行了多组测试。这种方法使得测试用例易于管理和维护,同时能够更全面地覆盖不同的测试场景,确保代码的稳定性和正确性。数据驱动测试的优势在于能够快速扩展测试数据,提高测试的覆盖率和可靠性。

标签:Pyest,test,pytest,result,测试,operand,data,软件测试
From: https://blog.51cto.com/u_15640304/9202235

相关文章

  • 软件测试/测试开发全日制|Pytest测试框架fixture作为参数使用
    前言测试用例参数化的时候,使用pytest.mark.parametrize()参数化传测试数据,如果我们想引用前面不同fixture返回的数据当测试用例的入参。这个时候我们就可以用fixture参数化prams来间接解决这个问题,本文就来给大家介绍一下如何使用fixture来实现参数化。使用案例我们需要在测试......
  • Apipost接口自动化测试如何操作
    Apipost提供可视化的API自动化测试功能,使用Apipost研发人员可以设计、调试接口,测试人员可以基于同一数据源进行测试,Apipost接口自动化功能在上次更新中进行了逻辑调整,带来更好的交互操作、更多的控制器选择,同时新增同步接口模式选择、测试数据选择功能。添加接口使用Apipost,研发......
  • 怎么做UI自动化测试?不会代码也可以?
    UI自动化测试已经成为现代软件开发过程中不可或缺的一部分。它能够提供诸多优势,包括提高测试效率、减少人力成本、提升软件质量等。同时,可视化工具为UI自动化测试带来了更多便利和灵活性。然而,可视化工具也存在一些潜在的劣势。本文将探讨UI自动化测试的必要性以及可视化工具的优势......
  • 工作四年,我学会了用 Idea本地调试线上测试服务器代码
    工作四年,我学会了用Idea本地调试线上测试服务器代码工作四年,我学会了用Idea本地调试线上测试服务器代码......
  • 软件测试/测试开发全日制|Pytest结合CSV实现测试的数据驱动
    前言数据驱动测试是一种有效的测试方法,可以使用不同的输入数据运行相同的测试用例。结合pytest和CSV文件可以方便地实现数据驱动测试,相比于yaml以及Excel,使用CSV实现数据驱动不需要借助其他的第三方库,可以直接使用Python读取数据。在这篇文章中,我们将介绍如何使用pytest和CSV实现数......
  • 可靠性测试的简单介绍
    为了测定、验证或提高产品可靠性而进行的试验称为可靠性试验,它是产品可靠性工作的一个重要环节。2、通常,对产品进行可靠性试验的目的如下:(1)在研制阶段使产品达到预定的可靠性指标。为了使产品能达到预定的可靠性指标,在研制阶段需要对样品进行可靠性试验,以便找出产品在原材料、......
  • Android架构测试 套小记
    Android架构测试主要是为了确保Android应用程序在不同设备和系统版本上的兼容性、性能和稳定性。这需要对应用程序的各个组件进行测试,包括活动、服务、广播接收器、内容提供程序等。以下是进行Android架构测试时可以采取的一些步骤:单元测试:对应用程序的各个组件进行测试,确保它......
  • 渗透测试基本流程
    渗透测试基本流程1.明确目标2.分析风险,获得授权3.信息收集4.漏洞探测(手动&自动)5.漏洞验证6.信息分析7.利用漏洞,获取数据8.信息整理9.形成报告1.明确目标1)确定范围:测试的范围,如:IP、域名、内外网、整站or部分模块;2)确定规则:能渗透到什么程度(发现漏洞为止or继续利用漏洞)、时间限制、能......
  • 干货 | 超详细的渗透测试思维导图
    ......
  • 最新测试,芝麻代理、青果网络、快代理的代理IP哪家好?
    近期,讯代理狗了,想必大家都知道吧?感兴趣的也可以自己看看。历年来,狗了的代理IP服务商不在少数了,从飞蚁、rola、讯代理……这还是做了一定体量,大家略有耳闻的,其他还有更多的小服务商倒下,倒也不是想来说一波创业艰难,我只是心疼打工人的钱和找代理IP的精力。基于行业共识,现在代理IP的头......