接口测试之DDT,纯代码实战,学起来
发布日期:2021-04-30 21:09:44 浏览次数:93 分类:精选文章

本文共 1583 字,大约阅读时间需要 5 分钟。

数据驱动测试(DDT)入门与实践

数据驱动测试(DDT)是一种自动化测试的方法,简单来说,就是通过改变输入数据来驱动测试用例的执行,从而导致测试结果的变化。这种方法通过使用外部数据源来参数化输入、输出和期望值,使得测试代码不再依赖硬编码的数据,从而提高测试的灵活性和可维护性。

安装DDT模块

首先,我们需要安装DDT模块。通过以下命令可以完成安装:

pip install ddt

DDT支持四种主要的数据参数化方式:

数据参数化方式

1. 读取元组数据

使用@ddt装饰器,可以将元组数据传递到测试方法中。例如:

from ddt import ddt, data
@ddt
class TestWork(unittest.TestCase):
@data(1, 2, 3)
def test_01(self, value):
print(value)

运行结果会显示每个数据值:

1
2
3

2. 读取列表数据

如果需要处理更复杂的数据结构,可以使用@data装饰器传递列表。例如:

from ddt import ddt, data
@ddt
class TestWork(unittest.TestCase):
@data([
{'name': 'lili', 'age': 12},
{'sex': 'male', 'job': 'teacher'}
])
def test_01(self, a):
print(a)

运行结果会显示包含两个字典的列表:

[{'name': 'lili', 'age': 12}, {'sex': 'male', 'job': 'teacher'}]

3. 读取字典数据

字典数据的处理需要注意键和参数名称的对应关系。例如:

from ddt import ddt, data
@ddt
class TestWork(unittest.TestCase):
@data({
'name': 'lili',
'age': '16',
'sex': 'female'
})
def test_01(self, name, age):
print(f"Name: {name}, Age: {age}")

运行结果会显示每个字典的值:

Name: lili, Age: 16
Name: female, Age: nurser

4. 读取JSON文件数据

为了实现数据源外部化,可以使用@file_data装饰器来读取JSON文件。例如:

from ddt import ddt, file_data
@ddt
class InterfaceTest(unittest.TestCase):
def setUp(self):
self.url = "http://httpbin.org/get"
@file_data("data_json.json")
def test_get_request(self, key, status_code):
r = requests.get(self.url, params={'key': key})
self.assertEqual(r.status_code, status_code)

总结

数据驱动测试(DDT)是一种强大的自动化测试方法,通过外部数据源参数化测试用例,避免了硬编码数据的局限性。如果你对自动化测试感兴趣,或者需要更多实战经验,欢迎关注我的技术博客,获取更多软件测试相关的学习资料和面试经验分享。

上一篇:为何同为35岁,你无理由被迫辞职,他却依然可以“横行职场”
下一篇:作为计算机女生,你是否在开发和测试职位之间徘徊不定

发表评论

最新留言

很好
[***.229.124.182]2026年05月31日 08时06分39秒