数据驱动(ddt)
使用需要结合unittest
pip install ddt
使用方法一、
from ddt import ddt,data
@ddt
class A(unittest.TestCase):
@data(参数1,参数2,参数3。。。。。) 说明:参数类型可以为列表,字典,但是每个参数是以逗号分隔;
def test_method(self,value): 说明:value用于接收传入的每个参数
print(value) 说明:打印出来每个参数,即传入的什么打印出来就是什么
说明:
如果传入的数据量比较大的,放到list、字典中,但是取出来的值是具体的每个参数,如果只想取参数值则使用file_data()读取json文件
使用方法二、
注意:默认会把uname算做一条用例,pwd算做一条用例,code算做一条用例,info算做一条用例
如:'test_login_00001_uname', 'test_login_00002_pwd', 'test_login_00003_code', 'test_login_00004_info'
所以参数前最好加上一个参数组序列:'test_login_00001_1'
把测试数据放入到一个json文件中
{
"1":{
"uname":"uname",
"pwd":"pwd",
"code":1,
"info":"正确用户名密码"},
"2":{
"uname":"uname",
"pwd":"pwd",
"code":-1,
"info":"错误用户名"
}
}
@ddt
class logins(unittest.TestCase):
"""询价系统登录相关测试用例"""
@file_data("../data/login_test_login.json")
def test_login(self,uname,pwd,code,info):
"""登录测试"""
url="接口地址"
data={"uname":uname,"pwd":pwd}
总结:使用ddt的好处是,代码只需要写一遍,可以运行出不同请求参数场景的cases;
把请求参数写入到json文件中,通过ddt读取对应参数值,进行传递;