示例#1
0
class DependentData:

    def __init__(self, case_id, sheet_id):
        self.sheet_id = sheet_id
        self.case_id = case_id
        self.opera_excel = OperationExcel(self.sheet_id)
        self.data = GetData(self.sheet_id)

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

    # 执行依赖测试,获取结果
    def run_dependent(self):
        run_method = RunMethod()
        row_num = self.opera_excel.get_row_num(self.case_id)
        request_data = self.data.get_data_for_json(row_num)
        header = self.data.is_header(row_num)
        method = self.data.get_request_method(row_num)
        url = self.data.get_request_url(row_num)
        res = run_method.run_main(method, url, request_data, header)
        return res

    # 根据依赖的key去获取执行依赖测试case的响应,然后返回
    def get_data_for_key(self, row):
        depend_data = self.data.get_depend_key(row)
        response_data = self.run_dependent()
        json_exe = parse(depend_data)
        madle = json_exe.find(response_data)
        return [math.value for math in madle][0]
示例#2
0
class dependentData:
    def __init__(self, case_id):
        self.case_id = case_id
        self.opera_excel = OperationExcel()
        self.data = GetData()

    #通过case id获取改id的整行数据
    def get_case_line_data(self):
        rows_data = self.opera_excel.get_row_data(self.case_id)
        # print(rows_data)
        return rows_data

    #执行依赖测试,获取结果
    def run_dependent(self):
        run_method = runMain()
        row_num = self.opera_excel.get_row_num(self.case_id)
        request_data = self.data.get_data_for_json(row_num)
        header = self.data.is_header(row_num)
        method = self.data.get_request_method(row_num)
        url = self.data.get_request_url(row_num)
        res = run_method.run_main(url, method, request_data, header)
        return json.loads(res)

    #根据依赖key去获取执行依赖测试case的响应数据
    def get_data_for_key(self, row):
        depend_data = self.data.get_depend_key(row)
        response_data = self.run_dependent()
        json_exe = parse(depend_data)
        madle = json_exe.find(response_data)
        return [math.value for math in madle][0]
示例#3
0
class RunTest:
    def __init__(self, sheet_id):
        self.sheet_id = sheet_id
        self.run_method = RunMethod()
        # 传递 sheet_id
        self.data = GetData(self.sheet_id)
        self.com_util = CommonUtil()
        '''
        # 获取excel行数,也就是case条数
        self.rows_count = self.data.get_case_lines()
        '''

    # 程序执行的
    def go_on_run(self, i):
        pass_count = []
        fail_count = []

        # 改成手动单个单个去执行每行
        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)
            header = self.data.is_header(i)
            request_data = self.data.get_data_for_json(i)  # 通过关键字调用
            #
            # request_data = self.data.get_request_data(i)
            expect = self.data.get_expect_data(i)
            # expect = self.data.get_expcet_data_for_sql(i)
            # 获取依赖case_id
            depend_case = self.data.is_depend(i)

            if depend_case != None:
                # 传case_id的值
                self.depend_data = DependentData(depend_case, self.sheet_id)
                # 获取的依赖响应数据
                depend_response_data = self.depend_data.get_data_for_key(i)
                # 获取依赖的key字段
                depend_key = self.data.get_depend_field(i)
                request_data[depend_key] = depend_response_data

            res = self.run_method.run_main(method, url, request_data, header)
            # 转str类型打印
            jres = json.dumps(res,
                              ensure_ascii=False,
                              sort_keys=True,
                              indent=2)

            if self.com_util.is_contain(expect, jres):
                self.data.write_result(i, 'PASS')
                pass_count.append(i)

            else:
                self.data.write_result(i, jres)
                fail_count.append(i)

            return expect, jres
        return str(self.sheet_id), str(self.sheet_id)
示例#4
0
class runTest():
    def __init__(self):
        self.runMain = runMain()
        self.data = GetData()
        self.com_util = commonUtil()
        self.send_mail = sendEmail()

    #程序主入口
    def go_on_run(self):
        res = None
        pass_count = []
        fail_count = []
        rows_count = self.data.get_case_lines()
        for i in range(1, rows_count):
            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)
                request_data = self.data.get_data_for_json(i)
                header = self.data.is_header(i)
                depend_case = self.data.is_depend(i)
                expect = self.data.get_expect_for_mysql(i)
                if depend_case != None:
                    self.depend_data = dependentData(depend_case)
                    #获取的依赖响应数据
                    depend_response_data = self.depend_data.get_data_for_key(i)
                    #获取依赖的key
                    depend_key = self.data.get_depend_field(i)
                    # print(depend_key)
                    request_data[depend_key] = depend_response_data
                if header == 'write':
                    res = self.runMain.run_main(url, method, request_data)
                    op_header = operationHeader()
                    op_header.write_cookie()

                elif header == 'yes':
                    op_json = OperationJson(
                        'C:/Users/Administrator/Desktop/interfaceTest/Dataconflg/cooke.json'
                    )
                    cookie = op_json.get_data('apsid')
                    cookies = {'apsid': cookie}
                    res = self.runMain.run_main(url, method, request_data,
                                                cookies)
                else:
                    res = self.runMain.run_main(url, method, request_data)

                if self.com_util.is_contain(expect, res):
                    self.data.write_result(i, 'pass')
                    pass_count.append(i)
                    # print("测试通过")
                else:
                    self.data.write_result(i, res)
                    fail_count.append(i)
                    # print("测试失败")
                # print(res + '\n'*2)
        self.send_mail.send_main(pass_count, fail_count)