接口测试中有的接口的请求数据要用到别的接口返回数据中的字段即有数据依赖。
处理数据依赖的思路(倒推):
1.请求数据中含有别的接口的返回数据中的字段
2.获取含有依赖数据的请求数据,所以就要获取到依赖数据
3.要获取到依赖数据,就要先执行被依赖的测试用例
4.执行完被依赖用例,得到返回数据,从返回数据中取需要字段,追加到请求数据中
具体实现(仅供参考,有的项目接口依赖很多数据,调用模块时要更复杂):
1 from data import operateExcel 2 from main import requestMethord 3 from data import get_Case 4 from jsonpath_rw import jsonpath,parse 5 import json 6 7 class dataDepend(): 8 def __init__(self,caseID): 9 self.caseID = caseID 10 self.operateExcel = operateExcel.operateExcel() 11 self.case = get_Case.getCaseData() 12 self.runMethord = requestMethord.Methord() 13 14 15 #根据依赖的caseID的行号,获取那一行case的整行数据 16 def getCaseData(self): 17 caseid = self.operateExcel.depRowNum(self.caseID) 18 rowDatas = self.operateExcel.getRowData(caseid) 19 return rowDatas 20 21 #执行被依赖的测试用例,获取被依赖用例的返回结果 22 def runDepend(self): 23 rowNum = self.operateExcel.depRowNum(self.caseID) 24 requestData = self.case.getJsonData(rowNum) 25 header = self.case.getHeader(rowNum) 26 methord = self.case.getRequestMethord(rowNum) 27 url = self.case.getUrl(rowNum) 28 res = self.runMethord.runMethord(methord,url,requestData,header) 29 return json.loads(res.text) 30 31 #根据Excel中提供的key,取Excel中的此key对应的value 32 def getDepData(self,rowNum): 33 depReKey = self.case.getDepReKey(rowNum) 34 resData = self.runDepend() 35 print(resData["data"]) 36 json_exe = parse(depReKey) 37 value = json_exe.find(resData["data"]) 38 return [math.value for math in value]