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

最低0.47元/天 解锁文章
1910

被折叠的 条评论
为什么被折叠?



