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

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

时间:2024-01-10 18:00:57浏览次数:28  
标签:Excel pytest operand Pytest 测试 test 测试用例 软件测试

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

前言

数据驱动测试是一种有效的测试方法,可以使用不同的输入数据运行相同的测试用例。结合pytest和Excel表格可以方便地实现数据驱动测试。在这篇文章中,我们将介绍如何使用pytest和Excel实现数据驱动测试。

环境准备

在实现Excel的数据驱动之前,我们首先要安装Python操作excel的第三方库,我们这里使用openpyxl来实现对Excel的操作,安装命令如下:

pip install openpyxl

创建测试文件和Excel文件

首先,创建一个简单的函数需要进行测试:

# code.py

def multiply(a, b):
    return a * b

接着,创建一个Excel文件,用于存储测试数据:

| Test Case | Operand A | Operand B | Expected Result |
|-----------|------------|------------|------------------|
| Case 1    | 2          | 3          | 6                |
| Case 2    | -1         | 5          | -5               |
| Case 3    | 0          | 10         | 0                |

编写测试用例

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

# test_code.py

import pytest
from openpyxl import load_workbook
from code import multiply

def load_test_data():
    workbook = load_workbook('test_data.xlsx')
    sheet = workbook.active
    test_data = []

    for row in sheet.iter_rows(min_row=2, values_only=True):
        test_data.append(row)

    return test_data

@pytest.mark.parametrize("test_case, operand_a, operand_b, expected_result", load_test_data())
def test_multiply(test_case, operand_a, operand_b, expected_result):
    result = multiply(operand_a, operand_b)
    assert result == expected_result, f"测试用例 {test_case} 失败:{operand_a} * {operand_b} 应该得到 {expected_result},实际得到 {result}"

运行测试

我们可以点击pycharm里的文件的小三角来执行测试,也可以运行pytest命令来执行测试:

pytest test_code.py

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

总结

结合pytest和Excel表格,我们成功实现了数据驱动测试,对同一个函数在不同输入下进行了多组测试。这种方法不仅使得测试用例易于维护,而且可以轻松地扩展更多测试数据,确保代码的稳定性和正确性。数据驱动测试的优势在于能够更全面地覆盖不同的边界情况,提高测试的可靠性。


标签:Excel,pytest,operand,Pytest,测试,test,测试用例,软件测试
From: https://blog.51cto.com/u_15640304/9183878

相关文章

  • 软件测试分析报告
    ......
  • 将Map集合中的数据导入到Excel中
    需求:输入两个Map集合,分别将两个Map集合中的key和value对应显示在excel的对应的页面上代码:<!--ApachePOI依赖--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>5.2.4&l......
  • 在excel中打开本地文件或文件夹
    效果演示:A2中输入本地文件或文件夹绝对路径B2中输入公式 =HYPERLINK(A2) 然后回车保存,再次点击B2中的链接会直接打开本地文件夹或文件......
  • sqlserver 查询结果赋值到Excel会出现换行
    SELECTREPLACE(MaterialCode,CHAR(13)+CHAR(10),''),REPLACE(MaterialCode,CHAR(13),''),REPLACE(MaterialCode,CHAR(10),'')FROM#MeetingPlan2023whereisnull(MaterialCode,'')!=''andID=22264 SELECTREP......
  • PageOfficeV6.0提取在线编辑保存的excel单元格数据
    转载:提取单元格数据提取单元格数据查看本示例演示效果本示例关键代码的编写位置Vue+Springboot注意本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。在实际的开发过程中,经常会遇到提取Excel文档中数据保存到数据......
  • 读取excel表格的内容并输出打印
    1、这里用到的是xxx.xlsx的excel表,如果用.xls的旧版excel表可能会报错,需要自己调整代码(简单的测试,取出内容根据业务自行处理)publicstaticvoidmain(String[]args)throwsException{Filefile=newFile("D:\\test001\\qhData.xlsx");FileInputSt......
  • 软件测试/测试开发/全日制|Pytest测试用例调度与运行
    前言Pytest是一个功能强大的Python测试框架,它具有灵活的测试用例调度和运行机制。在本文中,我们将深入了解Pytest是如何收集、选取和运行测试用例的。测试用例的收集在Pytest中,测试用例是通过函数来表示的。为了进行测试,Pytest需要收集这些测试函数。默认情况下,Pytest会在......
  • 软件测试/人工智能/全日制测试开发|利用ChatGPT自动生成自动化测试脚本
    自动化测试是软件测试过程中不可或缺的一部分,它能够提高测试效率,减少测试成本,保障软件质量。然而,编写和维护自动化测试脚本仍然是一个具有挑战性的任务,需要花费大量的时间和精力。学会借助ChatGPT自动生成自动化测试脚本,就可以减少编写自动化脚本的工作量,提高测试效率。如何借助Cha......
  • 软件测试计划
    ......
  • 软件测试/测试开发/全日制 |你知道该如何制定合理的职业规划吗?
    职业规划是每个职场人士都需要认真思考和制定的重要事项。无论你是刚入职场的新人,还是在职业生涯中迈入新的阶段,都需要有清晰的目标和规划,以更好地实现个人职业发展。我们为您提供了一个绝佳的机会参加【职业规划公开课】,让您从中受益匪浅。【职业规划公开课】即将开讲,我们邀请了霍......