ddt

Posted 断浪狂刀忆年少

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ddt相关的知识,希望对你有一定的参考价值。

DDT(Data Driver Test)数据驱动测试,是由测试数据来驱动测试用例的执行;DDT可以实现用例的重复执行以及代码的重复使用,减少工作量。数据代码分离为主流设计思路,在常见的测试体系中可以使用xml文件、excel文件、json文件来管理测试数据;通过代码自动读取,来驱动用例的执行,ddt测试框架基于这种设计思路上,实现了方便使用,简单易懂的效果。

下载

pip install ddt==1.3.1
pip install -i https://pypi.doubanio.com/simple ddt==1.3.1

在unittest中的应用

import unittest
import ddt
import requests

data_list = [
    {"url": "https://cnodejs.org/api/v1/topics", "method": "get"},
    {"url": "https://cnodejs.org/api/v1/topic/5433d5e4e737cbe96dcef312", "method": "get"},
    {"url": "https://cnodejs.org/api/v1/topic_collect/collect", "method": "post"},
    {"url": "https://cnodejs.org/api/v1/topic_collect/de_collect", "method": "post"},
    {"url": "https://cnodejs.org/api/v1/user/alsotang", "method": "get"},
    {"url": "https://cnodejs.org/api/v1/message/mark_all", "method": "post"},
]


@ddt.ddt
class MyCase(unittest.TestCase):

    def get_response(self, item):
        return requests.request(method=item[\'method\'], url=item[\'url\'])

    @ddt.data(*data_list)
    def test_case_01(self, item):
        response = self.get_response(item)
        self.assertEqual(response.status_code, 200)


if __name__ == \'__main__\':
    unittest.main(verbosity=2)

如上示例,我们从Excel或者其他文本中获取到的数据是data_list类型,那么在做数据驱动的时候,就可以通过如上示例的操作来完成数据驱动测试。

以上是关于ddt的主要内容,如果未能解决你的问题,请参考以下文章

30行代码就能实现ddt模块收藏起来慢慢学

30行代码就能实现ddt模块收藏起来慢慢学

数据驱动ddt

python-ddt模块使用

如何简单的理解TDD与DDT

数据驱动ddt 示例,数据在代码中