MOOC(6)- case之间存在依赖

方法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

  

猜你喜欢

转载自www.cnblogs.com/come202011/p/12305847.html