一、数据驱动的概念

相同测测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离,这样的测试脚本设计模式成为数据驱动。测试框架使用unittest 和ddt模块相结合的方式

二、unittest测试框架如下

#coding:utf-8
import unittest
class DoubanTest(unittest.TestCase):
    #测试用例初始化
    def setUp(self):
        pass
    #定义具体的测试方法
    def test_add(self,testdata1,testdata2,testdate3,exceptdata):
        sum=0
        sum=testdata1+testdata2+testdate3
        self.assertEqual(sum,exceptdata)
    #测试用例执行完成后对资源进行释放
    def tearDown(self):
        pass
if __name__ =='__main__':
    unittest.main()

三、引入ddt框架,实现数据驱动

引入ddt框架需要从官网下载ddt模块(官网下载地址:https://pypi.python.org/pypi/ddt#downloads)。

引入ddt框架,测试代码如下:

#coding:utf-8
import ddt
import unittest
@ddt.ddt
class DoubanTest(unittest.TestCase):
    def setUp(self):
        pass
    def tearDown(self):
        pass
    @ddt.data([1,2,3,6],[2,3,4,5],[1,2,2,5])
    @ddt.unpack
    def test_add(self,testdata1,testdata2,testdate3,exceptdata):
        sum=0
        sum=testdata1+testdata2+testdate3
        self.assertEqual(sum,exceptdata)
if __name__ =='__main__':
    unittest.main()

首先在头部导入ddt模块(import ddt)。其次在测试类前声明使用ddt(@ddt.ddt)。第三步在测试方法前使用@ddt.data()添加测试数据,多组测试数据以逗号隔开如@ddt.data(1,2,3),每组数据中的数据与测试方法中定义的形参个数及顺序一一对应。最后使用@ddt.unpack进行修饰,也是测试过程中将测试数据传给测试方法中的形参。本例子@ddt.data共有三组测试数据,测试用例会被执行三次。每组测试数据有4条数数据,如第一组数据[1,2,3,6],一一传给测试方法test_add方法中的形参testdata1,testdata2,testdate3,exceptdata。

本例子测试执行结果如下:

Ran 3 tests in 0.000s

FAILED (failures=1)

05-18 04:41