“ 数据驱动测试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,结果见下图