在进行测试的过程中我们需要准备不同的测试数据,就是传入的参数不同而已,这种情况下,没必要挨个写用例脚本。
简单来说就是比如,两个测试函数:
测试不同的用户登录,进入到个人中心,一个有钱包,一个没有钱包。
A:1.输入A账号
2.输入A密码
3.登录
4.个人中心,校验有钱包。
B:1.输入B账号
2.输入B密码
3.登录
4.个人中心,校验没有钱包。
所以数据驱动可以这样描述:我的A、B都是输入数据,但是操作步骤相同,得到的是不同的测试结果。
在python中使用数据驱动,一般是使用ddt:
import unittest
from ddt import ddt,data,unpack
@ddt
class DemoTest(unittest.TestCase):
@data(1,3,4)
def test_num(self,value):
print(value)
self.assertEqual(value,2)
if __name__=='__main__':
unittest.main()
给类声明装饰器@ddt ,给测试方法或函数声明装饰器@data。
@data :用来装饰测试方法或函数,参数是一系列的值。
@unpack :传递的是复杂的数据结构时使用。比如使用元组或列表,添加@unpack之后,ddt会自动把元组或列表对应到多个参数上。字典也可以这样处理。
@file_data : 参数是文件名。文件可以是json或yaml类型。
一个简单的例子:
@data([434,"李立1","金佩泽"],[436,"肖美珍1","周继红"])
@unpack
def test06(self,val1,val2,val3):
res=requests.get("https://apis-falcon-mentor.zaih.com/v1/tags/"+str(val1)+"/mentors?page=1&per_page=2
data=res.json()
#print(data)
self.assertEqual(data[0]["name"],val2)
self.assertEqual(data[1]["name"],val3)
最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】
全套资料获取方式:点击下方小卡片自行领取即可