Example #1
0
class DependdentData:
    def __init__(self, case_id):
        self.case_id = case_id
        self.data = GetData()
        self.opera_excel = OpenrationExcel()
        # 获取casr_id去获取该casr——id正航数据
    def get_case_line_data(self):
        rows_data = self.opera_excel.get_rows_data(self.case_id)
        return rows_data  #返回依赖接口的所属行

    def run_depemdent(self):
        run_menthon = RunMethod()
        row_num = self.opera_excel.get_row_num(self.case_id)  #执行数据依赖的行数获取结果
        data = self.data.get_data_for_json(row_num)
        request_data = json.dumps(data)
        header = self.data.is_headel(row_num)
        method = self.data.get_request_method(row_num)
        url = self.data.get_request_url(row_num)
        res = run_menthon.run_main(method, url, request_data,
                                   header)  #传入所需行的请求数据
        return json.loads(res)  #返回所需行的接口返回数据

    def get_data_for_key(self, row):
        depend_data = self.data.get_depend_key(row)  #获取依赖上个接口的字段
        response_data = self.run_depemdent()  #获取依赖接口返回的数据
        json_exe = parse(depend_data)
        madle = json_exe.find(response_data)
        return [math.value for math in madle][0]  #数据依赖的具体数据
Example #2
0
class DependdentData:
    def __init__(self, case_id):
        self.case_id = case_id
        self.opera_excel = OpenrationExcel()
        self.data = GetData()

    # 通过case_id去获取该case_id的整行数据
    def get_case_line_data(self):
        rows_data = self.opera_excel.get_rows_data(self.case_id)
        return rows_data

    # 返回依赖数据的data
    def run_dependent(self):
        # 获取依赖id所在的行
        row_num = self.opera_excel.get_row_num(self.case_id)
        # 获取依赖id的接口返回数据
        res = self.data.get_api_return_data(row_num)
        return json.loads(res)

    # 根据依赖的key去获取执行依赖测试case的响应,然后返回
    def get_data_for_key(self, row,new_data):
        """
        :param row: 传入行
        :param new_data:传入要修改的数据
        :return:
        """
        # 获取接受的字段
        if new_data !='':
            data_new=json.loads(new_data)
            depend_key = self.data.get_data_depend_new(row)
            depend_key_new = depend_key.split(';')
            if depend_key != '':
                for key in range(len(depend_key_new)):
                    # 获取数据依赖字段
                    depend_data = self.data.get_field_depend(row)
                    depend_data_new = depend_data.split(';')
                    # 获取依赖数据
                    response_data = self.run_dependent()
                    # 获取依赖字段
                    json_exe = parse(depend_data_new[key])
                    madle = json_exe.find(response_data)
                    new_data = [math.value for math in madle][0]
                    data_new[depend_key_new[key]] = new_data
                return json.dumps(data_new)
            else:
                return json.dumps(data_new)
        else:
            return None
Example #3
0
 def __init__(self):
     self.run_method=RunMethod()
     self.data=GetData()
     self.com_util=CommonUtil()
Example #4
0
class RunTest:
    def __init__(self):
        self.run_method=RunMethod()
        self.data=GetData()
        self.com_util=CommonUtil()
    # 程序执行流程
    def go_on_run(self):
        res=None
        # 获取所有行
        roes_count=self.data.get_case_lines()
        # 跳过1在行里循环
        for i in range(1,3):
            is_run = self.data.get_is_run(i)
            if is_run:#执行
                url=self.data.get_request_url(i)#接口地址
                method=self.data.get_request_method(i)#请求方式
                aaa=self.data.get_data_for_json(i)#请求数据
                data=json.dumps(aaa)
                expect=self.data.get_expcet_data(i)#预期结果
                header=self.data.is_headel(i)#获取header
                depend_case=self.data.is_depend(i)#获取是否有数据依赖
                if depend_case !=None:#判断数据依赖不是空
                    self.depend_data=DependdentData(depend_case)#实列化depend_data
                    depend_response_data=self.depend_data.get_data_for_key(i)#获取依赖返回data
                    # 获取依赖的key
                    depend_key=self.data.get_depend_field(i)#获取数据依赖字段
                    aaa[depend_key]=depend_response_data
                    print(aaa)
                res=self.run_method
                if is_run:#判断是否执行
                    res=self.run_method.run_main(method,url,data,header)
                    if self.com_util.is_contain(expect,res):#判断预期结果
                        self.data.write_result(i,"测试通过")
                    else:
                        self.data.write_result(i,"测试失败")
                print(res)
Example #5
0
 def __init__(self, case_id):
     self.case_id = case_id
     self.data = GetData()
     self.opera_excel = OpenrationExcel()
Example #6
0
class RunTest:
    def __init__(self):
        self.run_method = RunMethod()
        self.data = GetData()
        self.com_util = CommonUtil()
        self.send_mai = SendEmail()

    # 程序执行流程
    def go_on_run(self):
        res = None
        pass_count = []
        fail_count = []
        # 获取所有行
        roes_count = self.data.get_case_lines()
        # 跳过1在行里循环
        for i in range(1, roes_count):
            is_run = self.data.get_is_run(i)
            if is_run:  #执行
                urls = self.data.get_url(i)  #接口地址
                url = host_api + urls
                method = self.data.git_method_way(i)  #请求方
                former = self.data.get_api_data(i)  #请求数据
                expect = self.data.get_expcet_data(i)  #预期结果
                header = operation_header.gain_herder()  #获取header
                depend_case = self.data.is_depend(i)  #获取是否有数据依赖
                if depend_case != None:  #判断数据依赖不是空
                    self.depend_data = DependdentData(
                        depend_case)  #实列化depend_data
                    data = self.depend_data.get_data_for_key(
                        i, former)  #获取依赖返回data
                    print(type(data), i)
                res = self.run_method
                if is_run:  #判断是否执行
                    if method != 'Post' and data != None:
                        datas = eval(data)
                    else:
                        datas = data
                    res = self.run_method.run_main(method, url, datas, header)
                    self.data.write_api_return_data(i, res)
                    if self.com_util.is_contain(expect, res):  #判断预期结果
                        self.data.write_resuit(i, "测试通过")
                        pass_count.append(i)
                    else:
                        self.data.write_resuit(i, "测试失败")
                        fail_count.append(i)
        self.send_mai.send_main(pass_count, fail_count)