前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软件测试/测试开发全日制|Pyest结合json实现数据驱动测试

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

原创
作者头像
霍格沃兹测试开发Muller老师
发布2024-01-12 15:30:31
1490
发布2024-01-12 15:30:31
举报
文章被收录于专栏:muller的测试分享

前言

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

创建测试文件和JSON文件

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

代码语言:python
代码运行次数:0
复制
# code.py

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

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

代码语言:python
代码运行次数:0
复制
[
  {
    "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文件中的数据:

代码语言:python
代码运行次数:0
复制
# 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命令来执行测试:

代码语言:python
代码运行次数:0
复制
pytest test_code.py

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

总结

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 创建测试文件和JSON文件
  • 编写测试用例
  • 运行测试
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档