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
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
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)
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)