接口测试之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@ddtclass TestWork(unittest.TestCase): @data(1, 2, 3) def test_01(self, value): print(value)
运行结果会显示每个数据值:
123
2. 读取列表数据
如果需要处理更复杂的数据结构,可以使用@data装饰器传递列表。例如:
from ddt import ddt, data@ddtclass 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@ddtclass 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: 16Name: female, Age: nurser
4. 读取JSON文件数据
为了实现数据源外部化,可以使用@file_data装饰器来读取JSON文件。例如:
from ddt import ddt, file_data@ddtclass 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)是一种强大的自动化测试方法,通过外部数据源参数化测试用例,避免了硬编码数据的局限性。如果你对自动化测试感兴趣,或者需要更多实战经验,欢迎关注我的技术博客,获取更多软件测试相关的学习资料和面试经验分享。
发表评论
最新留言
很好
[***.229.124.182]2026年05月31日 08时06分39秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
PHP反射机制
2023-03-01
php取当天的最后一秒_Docker快速搭建PHP开发环境详细教程
2023-03-01
php取绝对值
2023-03-01
php各种常用的算法
2023-03-01
php各种缓存策略对比
2023-03-01
php后台“爬虫”模拟登录第三方系统
2023-03-01
php后台的在控制器中就可以实现阅读数增加
2023-03-01
php命令行生成项目结构
2023-03-01
php命名空间
2023-03-01
PHP命名空间带来的干扰
2023-03-01
PHP和MySQL Web开发从新手到高手,第1天-搭建PHP开发环境
2023-03-01
php商店管理系统,基于PHP的商店管理系统.doc
2023-03-01
PHP四大主流框架的优缺点总结
2023-03-01
PHP图片处理—PNG透明缩放并生成灰图
2023-03-01
php在liunx系统中设置777权限不起作用解决方法
2023-03-01
PHP基于openssl实现的非对称加密操作
2023-03-01
php基本符号大全
2023-03-01
php基础篇-二维数组排序 array_multisort
2023-03-01
php增删改查封装方法
2023-03-01
php多条件筛选功能的实现
2023-03-01