def test_delete_subnet(self, case_data): if case_data["request_type"] == "delete": Ports.Ports().delete_all_port() # 参数化修改test_add_project 注释 for k, v in enumerate(case_dict["test_case"]): # 遍历用例文件中所有用例的索引和值 try: if case_data == v: # 修改方法的__doc__在下一次调用时生效,此为展示在报告中的用例描述 Test_Delete_Subnet.test_delete_subnet.__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) CheckResult.check(case_data["test_name"], case_data["check"][0], code, data, self.relevance, CASE_PATH, self.result)
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_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_volume_snap_delete(self, case_data): for k, v in enumerate(case_dict["test_case"]): # 遍历用例文件中所有用例的索引和值 try: if case_data == v: # 修改方法的__doc__在下一次调用时生效,此为展示在报告中的用例描述 Test_Volume_Snap_Delete.test_volume_snap_delete.__doc__ = case_dict[ "test_case"][k + 1]["info"] except IndexError: pass if not self.result["result"]: # 查看类变量result的值,如果未False,则前一接口校验错误,此接口标记未失败,节约测试时间 pytest.xfail("前置接口测试失败,此接口标记为失败") #设置延时,等待快照删除完成 if case_data["request_type"] == "get": sleep(case_data["sleep_time"]) 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) #结果校验 CheckResult.check(case_data["test_name"], case_data["check"][0], code, data, self.relevance, CASE_PATH, self.result)
def api_send_check(case_data, project_dict, relevance, rel, _path, result): """ 接口请求并校验结果 :param case_data: 单条用例 :param project_dict: 用例文件对象 :param relevance: 关联值实例对象 :param _path: case目录 :param rel: 关联值类对象 :param result: 全局测试结果 :return: """ # 发送请求并获取code, data code, data = requestSend.send_request( case_data, project_dict["testinfo"].get("host"), project_dict["testinfo"].get("address"), relevance, _path, result) # 校验测试结果 with allure.step("校验测试结果"): pass if isinstance(case_data["check"], list): for i in case_data["check"]: CheckResult.check(case_data["test_name"], i, code, data, relevance, _path, result) else: CheckResult.check(case_data["test_name"], case_data["check"], code, data, relevance, _path, result) # 记录关联值 init.get_relevance(data, case_data["relevance"], rel)
def test_os_volume_attachments(self, case_data): # 参数化修改test_os_volume_attachments注释 for k, v in enumerate(case_dict["test_case"]): # 遍历用例文件中所有用例的索引和值 try: if case_data == v: # 修改方法的__doc__在下一次调用时生效,此为展示在报告中的用例描述 Test_Os_Volume_Attachments.test_os_volume_attachments.__doc__ = case_dict[ "test_case"][k + 1]["info"] except IndexError: pass if not self.result["result"]: # 查看类变量result的值,如果未False,则前一接口校验错误,此接口标记未失败,节约测试时间 pytest.xfail("前置接口测试失败,此接口标记为失败") if case_data["request_type"] == "get": 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"] self.Assert.assert_code(code, expected_code) # 完整校验 CheckResult.check(case_data["test_name"], case_data["check"][0], code, data, self.relevance, CASE_PATH, self.result)
def test_server(self, case_data): for k, v in enumerate(case_dict["test_case"]): # 遍历用例文件中所有用例的索引和值 try: if case_data == v: # 修改方法的__doc__在下一次调用时生效,此为展示在报告中的用例描述 Test_Server.test_server.__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) CheckResult.check(case_data["test_name"], case_data["check"][0], code, data, self.relevance, CASE_PATH, self.result)