Esempio n. 1
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_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)
Esempio n. 4
0
    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()
Esempio n. 6
0
    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)