Exemple #1
0
 def __init__(self):
     self.run_method = RunMethod()
     self.get_data = Get_Data()
     self.compare = Is_Contain()
     self.save_res = Save_Resp()
     # self.depend_data = Dependent_Data()
     self.resp_data = {}
class DependdentData():
    def __init__(self, case_id):
        self.case_id = case_id
        self.opera_excel = Operation_Excel()
        self.data = Get_Data()

    def get_case_line_data(self):
        rows_data = self.opera_excel.get_row_data(self.case_id)
        return rows_data

    def run_dependdent(self):
        run_method = Run_Request()
        row_num = self.opera_excel.get_row_num(self.case_id)
        request_data = self.data.read_data_for_json(row_num)
        # header = self.data.is_header(row_num)
        method = self.data.get_request_method(row_num)
        url = self.data.get_url(row_num)
        res = run_method.run_type(method, url, request_data)
        return json.loads(res)

    def get_data_for_key(self, row):
        depend_data = self.data.get_depend_key(row)
        response_data = self.run_dependdent()
        json_exe = parse(depend_data)
        madle = json_exe.find(response_data)
        return [math.value for math in madle]
Exemple #3
0
 def __init__(self):
     self.data=Get_Data()
     self.run_request=Run_Request()
     self.com_util = CommonUtil()
     self.send_email=Send_Email()
     self.user_log=User_Log()
     self.open_logging=self.user_log.get_log()
Exemple #4
0
class Run_Main():
    def __init__(self):
        self.data=Get_Data()
        self.run_request=Run_Request()
        self.com_util = CommonUtil()
        self.send_email=Send_Email()
        self.user_log=User_Log()
        self.open_logging=self.user_log.get_log()

    def go_on_run(self):
        error_num=1
        passlist=[]
        faillist=[]
        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 == True:
                while error_num <= Config_Try_Num:
                    url = self.data.get_url(i)
                    method = self.data.get_request_method(i)
                    data = self.data.read_data_for_json(i)
                    expect = self.data.get_expect_data(i)
                    depend_case = self.data.is_depend(i)
                    if depend_case != None:
                        self.depend_data = DependdentData(depend_case)
                        depend_response_data = self.depend_data.get_data_for_key(i)
                        depend_key = self.data.get_depend_field(i)
                        data[depend_key] = depend_response_data

                    res = self.run_request.run_type(method, url, data)
Exemple #5
0
class Dependent_Data(object):

    def __init__(self, case_id):
        self.case_id = case_id
        self.opera_excel = Operation_Excel()
        self.get_data = Get_Data()
        self.log = Log()
        self.row_index = self.opera_excel.get_index_caseId(self.case_id)


    # 根据传入的case_id 获取该行数据
    def get_case_line_data(self):
        row_data = self.opera_excel.get_rowData_caseId(self.case_id)
        return row_data

    # 执行依赖数据, 获取结果
    def run_method(self):
        run_method = RunMethod()
        request_data = self.get_data.get_data_for_json(self.row_index)
        method = self.get_data.get_request_method(self.row_index)
        url = self.get_data.get_url(self.row_index)
        header = self.get_data.is_header(self.row_index)
        res = run_method.run_main(method, url, request_data, header)
        logger.info(f"request_data is {request_data}, index is {self.row_index}, resp is {res}")
        return res


    # 根据依赖的key去获取执行依赖测试case的响应,然后返回对应的值
    def get_resp_caseResult(self, data, row):
        # 得到该case的依赖表达式
        depend_expr = self.get_data.get_depend_expr(row)
        logger.info(f"expr === {depend_expr}, type === {type(depend_expr)}")
        # 查询到依赖数据所依赖的字段
        data_key = self.get_data.get_depend_dataName(row)
        logger.info(f"expr_data_key is {data_key}")
        # 根据依赖表达式获取响应的结果
        # data_value = jsonpath.jsonpath(json.loads(self.run_method()), depend_expr)[0]
        data_value = Save_Resp.expr_data(data, depend_expr)
        logger.info(f"expr_data_value is {data_value}")
        return data_key, data_value
    #
    def test_1(self):
        depend_expr = self.get_data.get_depend_expr(2)
        res = '{"mobile":"18844077709"}'
        data_key = self.get_data.get_depend_dataName(2)
        data_value = jsonpath.jsonpath(json.loads(res), depend_expr)[0]
        return data_value
Exemple #6
0
from utils.driverUtil import DriverUtil


# driver = None
@pytest.fixture(scope="session", autouse=True)
def driver():
    """所有用例执行前、后执行"""
    log.create_log()
    # driver = DriverUtil.get_web_driver(wait=0)
    driver = DriverUtil.get_app_driver()
    yield driver
    DriverUtil.quit_driver()

@pytest.fixture(scope="class")
def login_class(driver):
    """登陆测试_类"""
    driver.get("http://ttmp.research.itcast.cn/#/login")

@pytest.fixture(scope="function", params=Get_Data.get_data_json("login.json", direction=0))
def login(request):
    """登陆测试_方法"""
    yield request.param

@pytest.fixture(scope="function", params=Get_Data.get_data_json("app_login.json", direction=1))
def app_login(request):
    """登陆测试_方法"""
    yield request.param



Exemple #7
0
 def __init__(self):
     self.run_method = Request_method()
     self.getData = Get_Data()
     self.compare = Compare()
Exemple #8
0
class RunTest():
    def __init__(self):
        self.run_method = Request_method()
        self.getData = Get_Data()
        self.compare = Compare()
    #执行程序
    def run_test(self,filename):
        case_count = self.getData.get_excel_lines()
        for i in range(1,case_count):
            url = self.getData.get_request_url(i)
            method = self.getData.get_method(i)
            data = self.getData.get_data_for_json(filename)
            header = json.loads(self.getData.get_header(i))
            is_run = self.getData.if_is_run(i)
            exp_restult = self.getData.get_exp_result(i)
            if is_run == True:
                res = self.run_method.run_requests(method,url,data,header)
                if self.compare.is_contain(exp_restult,res):
                    #print("测试通过")
                    self.getData.write_exl_result(i,u"测试通过")
                else:
                    #print("测试失败")
                    self.getData.write_exl_result(i,u"测试失败")
            return res
 def __init__(self, case_id):
     self.case_id = case_id
     self.opera_excel = Operation_Excel()
     self.data = Get_Data()
Exemple #10
0
 def __init__(self, case_id):
     self.case_id = case_id
     self.opera_excel = Operation_Excel()
     self.get_data = Get_Data()
     self.log = Log()
     self.row_index = self.opera_excel.get_index_caseId(self.case_id)
Exemple #11
0
class RunTest:
    def __init__(self):
        self.run_method = RunMethod()
        self.get_data = Get_Data()
        self.compare = Is_Contain()
        self.save_res = Save_Resp()
        # self.depend_data = Dependent_Data()
        self.resp_data = {}

    # 程序执行
    def go_on_run(self):
        header = None
        res = None
        pass_count = []
        fail_count = []
        rows_counts = self.get_data.get_lines()
        for i in range(1, rows_counts):
            is_run = self.get_data.is_Run(i)
            method = self.get_data.get_request_method(i)
            url = self.get_data.get_url(i)
            data = self.get_data.get_data_for_json(i)
            logger.info(f"request_data is {data}, type ====> {type(data)}")
            expect_data = self.get_data.get_except_data(i)
            header = self.get_data.is_header(i)

            # 判断该条case是否有依赖数据
            depend_id = self.get_data.get_depend_caseId(i)
            if depend_id:
                depend_data = Dependent_Data(depend_id)
                # 根据依赖表达式,获取依赖的数据以及依赖的字段
                depend_key, depend_value = depend_data.get_resp_caseResult(
                    self.resp_data, i)
                logger.info(f"depend_value =====> {depend_value}")
                data[depend_key] = depend_value
                # 更新请求数据
                logger.info(
                    f"request_data_2 is {data}, type ====> {type(data)}")

    #      method, url, data, header
            if is_run:
                res = self.run_method.run_main(method, url, data, header)
                logger.info(f"res is type {type(res)}")
                # if ("token" in res):
                #     Get_Token.get_header(res['token'])
                self.save_res.save_opt(self.resp_data, self.get_data.get_id(i),
                                       json.loads(res))
                compare_result = self.compare.is_contain(expect_data, res)
                if compare_result:
                    self.get_data.write_result(i, "pass")
                    pass_count.append(i)
                else:
                    self.get_data.write_result(i, res)
                    fail_count.append(i)
        logger.info(f"data is {self.resp_data}")