python中什么是数据驱动_在python中进行数据驱动测试

在实际的测试工作中,我们经常需要对多组不同的输入数据,进行同样的测试操作步骤,以验证我们的软件。这种测试,在功能测试中非常耗费人力物力,但是在自动化中,却比较好实现,只要实现了测试操作步骤,然后将多组测试数据以数据驱动的形式注入,就可以实现了,在java中,我们可以用testng测试框架中的DataProvider注解来实现,在python中,我们也可以实现,下面来一起看看。

要实现数据驱动,首先,我们得先实现测试操作步骤。

我们首先实现一个简单的unittest测试用例,该测试用例实现的是一对明星夫妻的输出,比如男:张国立对应女:邓婕。

在PyCharm中创建一个名为testsample的文件,在其中创建一个名为Test_sample的class,并集成unittest.TestCase,并在Test_sample中创建一个名为test的方法:

import unittest

class Test_ddt(unittest.TestCase):

def test(self):

print("############# start #############")

print("男: 张国立 —> 女: 邓婕" )# 通过字典的key获取value

print("############# end #############")

这是一个简单的测试用例,在实际的测试中,我们会输入多组数据对同一个功能进行测试,接下来,我们用数据驱动来实现多组明星夫妻的输出。

201905291.jpg

在unittest中,没有自带的数据驱动,我们得借助ddt来实现,首先,我们得在python运行环境中安装ddt,用下列命令安装

pip install ddt

安装之后,我们在刚刚的代码中进行改写,为了创建数据驱动测试,需要在测试类上使用@ddt装饰符,在测试方法上使用@data装饰符。@data装饰符把参数当作测试数据,参数可以是单个值、列表、元组、字典。

对上面的测试用例进行改写

import ddt

import unittest

data = [{"search": "赵丽颖", "result": "冯绍峰"},

{"search": "张国立", "result": "邓婕"},

{"search": "邓超", "result": "孙俪"}]

@ddt.ddt

class Test_ddt(unittest.TestCase):

@ddt.data(*data)

def test(self, data):# 传参测试数据列表

print("############# start #############")

print("男: %s —> 女: %s" % (data["search"], data["result"]))# 通过字典的key获取value

print("############# end #############")

在unittest中我们得借助ddt来实现数据驱动,但是对于另外一个测试框架pytest,它自带数据驱动实现,是通过@pytest.mark.parametrize(argnames,argvalues) 来实现参数化的。我们首先来实现一个同样的测试用例。

在PyCharm中创建一个名为test_sample的文件,在其中创建一个名为Test_sample的class,并在Test_sample中创建一个名为test的方法:

class Test_ddt():

def test(self):

print("############# start #############")

print("男: 张国立 —> 女: 邓婕" )# 通过字典的key获取value

print("############# end #############")

从上面的步骤可以看出来,pytest中实现测试用例比unittest要简洁很多。在此基础上,我们来实现数据驱动。

修改代码如下

#测试数据构造

import pytest

data = [("张国立", "邓婕"),("邓超","孙俪"),("冯绍峰","赵丽颖"),("绿巨人","黑寡妇")]

#引入数据驱动

@pytest.mark.parametrize('a,b',data)

class Test_ddt():

def test(self, a, b):

print("############# start #############")

print("男: %s —> 女: %s" %(a, b) ) # 通过字典的key获取value

print("############# end #############")

数据驱动是自动化测试中很重要的一种应用,我们不止要会用它,还需要理解它的思维,它可以帮我们做什么。好了,胖友们,我们下次见。

本文由51ste.com网友编辑,未经授权,不得转载使用上述作品盈利;个人转载,需标明作者及出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值