• Python 自动化测试:数据驱动


    在实际的测试工作中,通常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件质量。这种测试,在功能测试中非常耗费人力物力,但是在自动化中,却比较好实现,只要实现了测试操作步骤,然后将多组测试数据以数据驱动的形式注入,就可以实现了。

    当数据量非常大的时候,我们可以将数据存放到外部文件中,使用的时候将文件中的数据读取出来,方便测试数据的管理。数据与测试用例分别管理,可以利用外部数据源 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. - 1
    3. - 2
    4. -
    5. - 20
    6. - 30

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

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

    代码分析

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

    运行结果

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

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

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

    最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

    软件测试面试小程序

    被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

    涵盖以下这些面试题板块:

    1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

    6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

      全套资料获取方式:点击下方小卡片自行领取即可

  • 相关阅读:
    小米8 青春版root时无法检测到手机
    原水的分类有哪些?
    【python3】5.正则表达式
    足球小将 NFT 作品集
    centos服务器命令行安装虚拟机并ssh连接
    浅谈余压监控系统在某高层住宅的应用方案
    Mongodb----部署副本集 实现读写分离
    经典快速制作套打证书模板(doc)大全
    蓝桥等考Python组别一级008
    linux(rhel7)内核参数优化
  • 原文地址:https://blog.csdn.net/Xsk215/article/details/133746779