コード例 #1
0
    def run_pre(self, data_pre):
        #拼接url
        url = ConfigYaml().get_url_yaml() + data_pre[ExcelConfig().url]
        method = data_pre[data_key.method]
        params = data_pre[data_key.params]
        headers = data_pre[data_key.headers]
        cookies = data_pre[data_key.cookies]

        #判断headers cookise是否存在,json转义,
        header = json_parse(headers)
        cookie = json_parse(cookies)

        res = run_api(url, method, params, header, cookie)
        print("前置用例执行", res)
        return res
コード例 #2
0
    def test_run(self, case):

        #获取excel内的各项key
        case_id = case[data_key.case_id]
        case_model = case[data_key.case_model]
        case_name = case[data_key.case_name]
        url = case[data_key.url]
        pre_exec = case[data_key.pre_exec]
        method = case[data_key.method]
        params_type = case[data_key.params_type]
        params = case[data_key.params]
        expect_result = case[data_key.expect_result]
        actual_result = case[data_key.actual_result]
        headers = case[data_key.headers]
        cookies = case[data_key.cookies]
        code = case[data_key.code]
        db_verify = case[data_key.db_verify]

        if pre_exec:
            # 获取是前置条件测试用例
            data_pre = run_list.get_run_pre(pre_exec)
            # print("前置条件的测试用例为{}".format(data_pre))
            # 执行前置用例
            pre_res = self.run_pre(data_pre)
            headers, cookies = self.get_correlation(headers, cookies, pre_res)

        # 获取yml文件的接口url地址 获取excel接口路径 拼成url地址
        url = ConfigYaml().get_url_yaml() + url
        header = json_parse(headers)
        cookie = json_parse(cookies)
        r = run_api(url, method, params, header, cookie)
        print("测试用例执行:%s" % r)

        #allure
        #获取一级标签 也就是表格的sheet名称
        allure.dynamic.feature(sheet_name)
        #获取模块story二级标签
        allure.dynamic.story(case_model)
        #获取用例id和接口名称
        allure.dynamic.title(case_id + case_name)
        #设置备注 有请求的url 请求类型 期望结果 实际结果描述
        desc = "<font color = 'red'>请求url:</font>{}</Br>"\
               "<font color = 'red'>请求类型:</font>{}</Br>"\
               "<font color = 'red'>期望结果:</font>{}</Br>"\
               "<font color = 'red'>实际结果:</font>{}</Br>".format(url,method,expect_result,r)

        allure.dynamic.description(desc)
        return r
コード例 #3
0
 def run_pre(self, pre_case):
     url = ConfigYaml().get_conf_url() + pre_case[data_key.url]
     method = pre_case[data_key.method]
     params = pre_case[data_key.params]
     headers = pre_case[data_key.headers]
     cookies = pre_case[data_key.cookies]
     # 1.判断headers是否存在,存在:json转义  不存在:无需作任何操作
     # if headers:
     #     header = json.loads(headers)
     # else:
     #     header = headers
     header = json_parse(headers)
     # 3.判断cookies是否存在,存在:json转义  不存在:无需作任何操作
     # if cookies:
     #     cookie = json.loads(cookies)
     # else:
     #     cookie = cookies
     cookie = json_parse(cookies)
     res = self.run_api(url, method, params, header, cookie)
     print(res)
コード例 #4
0
    def test_run(self, case):
        # 3. 重构函数内容
        # data_key = ExcelConfig.DataConfig
        # run_list第一个用例,根据key获取values
        url = ConfigYaml().get_conf_url() + case[data_key.url]
        print(url)
        case_id = case[data_key.case_id]
        case_model = case[data_key.case_model]
        case_name = case[data_key.case_name]
        pre_exec = case[data_key.pre_exec]
        method = case[data_key.method]
        params_type = case[data_key.params_type]
        params = case[data_key.params]
        expect_result = case[data_key.expect_result]
        headers = case[data_key.headers]
        cookies = case[data_key.cookies]
        status_code = case[data_key.status_code]
        db_verify = case[data_key.db_verify]

        # 1.判断headers是否存在,存在:json转义  不存在:无需作任何操作
        # if headers:
        #     header = json.loads(headers)
        # else:
        #     header = headers
        # header = json_parse(headers)
        # 3.判断cookies是否存在,存在:json转义  不存在:无需作任何操作
        # if cookies:
        #     cookie = json.loads(cookies)
        # else:
        #     cookie = cookies
        # cookie = json_parse(cookies)

        # 1.验证前置条件是否存在
        if pre_exec:
            # 2.根据前置条件找到前置用例
            pre_case = data_init.get_case_pre(pre_exec)
            print("前置条件信息为:%s" % pre_case)
            pre_res = self.run_pre(pre_case)
            headers, cookies = self.get_correlation(headers, cookies, pre_res)
        header = json_parse(headers)
        cookie = json_parse(cookies)
        res = self.run_api(url, method, params, header, cookie)
        print("测试用例执行:%s" % res)

        # 生成allure测试报告
        # sheet名称  feature 一级标签
        allure.dynamic.feature(sheet_name)
        # 模块   story 二级标签
        allure.dynamic.story(case_model)
        # 用例ID+接口名称  title
        allure.dynamic.title(case_id + case_name)
        # 请求URL  请求类型 期望结果 实际结果描述
        desc = "<font color='red'>请求url: </font>{}<Br/>" \
               "<font color='red'>请求类型:</font>{}<Br/>" \
               "<font color='red'>期望结果:</font>{}<Br/>" \
               "<font color='red'>实际结果:</font>{}".format(url, method, expect_result, res)
        allure.dynamic.description(desc)  # 执行allure命令

        #断言验证
        # 验证状态码
        AssertUtil().assert_code(int(res["code"]), int(status_code))
        # 验证返回结果内容
        AssertUtil().assert_in_body(str(res["body"]), str(expect_result))
        # 数据库结果断言
        Base.assert_db("db_1", res["body"], db_verify)