Unittest自动化测试框架教程(四)——Python中的数据驱动测试DDT

 “ 数据驱动测试DDT(Data Drivern test),是自动化测试领域优势中亮眼的闪光点,在unittest测试框架中对数据驱动更是提供了强大的支持,文章通过基础概念的引入,介绍了数据驱动的概念,并且通过实例介绍了Python中使用数据驱动txt文件、json文件、yaml文件的测试方法。”

PS:“ 测试老手可根据需要自由获取所需内容,其余的建议从头阅读。”

  • 博主每篇文章的注释都是干货!每个代码段都有详细注释,一定要认真看注释!!!
  • 重要的事情说三遍:一定要看注释!!!一定要看注释!!!一定要看注释!!!

 前情提要

  • 此前博主的系列专栏Unittest自动化测试框架教程详细介绍了测试用例的基本框架、测试夹具的使用以及测试用例的跳过教学,在熟悉测试用例基本框架的基础上,本文开始讲解何为数据驱动测试,以前几种常见格式的数据驱动测试方法

 数据驱动测试的基本概念、引读

  引读、基本概念

  • 当我们进行测试时遇到执行步骤相同,只需要改变入口参数的测试时,使用DDT可以简化代码
  • 一定要认真看注释!!!
# 示例:
# 首先,我们观察这三个测试用例,我们会发现,三个测试用例除了入口参数需要变化,
# 其测试执行语句都是相同的,因此,为了简化测试代码,我们可以使用数据驱动测试的理论将三个方法写作一个方法

# 未使用数据驱动测试的代码:
class BasicTestCase(unittest.TestCase):
    def test1(self, num1):
        num = num1 + 1
        print('number:', num)

    def test2(self, num2):
        num = num2 + 1
        print('number:', num)

    def test3(self, num3):
        num = num3 + 1
        print('number:', num)

# 使用数据驱动测试的代码,执行效果与上文代码相同此处只需要了解大概框架,详细步骤下文会解释
@ddt
class BasicTestCase(unittest.TestCase):
    @data('666', '777', '888')    
    def test(self, num):     
        print('数据驱动的number:', num)
  • 相信到这里读者对数据驱动已经有了一定了解
  • 接下来我们开始进入DDT的学习

  单一参数的数据驱动测试

  • 步骤:导包——设置@ddt装饰器——写入参数——形参传递——调用
  • 一定要认真看注释!!!
# 单一参数的数据驱动

# 前置步骤:
# 使用语句import unittest导入测试框架
# 使用语句from ddt import ddt, data导入单一参数的数据驱动需要的包

# 示例会执行三次test,参数分别为'666','777','888'

@ddt    # 设置@ddt装饰器
class BasicTestCase(unittest.TestCase):
    @data('666', '777', '888')    # 设置@data装饰器,并将传入参数写进括号
    def test(self, num):     # test入口设置形参
        print('数据驱动的number:', num)
# 程序会执行三次测试,入口参数分别为666、777、888,结果见下图

Python UI自动化框架是一种使用Python编写的测试框架,主要用于实现Web UI自动化测试。该框架采用了Pythonunittest库作为基础,并结合了PO模式和数据驱动的思想。通过使用Selenium来实现对Web界面的自动化操作,使用Request库来实现接口的自动化测试。此外,该框架还可以扩展到移动终端的自动化测试。\[1\] 该框架的目录结构示例可以参考\[2\],它可以帮助团队快速构建自动化测试框架,提高测试效率和质量。 Python是一种容易掌握的语言,且拥有丰富的库,因此大多数自动化测试框架选择使用Python来实现。对于UI自动化测试,常用的驱动工具是Selenium,而对于接口自动化测试,可以使用Python的Request库。数据驱动方面,由于unittest库没有直接可用的dataprovider,可以使用ddt库来实现。至于手机自动化测试,该框架暂未实现,但可以考虑使用Appium来实现。测试数据方面,可以使用Excel进行管理,对于大型系统,建议直接使用数据库进行管理。总的来说,这个框架并没有引入新的思想或技术,只是将一些常用的技术按照一定的思路组织起来并驱动起来。\[3\] 综上所述,Python UI自动化框架是一个基于Pythonunittest的框架,通过使用Selenium和Request等工具来实现Web UI自动化和接口自动化测试。它的设计思路是将常用的技术组织起来,以提高测试效率和质量。 #### 引用[.reference_title] - *1* *3* [从零搭建完整python自动化测试框架(UI自动化和接口自动化 )——持续更新](https://blog.csdn.net/sunjice/article/details/114790746)[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^v91^insertT0,239^v12^insert_chatgpt"}} ] [.reference_item] - *2* [Python Selenium搭建UI自动化测试框架](https://blog.csdn.net/WsXOM853BD45Fm92B0L/article/details/130376805)[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^v91^insertT0,239^v12^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是羽十八ya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值