Пример #1
0
class RunTest():
    def __init__(self):
        self.get_data = GetData()
        self.oprea = OperationExcel()
        self.run = RunMethod()

    def go_on_run(self):
        # 先获取总共的行数
        success_count = []
        fail_count = []
        nrows = self.oprea.get_nrows()
        for i in range(1, nrows):
            is_run = self.get_data.get_is_run(i)
            if is_run:
                url = self.get_data.get_url(i)
                method = self.get_data.get_method(i)
                cookie = self.get_data.is_cookie(i)
                data = self.get_data.get_headers_data(i)
                depend_case = self.get_data.get_dependent_id(i)
                expected_result = self.get_data.get_expected_result(i)
                if cookie == "write":
                    # 1、执行用例
                    result = self.run.run_main(url=url,
                                               method=method,
                                               params=data,
                                               data=data)
                    # 2、将结果写入到到user_json_cookie.json文件
                    self.get_data.write_json_cookie(result)
                    result = result.text
                    if verify_str(expected_result, result):
                        self.get_data.write_actual_result(i + 1, 'pass')
                        success_count.append(i)
                    else:
                        self.get_data.write_actual_result(i + 1, 'fail')
                        fail_count.append(i)
                elif cookie == "read":
                    # 1、读取cookie数据,且把cookie传入到header中
                    cookie = self.get_data.read_cookie()
                    if depend_case != '':
                        opera_depent = OperaDependent(depend_case)
                        # 根据依赖数据的字段,返回对应的数据
                        get_depend_data = opera_depent.get_data_for_key(i)
                        # 获取依赖数据所属字段
                        depend_key = self.get_data.get_dependent_field(i)
                        # 将依赖的数据,赋值到依赖数据所属字段
                        data[depend_key] = get_depend_data
                    print('cookie-------->', cookie)
                    result = self.run.run_main(url=url,
                                               method=method,
                                               params=data,
                                               data=data,
                                               headers=cookie).text
                    if verify_str(expected_result, result):
                        self.get_data.write_actual_result(i + 1, 'pass')
                        success_count.append(i)
                    else:
                        self.get_data.write_actual_result(i + 1, 'fail')
                        fail_count.append(i)
        count_case = len(success_count) + len(fail_count)
        sendEmail(count_case, success_count, fail_count)
Пример #2
0
class GetData():
    def __init__(self, file_path=None, sheet_id=None):
        self.oper_excel = OperationExcel()
        self.oper_json = OperationJson(
            os.path.join(os.getcwd(), 'request_data.json'))

    def get_case_id(self, row):
        col = int(ExcelCol.get_id())
        case_id = self.oper_excel.get_cell_value(row, col)
        return case_id

    def get_nrows(self):
        return self.oper_excel.get_nrows()

    def get_is_run(self, row):
        flag = None
        col = int(ExcelCol.get_is_run())
        is_run = self.oper_excel.get_cell_value(row, col)
        if is_run == 'yes':
            flag = True
        else:
            flag = False
        return flag

    def get_url(self, row):
        col = int(ExcelCol.get_url())
        url = self.oper_excel.get_cell_value(row, col)
        return url

    def get_request_data(self, row):
        col = int(ExcelCol.get_request_data())
        json_key = self.oper_excel.get_cell_value(row, col)
        json_value = self.oper_json.get_json_value(json_key)
        return json_value

    def get_request_method(self, row):
        col = int(ExcelCol.get_request_method())
        request_method = self.oper_excel.get_cell_value(row, col)
        return request_method

    def get_header(self, row):
        col = int(ExcelCol.get_header())
        header = self.oper_excel.get_cell_value(row, col)
        if header == None:
            return None
        else:
            return header

    def get_expect(self, row):
        col = int(ExcelCol.get_expect())
        expect = self.oper_excel.get_cell_value(row, col)
        # expect_db = OperationDB(expect)
        return expect

    def get_depend_key(self, row):
        col = int(ExcelCol.get_field_id())
        depend_key = self.oper_excel.get_cell_value(row, col)
        return depend_key

    def get_field_key(self, row):
        col = int(ExcelCol.get_field_data())
        field_key = self.oper_excel.get_cell_value(row, col)
        return field_key

    def get_field_data_id(self, row):
        col = int(ExcelCol.get_field_data_id())
        field_data_id = self.oper_excel.get_cell_value(row, col)
        return field_data_id

    def write_res(self, row, res):
        col = int(ExcelCol.get_result())
        self.oper_excel.write_result(row, col, res)

    def get_expect_by_case(self, row):
        oper_db = OperationDB(self.get_case_id(row))
        expect_db = oper_db.search_one()
        return expect_db

    # 根据依赖case_id获取到要执行的用例id的行号
    def get_depend_line(self, case_id):
        num = 0
        cols_data = self.get_col_datas()
        for col_data in cols_data:
            if case_id in col_data:
                return num
            num += 1
        return num

    def get_row_values(self, row):
        return self.oper_excel.get_row_data(row)

    # 获取某一列的内容
    def get_col_datas(self, col=None):
        col_datas = self.oper_excel.get_col_datas(col)
        return col_datas