def test_volume(self, case_data): for k, v in enumerate(case_dict["test_case"]): # 遍历用例文件中所有用例的索引和值 try: if case_data == v: # 修改方法的__doc__在下一次调用时生效,此为展示在报告中的用例描述 Test_Volume.test_volume.__doc__ = case_dict["test_case"][ k + 1]["info"] except IndexError: pass if not self.result["result"]: # 查看类变量result的值,如果未False,则前一接口校验错误,此接口标记未失败,节约测试时间 pytest.xfail("前置接口测试失败,此接口标记为失败") time.sleep(case_data["sleep_time"]) #send_request(_data, _host, _address,_port, _relevance, path, _success) code, data = requestSend.send_request( case_data, case_dict["testinfo"].get("host"), case_dict["testinfo"].get("address"), str(case_dict["testinfo"].get("port")), self.relevance, CASE_PATH, self.result) expected_code = case_data["check"][0]["expected_code"] volume_id = data["volume"]["id"] self.Assert.assert_code(code, expected_code) if case_data["request_type"] == "post": self.log.info("保存Volume_id到全局配置文件") conf = Config() conf.set_conf("test_data", "volume_id", volume_id) # 完整校验 CheckResult.check(case_data["test_name"], case_data["check"][0], code, data, self.relevance, CASE_PATH, self.result)
def test_project_crate(self, case_data): # 参数化修改test_project_crate注释 for k, v in enumerate(case_dict["test_case"]): # 遍历用例文件中所有用例的索引和值 try: if case_data == v: # 修改方法的__doc__在下一次调用时生效,此为展示在报告中的用例描述 TestAddProject.test_add_project.__doc__ = case_dict[ "test_case"][k + 1]["info"] except IndexError: pass if not self.result["result"]: # 查看类变量result的值,如果未False,则前一接口校验错误,此接口标记未失败,节约测试时间 pytest.xfail("前置接口测试失败,此接口标记为失败") #send_request(_data, _host, _address,_port, _relevance, path, _success) code, data = requestSend.send_request( case_data, case_dict["testinfo"].get("host"), case_dict["testinfo"].get("address"), str(case_dict["testinfo"].get("port")), self.relevance, CASE_PATH, self.result) project_id = data["project"]["id"] project_name = data["project"]["name"] self.Assert.assert_code(code, 201) with allure.step("保存项目信息到全局配置文件"): allure.attach("项目id:%s" % project_id) allure.attach("项目名称:%s" % project_name) self.log.info("保存project_id到全局配置文件") conf = Config() conf.set_conf("test_data", "project_id", project_id) self.log.info("保存项目名称为project_token_name到全局配置文件") conf.set_conf("test_data", "project_token_name", project_name)
def test_network(self, case_data): # 参数化修改test_network注释 for k, v in enumerate(case_dict["test_case"]): # 遍历用例文件中所有用例的索引和值 try: if case_data == v: # 修改方法的__doc__在下一次调用时生效,此为展示在报告中的用例描述 Test_Network.test_network.__doc__ = case_dict["test_case"][ k + 1]["info"] except IndexError: pass if not self.result["result"]: # 查看类变量result的值,如果未False,则前一接口校验错误,此接口标记未失败,节约测试时间 pytest.xfail("前置接口测试失败,此接口标记为失败") code, data = requestSend.send_request( case_data, case_dict["testinfo"].get("host"), case_dict["testinfo"].get("address"), str(case_dict["testinfo"].get("port")), self.relevance, CASE_PATH, self.result) expected_code = case_data["check"][0]["expected_code"] network_id = data["network"]["id"] network_name = data["network"]["name"] self.log.debug("data:%s" % data) self.Assert.assert_code(code, expected_code) #保存创建的网络id和网络名称 if case_data["request_type"] == "post": self.log.info("保存network_id到全局配置文件") conf = Config() conf.set_conf("test_data", "network_id", network_id) conf.set_conf("test_data", "network_name_for_check", network_name) self.log.debug("保存network_name到全局配置文件,用于虚拟校验") CheckResult.check(case_data["test_name"], case_data["check"][0], code, data, self.relevance, CASE_PATH, self.result)
def test_report(self): conf = Config() env = "private_debug" conf.set_conf(env, "versioncode", "V3.5") tester = conf.get_conf(env, "tester") environment = conf.get_conf(env, "environment") versioncode = conf.get_conf(env, "versioncode") details = tester + "_" + environment + versioncode return details
def setup_class(cls): #初始化用例参数,将全局变量替换成配置文件中得变量 # cls.rel = ini_rel with allure.step("初始化环境变量"): cls.log = Log.MyLog() cls.Assert = Assert.Assertions() cls.log.info("设置project_token_name为amdin") conf = Config() conf.set_conf("test_data", "project_token_name", "admin") cls.result = {"result": True} #更新配置文件中的token cls.token = Token.Token() cls.token.save_token()
def test_crete_network(self): """ 用例描述:创建网络 """ conf = Config() data = Network() test = Assert.Assertions() request = Request.Request() host = conf.host req_url = 'http://' + host port = data.port urls = data.url params = data.data api_url = req_url + ":" + str(port[0]) + urls[0] response = request.post_request(api_url, params[0]) assert test.assert_code(response['code'], 201) assert test.assert_in_text(response['body'], 'auto_api_netwrok') Consts.RESULT_LIST.append('True') network_id = response["body"]["network"]["id"] #network,作为全局变量写入配置文件 conf.set_conf("test_data", "network_id", network_id)