zoukankan      html  css  js  c++  java
  • 接口自动化(四)--数据依赖的处理

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

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

    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]
  • 相关阅读:
    Centos下一个server安装的版本号mysql
    android 玩愤怒的小鸟等游戏的时候全屏TP失败
    6.8 一般处理语言
    [AC自己主动机+可能性dp] hdu 3689 Infinite monkey theorem
    POJ1185:火炮(减少国家)
    教你如何下载音乐的网站只试镜
    实现js呼叫流行
    [Angular 2] Async Http
    [Typescript] Function defination
    [React] React Router: setRouteWillLeaveHook
  • 原文地址:https://www.cnblogs.com/kakaln/p/8401738.html
Copyright © 2011-2022 走看看