ddt---数据驱动
ddt---->data driver test 数据驱动测试
ddt用来读取外部引入参数
ddt模块需要下载安装
支持文件:txt,csv,excell等文件
@ddt 装饰在类上面
@data 用来传入数据(传参)
@unpack 数据拆分
@file_data 文件名
数据驱动有三种存储方式:
excell存储,yaml存储,json储存
序列化 dumps 将python对象转成json对象
反序列化 loads 将json对象转成python对象(首字母是小写L)
import xlrddef get_cms_value(fileName,sheetName,apiName): book =xlrd.open_workbook(fileName) #打开文件 sheet =book.sheet_by_name(sheetName) #打开sheet页 # value =sheet.row_values() rows =sheet.nrows #取得所有行数 colvalue =sheet.col_values(0) #取name第一列 print(colvalue) #打印第一列 结果类型是列表 value_list=[] #定义一个空列表 for i in range(1,rows): #从1开始到总行数循环 if colvalue == apiName: #第一列值的第i行 bb =sheet.row_values(i,1,6) #第i行的1到5列值 value_list.append(bb) #取到的值添加到空表 #print(value_list) return value_listget_cms_value('cms_api.xlsx','cmsapi','cms_login')
import requestsimport unittestfrom ddt import ddt,data,unpack #导入数据驱动模块from test12月26.get_value import get_cms_value #导入test12月26包里文件列表取得值import jsonrequests =requests.session()@ddtclass TestCmslgin(unittest.TestCase): @data(*get_cms_value('cms_api.xlsx', 'cmsapi', 'cms_login')) @unpack def test01_login(self, method, url, header, payload, excepts): res = requests.request(method, url, headers=json.loads(header), data=json.loads(payload)) print(res.text) self.assertEqual(excepts, res.text) @data(*get_cms_value('cms_api.xlsx','cmsapi','cms_add_user')) @unpack def test02_login(self,method,url,header,payload,excepts): res =requests.request(method,url,headers=json.loads(header),data=json.loads(payload)) print(res.text) self.assertEqual(excepts,res.text)if __name__ == '__main__': unittest.main()
|
|