Пример #1
0
    def __load_module(self, alias):
        """
        Load module class by alias
        :param alias: str
        :return: class
        """
        if alias in self.modules:
            return self.modules[alias]

        mod_conf = self.config.get('modules')
        if alias not in mod_conf:
            self.log.info("Possible module aliases: %s", [str(x) for x in sorted(mod_conf.keys())])
            raise ValueError("Module alias '%s' not found in module settings" % alias)

        settings = ensure_is_dict(mod_conf, alias, "class")

        acopy = copy.deepcopy(settings)
        BetterDict.traverse(acopy, Configuration.masq_sensitive)
        self.log.debug("Module config: %s %s", alias, acopy)

        clsname = settings.get('class', None)
        if clsname is None:
            raise ValueError("Class name not found in module settings: %s" % settings)

        try:
            self.modules[alias] = load_class(clsname)
            if not issubclass(self.modules[alias], EngineModule):
                raise TypeError("Module class does not inherit from EngineModule: %s" % clsname)
        except BaseException:
            self.log.debug("Failed to load class %s: %s", clsname, traceback.format_exc())
            raise ValueError("Cannot load module '%s' with class %s" % (alias, clsname))

        return self.modules[alias]
Пример #2
0
    def __init__(self, crit_cfg_list, feeder):
        super(CriteriaProcessor, self).__init__()
        self.criteria = []
        self.last_datapoint = None
        self.log = logging.getLogger(__name__)

        if isinstance(crit_cfg_list, dict):
            crit_iter = iteritems(crit_cfg_list)
        else:
            crit_iter = enumerate(crit_cfg_list)

        for idx, crit_config in crit_iter:
            if isinstance(crit_config, string_types):
                crit_config = DataCriterion.string_to_config(crit_config)
                crit_cfg_list[idx] = crit_config
            crit = load_class(
                crit_config.get(
                    'class',
                    DataCriterion.__module__ + "." + DataCriterion.__name__))
            crit_instance = crit(crit_config, self)
            assert isinstance(crit_instance, FailCriterion)
            if isinstance(idx, string_types):
                crit_instance.message = idx
            self.criteria.append(crit_instance)

        if isinstance(feeder, ResultsProvider):
            feeder.add_listener(self)
Пример #3
0
    def __load_module(self, alias):
        """
        Load module class by alias
        :param alias: str
        :return: class
        """
        if alias in self.modules:
            return self.modules[alias]

        mod_conf = self.config.get('modules')
        if alias not in mod_conf:
            msg = "Module '%s' not found in list of available aliases %s" % (
                alias, sorted(mod_conf.keys()))
            raise TaurusConfigError(msg)

        settings = ensure_is_dict(mod_conf, alias, "class")

        acopy = copy.deepcopy(settings)
        BetterDict.traverse(acopy, Configuration.masq_sensitive)
        self.log.debug("Module config: %s %s", alias, acopy)

        err = TaurusConfigError(
            "Class name for alias '%s' is not found in module settings: %s" %
            (alias, settings))
        clsname = settings.get('class', err)

        self.modules[alias] = load_class(clsname)
        if not issubclass(self.modules[alias], EngineModule):
            raise TaurusInternalException(
                "Module class does not inherit from EngineModule: %s" %
                clsname)

        return self.modules[alias]
Пример #4
0
    def prepare(self):
        super(PassFailStatus, self).prepare()

        # TODO: remove "criterias" support in three months
        criterias = self.parameters.get("criterias", [])
        if criterias:
            self.log.warning('"criterias" section name is deprecated, use "criteria" instead')
        criteria = self.parameters.get("criteria", criterias)

        if isinstance(criteria, dict):
            crit_iter = iteritems(criteria)
        else:
            crit_iter = enumerate(criteria)

        for idx, crit_config in crit_iter:
            if isinstance(crit_config, string_types):
                crit_config = DataCriterion.string_to_config(crit_config)
                self.parameters['criteria'][idx] = crit_config
            crit = load_class(crit_config.get('class', DataCriterion.__module__ + "." + DataCriterion.__name__))
            crit_instance = crit(crit_config, self)
            assert isinstance(crit_instance, FailCriterion)
            if isinstance(idx, string_types):
                crit_instance.message = idx
            self.criteria.append(crit_instance)

        if isinstance(self.engine.aggregator, ResultsProvider):
            self.engine.aggregator.add_listener(self)
Пример #5
0
    def prepare(self):
        super(PassFailStatus, self).prepare()

        # TODO: remove "criterias" support in three months
        criterias = self.parameters.get("criterias", [])
        if criterias:
            self.log.warning(
                '"criterias" section name is deprecated, use "criteria" instead'
            )
        criteria = self.parameters.get("criteria", criterias)

        if isinstance(criteria, dict):
            crit_iter = iteritems(criteria)
        else:
            crit_iter = enumerate(criteria)

        for idx, crit_config in crit_iter:
            if isinstance(crit_config, string_types):
                crit_config = DataCriterion.string_to_config(crit_config)
                self.parameters['criteria'][idx] = crit_config
            crit = load_class(
                crit_config.get(
                    'class',
                    DataCriterion.__module__ + "." + DataCriterion.__name__))
            crit_instance = crit(crit_config, self)
            assert isinstance(crit_instance, FailCriterion)
            if isinstance(idx, string_types):
                crit_instance.message = idx
            self.criteria.append(crit_instance)

        if isinstance(self.engine.aggregator, ResultsProvider):
            self.engine.aggregator.add_listener(self)
Пример #6
0
    def __load_module(self, alias):
        """
        Load module class by alias
        :param alias: str
        :return: class
        """
        if alias in self.modules:
            return self.modules[alias]

        mod_conf = self.config.get('modules')
        if alias not in mod_conf:
            self.log.info("Possible module aliases: %s", [str(x) for x in sorted(mod_conf.keys())])
            raise ValueError("Module alias '%s' not found in module settings" % alias)

        settings = ensure_is_dict(mod_conf, alias, "class")

        acopy = copy.deepcopy(settings)
        BetterDict.traverse(acopy, Configuration.masq_sensitive)
        self.log.debug("Module config: %s %s", alias, acopy)

        clsname = settings.get('class', None)
        if clsname is None:
            raise ValueError("Class name not found in module settings: %s" % settings)

        try:
            self.modules[alias] = load_class(clsname)
            if not issubclass(self.modules[alias], EngineModule):
                raise TypeError("Module class does not inherit from EngineModule: %s" % clsname)
        except BaseException:
            self.log.debug("Failed to load class %s: %s", clsname, traceback.format_exc())
            raise ValueError("Cannot load module '%s' with class %s" % (alias, clsname))

        return self.modules[alias]
Пример #7
0
    def __load_module(self, alias):
        if alias in self.modules:
            return self.modules[alias]

        mod_conf = self.config.get('modules')
        if alias not in mod_conf:
            raise ValueError("Module alias '%s' not found in module settings" %
                             alias)

        settings = ensure_is_dict(mod_conf, alias, "class")

        acopy = copy.deepcopy(settings)
        BetterDict.traverse(acopy, Configuration.masq_sensitive)
        self.log.debug("Module config: %s %s", alias, acopy)

        clsname = settings.get('class', None)
        try:
            self.modules[alias] = load_class(clsname)
            if not issubclass(self.modules[alias], EngineModule):
                raise TypeError(
                    "Module class does not inherit from EngineModule: %s" %
                    clsname)
        except BaseException as exc:
            self.log.debug("Failed to load class %s: %s", clsname,
                           traceback.format_exc())
            raise ValueError("Cannot load module '%s' with class %s" %
                             (alias, clsname))

        return self.modules[alias]
Пример #8
0
    def __load_module(self, alias):
        """
        Load module class by alias
        :param alias: str
        :return: class
        """
        if alias in self.modules:
            return self.modules[alias]

        mod_conf = self.config.get('modules')
        if alias not in mod_conf:
            msg = "Module '%s' not found in list of available aliases %s" % (alias, sorted(mod_conf.keys()))
            raise TaurusConfigError(msg)

        settings = ensure_is_dict(mod_conf, alias, "class")

        acopy = copy.deepcopy(settings)
        BetterDict.traverse(acopy, Configuration.masq_sensitive)
        self.log.debug("Module config: %s %s", alias, acopy)

        err = TaurusConfigError("Class name for alias '%s' is not found in module settings: %s" % (alias, settings))
        clsname = settings.get('class', err)

        self.modules[alias] = load_class(clsname)
        if not issubclass(self.modules[alias], EngineModule):
            raise TaurusInternalException("Module class does not inherit from EngineModule: %s" % clsname)

        return self.modules[alias]
Пример #9
0
 def prepare(self):
     super(PassFailStatus, self).prepare()
     for idx, crit_config in enumerate(self.parameters.get("criterias", [])):
         if isinstance(crit_config, six.string_types):
             crit_config = FailCriteria.string_to_config(crit_config)
             self.parameters['criterias'][idx] = crit_config
         crit = load_class(crit_config.get('type', FailCriteria.__module__ + "." + FailCriteria.__name__))
         self.criterias.append(crit(crit_config))
Пример #10
0
 def register_checkers(self, checkers_repo, checkers_enabled):
     for checker_name in checkers_enabled:
         checker_fqn = checkers_repo.get(checker_name)
         if not checker_fqn:
             raise TaurusConfigError("Checker %r not found" % checker_name)
         checker_class = load_class(checker_fqn)
         assert issubclass(checker_class, Checker)
         checker = checker_class(self)
         self._checkers.append(checker)
Пример #11
0
 def get_exc(self, param):
     """
     :type param: str
     :return:
     """
     name = self.settings.get(param, "")
     if name:
         cls = load_class(name)
         return cls()
     return None
 def get_exc(self, param):
     """
     :type param: str
     :return:
     """
     name = self.settings.get(param, "")
     if name:
         cls = load_class(name)
         return cls()
     return None
Пример #13
0
 def prepare(self):
     super(PassFailStatus, self).prepare()
     for idx, crit_config in enumerate(self.parameters.get("criterias",
                                                           [])):
         if isinstance(crit_config, string_types):
             crit_config = FailCriteria.string_to_config(crit_config)
             self.parameters['criterias'][idx] = crit_config
         crit = load_class(
             crit_config.get(
                 'type',
                 FailCriteria.__module__ + "." + FailCriteria.__name__))
         self.criterias.append(crit(crit_config))
Пример #14
0
    def prepare(self):
        self.client = ChromeClient(self.log)
        self.client.engine = self.engine

        processors = self.settings.get("processors", {})
        for proc_name, proc in iteritems(processors):
            class_fqn = proc.get("class", ValueError("Class for performance processor %s is not specified" % proc_name))
            klass = load_class(class_fqn)
            processor = klass(proc, self.client, self.log)
            self.client.add_processor(processor)

        self.client.connect()
Пример #15
0
    def prepare(self):
        self.client = ChromeClient(self.log)
        self.client.engine = self.engine

        processors = self.settings.get("processors", {})
        for proc_name, proc in iteritems(processors):
            msg = "Class for performance processor %s is not specified in %s"
            class_fqn = proc.get("class",
                                 TaurusConfigError(msg % (proc_name, proc)))
            klass = load_class(class_fqn)
            processor = klass(proc, self.client, self.log)
            self.client.add_processor(processor)

        self.client.connect()
Пример #16
0
 def __init__(self, executor, original=None):
     """
     :type executor: ScenarioExecutor
     :type original: JMX
     """
     super(JMeterScenarioBuilder, self).__init__(original)
     self.executor = executor
     self.scenario = executor.get_scenario()
     self.engine = executor.engine
     self.system_props = BetterDict()
     self.request_compiler = None
     self.default_protocol = self.executor.settings.get('default-protocol', 'http')
     self.protocol_handlers = {}
     for protocol, cls_name in iteritems(self.executor.settings.get("protocol-handlers")):
         cls_obj = load_class(cls_name)
         instance = cls_obj(self.system_props)
         self.protocol_handlers[protocol] = instance
Пример #17
0
 def __init__(self, executor, original=None):
     """
     :type executor: ScenarioExecutor
     :type original: JMX
     """
     super(JMeterScenarioBuilder, self).__init__(original)
     self.executor = executor
     self.scenario = executor.get_scenario()
     self.engine = executor.engine
     self.system_props = BetterDict()
     self.request_compiler = None
     self.default_protocol = self.executor.settings.get('default-protocol', 'http')
     self.protocol_handlers = {}
     for protocol, cls_name in iteritems(self.executor.settings.get("protocol-handlers")):
         cls_obj = load_class(cls_name)
         instance = cls_obj(self.system_props)
         self.protocol_handlers[protocol] = instance
Пример #18
0
    def prepare(self):
        super(PassFailStatus, self).prepare()
        criteria = self.parameters.get("criterias", [])
        if isinstance(criteria, dict):
            crit_iter = iteritems(criteria)
        else:
            crit_iter = enumerate(criteria)

        for idx, crit_config in crit_iter:
            if isinstance(crit_config, string_types):
                crit_config = FailCriteria.string_to_config(crit_config)
                self.parameters['criterias'][idx] = crit_config
            crit = load_class(crit_config.get('type', FailCriteria.__module__ + "." + FailCriteria.__name__))
            crit_instance = crit(crit_config)
            assert isinstance(crit_instance, FailCriteria)
            if isinstance(idx, string_types):
                crit_instance.message = idx
            self.criterias.append(crit_instance)
Пример #19
0
    def prepare(self):
        super(PassFailStatus, self).prepare()
        criteria = self.parameters.get("criterias", [])
        if isinstance(criteria, dict):
            crit_iter = iteritems(criteria)
        else:
            crit_iter = enumerate(criteria)

        for idx, crit_config in crit_iter:
            if isinstance(crit_config, string_types):
                crit_config = DataCriteria.string_to_config(crit_config)
                self.parameters['criterias'][idx] = crit_config
            crit = load_class(crit_config.get('class', DataCriteria.__module__ + "." + DataCriteria.__name__))
            crit_instance = crit(crit_config, self)
            assert isinstance(crit_instance, FailCriteria)
            if isinstance(idx, string_types):
                crit_instance.message = idx
            self.criterias.append(crit_instance)

        if isinstance(self.engine.aggregator, ResultsProvider):
            self.engine.aggregator.add_listener(self)
Пример #20
0
    def prepare(self):
        super(PassFailStatus, self).prepare()
        criteria = self.parameters.get("criterias", [])
        if isinstance(criteria, dict):
            crit_iter = iteritems(criteria)
        else:
            crit_iter = enumerate(criteria)

        for idx, crit_config in crit_iter:
            if isinstance(crit_config, string_types):
                crit_config = FailCriteria.string_to_config(crit_config)
                self.parameters['criterias'][idx] = crit_config
            crit = load_class(
                crit_config.get(
                    'type',
                    FailCriteria.__module__ + "." + FailCriteria.__name__))
            crit_instance = crit(crit_config)
            assert isinstance(crit_instance, FailCriteria)
            if isinstance(idx, string_types):
                crit_instance.message = idx
            self.criterias.append(crit_instance)
Пример #21
0
    def prepare(self):
        super(PassFailStatus, self).prepare()
        criteria = self.parameters.get("criteria", [])
        if isinstance(criteria, dict):
            crit_iter = iteritems(criteria)
        else:
            crit_iter = enumerate(criteria)

        for idx, crit_config in crit_iter:
            if isinstance(crit_config, string_types):
                crit_config = DataCriterion.string_to_config(crit_config)
                self.parameters['criteria'][idx] = crit_config
            crit = load_class(crit_config.get('class', DataCriterion.__module__ + "." + DataCriterion.__name__))
            crit_instance = crit(crit_config, self)
            assert isinstance(crit_instance, FailCriterion)
            if isinstance(idx, string_types):
                crit_instance.message = idx
            self.criteria.append(crit_instance)

        if isinstance(self.engine.aggregator, ResultsProvider):
            self.engine.aggregator.add_listener(self)
Пример #22
0
    def __init__(self, crit_cfg_list, feeder):
        super(CriteriaProcessor, self).__init__()
        self.criteria = []
        self.last_datapoint = None
        self.log = logging.getLogger(__name__)

        if isinstance(crit_cfg_list, dict):
            crit_iter = iteritems(crit_cfg_list)
        else:
            crit_iter = enumerate(crit_cfg_list)

        for idx, crit_config in crit_iter:
            if isinstance(crit_config, string_types):
                crit_config = DataCriterion.string_to_config(crit_config)
                crit_cfg_list[idx] = crit_config
            crit = load_class(crit_config.get('class', DataCriterion.__module__ + "." + DataCriterion.__name__))
            crit_instance = crit(crit_config, self)
            assert isinstance(crit_instance, FailCriterion)
            if isinstance(idx, string_types):
                crit_instance.message = idx
            self.criteria.append(crit_instance)

        if isinstance(feeder, ResultsProvider):
            feeder.add_listener(self)
Пример #23
0
 def instantiate_extractors(self, extractors):
     for extractor_fqn in extractors:
         extractor_class = load_class(extractor_fqn)
         extractor = extractor_class(self, self.log)
         self.extractors.append(extractor)
Пример #24
0
 def instantiate_extractors(self, extractors):
     for extractor_fqn in extractors:
         extractor_class = load_class(extractor_fqn)
         extractor = extractor_class(self, self.log)
         self.extractors.append(extractor)