Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #4
0
    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)
Beispiel #5
0
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)