接口自动化--数据依赖的处理

Posted 卡卡罗纳

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口自动化--数据依赖的处理相关的知识,希望对你有一定的参考价值。

接口测试中有的接口的请求数据要用到别的接口返回数据中的字段即有数据依赖。

处理数据依赖的思路(倒推):

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]

 

以上是关于接口自动化--数据依赖的处理的主要内容,如果未能解决你的问题,请参考以下文章

ApiPost自动化测试基础之:接口参数依赖的情景处理

基于代码驱动:处理有依赖关系接口

python自动化测试怎么将多个依赖数据

Python接口自动化之动态数据处理

接口自动化使用setUp解决数据依赖问题

Android 片段和依赖注入