def test_run(self, case): # 3、重构函数内容 # data_key = ExcelConfig.DataConfig # run_list第1个用例,用例,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] code = case[data_key.code] db_verify = case[data_key.db_verify] # 1、验证前置条件 if pre_exec: pass # 2、找到执行用例 # 前置测试用例 pre_case = data_init.get_case_pre(pre_exec) print("前置条件信息为:%s" % pre_case) pre_res = self.run_pre(pre_case) print(pre_res) headers, cookies = self.get_correlation(headers, cookies, pre_res) header = Base.json_parse(headers) cookie = Base.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) # 断言验证 # 状态码,返回结果内容,数据库相关的结果的验证 # 状态码 assert_util = AssertUtil() assert_util.assert_code(int(res["code"]), int(code)) # 返回结果内容 assert_util.assert_in_body(str(res["body"]), str(expect_result)) # 数据库结果断言 Base.assert_db("db_1", res["body"], db_verify)
def test_run(self, case): # data_key = ExcelConfig.DataConfig url = case[data_key.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] actual_result = case[data_key.actual_result] beizhu = case[data_key.beizhu] 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: # 前置用例 pre_case = data_init.get_case_pre(pre_exec) # print(f"前置条件信息为:{pre_case}") pre_res = self.run_pre(pre_case) headers, cookies = self.get_correlation(headers, cookies, pre_res) # 增加headers header = Base.json_parse(headers) # 增加cookies cookie = Base.json_parse(cookies) request = Request(ConfigYaml().get_config_url()) # params转义json # 验证params有没有内容 res = self.run_api(url, params, method, header, cookie) print(f"执行测试用例:{res}") # allure allure.dynamic.feature(sheet_name) allure.dynamic.story(case_model) allure.dynamic.title(case_id + case_name) desc = f"url:{url}<br> 请求方法:{method}<br> 期望结果:{expect_result}<br> 实际结果:{res}" allure.dynamic.description(desc) # 断言验证 assert_util = AssertUtil() assert_util.assert_code(int(res['code']), code) assert_util.assert_in_body(str(res['body']), str(expect_result)) # 数据库验证 # sql = Base.init_db('db_1') # db_res = sql.fetch_one(db_verify) # log.debug(f"数据库查询结果:{str(db_res)}") # for db_k,db_v in db_res.items(): # res_line = res['body'][db_k] # assert_util.assert_body(res_line, db_v) Base.assert_db(db_name='db_1', res_body=res['body'], db_verify=db_verify)
def test_run(self, case): # run_list第1个用例,用例,key获取values url = ConfigYaml().get_conf_url() + case[data_key.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] code = case[data_key.code] db_verify = case[data_key.db_verify] # 2.增加Headers # 3.增加cookies # 4.发送请求 if pre_exec: # 前置测试用例 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) # 1.判断headers是否存在,json转义,无需 header = Base.json_param(headers) cookie = Base.json_param(cookies) res = self.run_api(url, method, params=params, header=header, cookie=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'>请求URL111: </font> {}<Br/>" \ "<font color='red'>请求类型222: </font>{}<Br/>" \ "<font color='red'>期望结果: </font>{}<Br/>" \ "<font color='red'>实际结果: </font>{}".format(url, method, expect_result, res) allure.dynamic.description(desc) # 断言验证 # 状态码,返回结果内容,数据库相关的结果的验证 assert_util = AssertUtil() assert_util.assert_code(int(res['code']), code) # 返回结果内容 assert_util.assert_in_body(str(res["body"]), str(expect_result)) Base.assert_db("db_1", res["body"], db_verify)
def test_run(self, case): # 初始化信息,url.data 等数据 url = ConfigYml().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] reference = case[data_key.reference] headers = case[data_key.headers] cookies = case[data_key.cookies] code = case[data_key.code] db_verity = case[data_key.db_verity] # 验证前置条件 if pre_exec: pass # 找到执行用例,前置测试用例 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) # 判断headers和cookie是否存在,如果存在json转义,如果不存在无需转义 header = Base.json_parse(headers) cookie = Base.json_parse(cookies) url_params = Base.joint_url(case[data_key.params], case[data_key.url]) res = self.run_api(url, method, url_params, reference, params, header, cookie) print("测试用例执行:%s" % res) # allure allure.dynamic.feature(sheet_name) # sheet名称 feature 一级标签 allure.dynamic.story(case_model) # 模块 story 二级标签 allure.dynamic.title(case_id + case_name) # 用例ID+接口名称 title # 请求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) # 断言验证 assert_util = AssertUtil() assert_util.assert_code(int(res["code"]), int(code)) # 验证状态码 assert_util.assert_in_body(str(res["body"]), str(expect_result)) # 验证返回结果内容 if len(db_verity) > 0: # 数据库结果断言 Base.assert_db("db_1", res["body"], db_verity)
def test_run(self, case): # print("-----------------",case) # 重构函数内容 # data_key = ExcelConfig.DataConfig #run_list 第1个用例,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] cooikes = case[data_key.cookies] code = case[data_key.code] db_verify = case[data_key.db_verify] #接口请求 #验证前置条件: if pre_exec: pass #找到执行用例 # 前置测试用例 pre_case = data_init.get_case_pre() print("前置条件信息为%s" % pre_exec) pre_res = self.run_pre(pre_case) headers, cooikes = self.get_correlation(headers, cooikes, pre_res) header = Base.json_parse(headers) cooikes = Base.json_parse(cooikes) res = self.run_api(url, method, params, headers, cooikes) print("测试用例执行:%s" % res) # #接口请求 # request = Request() # #params转义json # if len(str(params).strip()) is not 0: # params = json.loads(params) # #method post、get # if str(method).lower() == "get": # #增加了headers # res = request.get(url, json=params,headers = header,cooikes=cookie) # elif str(method).lower() == "post": # res = request.post(url, json=params,headers = header,cooikes=cookie) # else: # log.error("错误的请求method %s" % method) # print(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) # TestExcel().test_run() #断言验证 #状态码 assert_util = AssertUtil() assert_util.assert_code(int(res["code"]), int(code)) #返回结果内容 assert_util.assert_in_body(res["body"], str(expect_result)) #数据库结果断言 #初始化数据库 Base.assert_db("db_1", res("body"), db_verify) from common.Base import init_db
def test_run(self, case): #run_list 第一个用例,用例,key获取values url = ConfigYaml().get_conf_url() + case[data_key.url] print(url) case_id = case[data_key.case_id] # print(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] code = case[data_key.code] db_verify = case[data_key.db_verify] #动态headers请求 ##1.验证前置条件 if pre_exec: pass ##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 = Base.json_parse(headers) cookie = Base.json_parse(cookies) res = self.run_api(url, method, params, header, cookie) print("测试用例执行: %s" % res) # return res # 注意 # sheet名称--feature 一级标签 allure.dynamic.feature(sheet_name) # 模块--story 二级标签 allure.dynamic.story(case_model) # 用例ID + 接口名称 - - title allure.dynamic.title(case_id + case_name) #请求URL 请求类型 期望结果 实际结果 description # allure.dynamic.description(url+method+expect_result+res) desc = "<font color='green' size=3>请求URL: </font> {}<Br/>" \ "<font color='green' size=3>请求类型: </font>{}<Br/>" \ "<font color='red' size=3>期望结果: </font>{}<Br/>" \ "<font color='green' size=3>实际结果: </font>{}".format(url, method, expect_result, res) allure.dynamic.description(desc) #1.断言验证 #2.状态码,返回结果内容,数据库相关结果验证 #"""断言验证--状态码,返回结果内容,数据库相关的结果的验证""" #1.)状态码 assert_util = AssertUtil() assert_util.assert_code(int(res["code"]), int(code)) #2.)返回结果内容验证 assert_util.assert_in_body(str(res["body"]), str(expect_result)) #********数据库结果断言******** Base.assert_db("db_1", res["body"], db_verify)
def test_run(self, case): # data_key = ExcelConfig.DataConfig # run_list第一个用例 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] code = case[data_key.code] db_verify = case[data_key.db_verify] # # 判断headers是否存在,json转义 # if headers: # header = json.loads(headers) # else: # header = headers # # 增加cookies # if cookies: # cookie = json.loads(cookies) # else: # cookie = cookies # 验证前置条件 if pre_exec: # 执行测试用例 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 = Base.json_parse(headers) cookie = Base.json_parse(cookies) res = self.run_api(url, method, params, header, cookie) print("测试用例执行:%s" % res) # allure ''' sheet名称 feature 一级标签 模块 story 二级标签 用例ID+接口名称 title 请求url、请求类型、期望结果、实际结果 描述 ''' allure.dynamic.feature(sheet_name) allure.dynamic.story(case_model) allure.dynamic.title(case_id + case_name) 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) # 断言验证 # 状态码,返回结果内容,数据库相关结果验证 assert_util = AssertUtil() assert_util.assert_code((res['code']), int(code)) # 返回结果内容,body assert_util.assert_in_body(str(res["body"]), str(expect_result)) # 数据库断言 Base.assert_db("db_1", res['body'], db_verify)
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)