数据驱动测试--基于Python

在自动化测试过程中,经常面临测试数据的维护和管理等问题。如对登录进行测试,每次流程都是一样,只是测试数据不一样,这种情况在写测试用例时,需要创建多组不同的测试数据来检查登录功能的正确性。这时,就可以使用数据驱动测试。

DDT

DDT(Data-Driven Tests)数据驱动测试:因测试数据的改变而驱动自动化测试的执行,最终引起测试结果的改变。通过数据驱动测试的方法,每一组输入数据都对应一组测试用例,可以验证多组数据场景

安装DDT

Github地址:DDT

pip install ddt

DDT在自动化测试中的应用

在进行数据驱动测试实战中,需要在测试类上使用@ddt.ddt装饰器,在测试用例上使用@ddt.data装饰器。@ddt.data装饰器可以把参数作为测试数据,参数可以是单个值,列表、元组或字典。对于列表和元组,需要使用@ddt.unpack装饰器吧元组合列表解析成多个参数。

示例

import ddt
import unittest


data = [
    {
   
   "name": "ddt"},
    {
   
   "age": 5},
    {
   
   "address": "know"}
]


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

    def setUp(self):
        print("Test Case Begining........")

    @ddt.data(*data)
    def test_datadrivendata(self, data):
        print("数据驱动测试:", data)

    def tearDown(self):
        print("Test Case Ending...................")


if __name__ == "__main__":
    unittest.main()

执行结果:

Testing started at 下午 17:48 ...
D:\ENV_DIRECTOR\Envs\py3_heima\Scripts\python.exe "F:\Pycharm\PyCharm 2017.3.3\helpers\pycharm\_jb_unittest_runner.py" --path D:/zhenghou/python_learning/test_ddt/test_ddt1.py
Launching unittests with arguments python -m unittest D:/zhenghou/python_learning/test_ddt/test_ddt1.py in D:\zhenghou\python_learning\test_ddt
Test Case Begining........
数据驱动测试: {
   
   'name': 'ddt'}
Test Case Ending...................
Test Case Begining........
数据驱动测试: {
   
   'age': 5}
Test Case Ending...................
Test Case Begining........
数据驱动测试: {
   
   'address': 'know'}
Test Case Ending...................


Ran 3 tests in 0.002s

OK

不使用@ddt.unpack说明是两组测试数据,将data内的每组数据跟别作为参数传入@ddt.data()方法中,从而实现数据驱动测试。
使用@ddt.unpack装饰器解析列表或元组为多组参数。

import ddt
import unittest


data = [
    ["ddt", 5],
    ['robotframework', 4],
    ['unittest', 10]
]


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

    def setUp(self):
        print("Test Case Begining........")

    @ddt.data(*data)
    @ddt.unpack
    def test_datadrivendata(self, username, value):
        print("数据驱动测试--username:", username)
        print("数据驱动测试--value:", value)

    def tearDown(self):<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值