方法1:这里只给出根据依赖字段去匹配响应结果中的值的函数,其他匹配依赖case,对依赖case发起请求见下面的方法2
方法2:
from day_20200208_mooc.tools.do_excel_openpyxl_14 import DoExcel from day_20200208_mooc.base.interface_request_class_5 import RunMain class DependData: def __init__(self, case_id, present_case_id, file, sheet): self.case_id = case_id self.present_case_id = present_case_id self.file = file self.sheet = sheet # 根据依赖case_id去获取依赖的case数据 def get_depend_case(self): depend_case = DoExcel().get_data(self.file, self.sheet)[self.case_id-1] return depend_case # 根据依赖的case数据,执行依赖测试 def run_depend_case(self): header = None url = self.get_depend_case()["url"] method = self.get_depend_case()["method"] data = self.get_depend_case()["data"] if self.get_depend_case()["header"]: header = self.get_depend_case()["header"] res = RunMain().run_main(url, method, data, header) return res # 获取当前用例数据,即需要依赖的用例 # present_case_id是当前的caseid,是需要用到依赖case的用例id # present_case_id-1是因为第n条用例在列表中的索引是n-1 def get_present_case(self): present_case = DoExcel.get_data(self.file, self.sheet)[self.present_case_id-1] return present_case # 提取当前case的依赖字段depend_key,去依赖case里匹配结果 # 匹配时需要知道目标值的位置 # 这里假设要匹配的值就是返回的json数据中第一个层级的某个键值, # 如果json数据有多层,根据实际情况修改 def get_depend_case_key(self): depend_key = self.get_present_case()["case_depend_data"] present_case_data = self.run_depend_case().json()[depend_key] return present_case_data # 根据依赖case字段的值对当前case发起请求 def run_present_case(self, present_case_id): header = None url = self.get_present_case()["url"] method = self.get_present_case()["method"] data = self.get_present_case()["depend_data_belong_new_key"] if self.get_depend_case()["header"]: header = self.get_depend_case()["header"] res = RunMain().run_main(url, method, data, header) return res