Python 自动化测试(四):数据驱动

本周测试公开课《Pytest 自动化测试最佳实践:实用特性与进阶技巧》,文末加群!
在实际的测试工作中,通常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件质量。这种测试,在功能测试中非常耗费人力物力,但是在自动化中,却比较好实现,只要实现了测试操作步骤,然后将多组测试数据以数据驱动的形式注入,就可以实现了。


前面文章学习了参数化
,当数据量非常大的时候,我们可以将数据存放到外部文件中,使用的时候将文件中的数据读取出来,方便测试数据的管理。数据与测试用例分别管理,可以利用外部数据源
YAML、JSON、Excel、CSV 管理测试数据。

pytest 结合 YAML

YAML 是一种容易阅读、适合表示程序语言的数据结构、可用于不同程序间交换数据、丰富的表达能力和可扩展性、易于使用的语言。通过缩进或符号来表示数据类型。

pyyaml 模块在 Python 中用于处理 YAML 格式数据,主要使用 yaml.safe_dump()yaml.safe_load()
函数将 Python 值和 YAML 格式数据相互转换。工作中常常使用 YAML 格式的文件存储测试数据。

安装

        pip install PyYAML  

案例
创建用例文件以及数据文件来完成数据驱动的测试案例,创建一个文件夹 testdata,在这个文件夹下创建 data.yml
test_yaml.py 文件。

创建 data.yml 文件:

        -  
        -       - 1  
        -       - 2  
        -     -  
        -       - 20  
        -       - 30  
        -     

创建“test_yaml.py”,代码如下:

        import pytest  
            import yaml  
                  
                      @pytest.mark.parametrize("a,b", yaml.safe_load(open("datas.yml",\  
                          encoding='utf-8')))  
                              def test_foo(a,b):  
                                      print(f"a + b = {a + b}")  

代码分析
yaml 文件里定义了列表数据,通过 open() 方法获取 data.yml 文件对象,使用 yaml.safe_load()
加载这个文件对象,将 YAML 格式文件转换为 Python 值,分别传到到用例中生成多条用例分别执行。

运行结果

        省略...  
            test_params.py::test_foo[1-2]   
                test_params.py::test_foo[20-30]   
                    省略...  

运行结果中 [1-2][20-30] 代码传入的两组参数,分别传入 test_foo() 用例方法中执行,并且分别生成两条测试结果。

以上,pytest 组合 YAML 实现数据驱动,YAML 文件作为用例数据源,控制测试用例的执行,使测试用例数据维护更加方便快捷。

【相关阅读】


**活动推荐
**

本周四晚 8 点,霍格沃兹测试学院邀请到资深测试技术专家 方程老师分享 《Pytest 自动化测试最佳实践》
主题公开课,通过动手实战,快速掌握 Pytest 进阶技能。

戳“阅读原文”,提升自己的核心竞争力吧!

来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力
QQ交流群:484590337
公众号 TestingStudio
更多内容欢迎访问 https://ceshiren.com
测试人社区
视频资料领取:https://qrcode.testing-studio.com/f?from=CSDN&url=https://ceshiren.com/t/topic/15844
点击查看更多信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,你可以使用不同的库来进行Excel数据驱动自动化测试。一些常用的库包括xlsxwriter、openpyxl、pandas和xlwings等。这些库提供了各种功能,使你可以读取、写入和操作Excel文件。 对于数据驱动的测试,你可以使用pandas库来读取Excel文件中的数据。使用`pd.read_excel`函数可以读取Excel文件,并指定需要读取的工作表和标题行。下面是一个示例代码片段: ```python import pandas as pd # 读取Excel文件 filename = 'path/to/your/excel/file.xlsx' df = pd.read_excel(filename, sheet_name='sheet_name', header=0) # 打印数据 print(df) ``` 上面的代码会将Excel文件中指定工作表的数据读取到一个DataFrame对象中,并打印出来。 除了使用pandas库,你还可以使用openpyxl库来读取Excel文件中的数据。下面是一个示例代码片段,展示了如何使用openpyxl库读取Excel文件中的内容: ```python import openpyxl # 加载Excel文件 filename = 'path/to/your/excel/file.xlsx' wb = openpyxl.load_workbook(filename) # 获取工作表 ws = wb.active # 读取所有内容 for row in ws.iter_rows(): for cell in row: print(cell.value, end='\t') print() ``` 上面的代码会一行一行地读取Excel文件中的内容,并将其打印出来。你可以根据需要进行进一步的处理。 希望这些信息对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python自动化必备技能:数据驱动测试](https://blog.csdn.net/IT_LanTian/article/details/127695089)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值