def __gen_data_sources(self, scenario): elements = [] for source in scenario.get_data_sources(): source_path = source["path"] delimiter = source.get("delimiter") if has_variable_pattern(source_path): msg = "Path to CSV contains JMeter variable/function, can't check for file existence: %s" self.log.warning(msg, source_path) if not delimiter: delimiter = ',' self.log.warning("Can't detect CSV dialect, default delimiter will be '%s'", delimiter) else: source_path = self.executor.engine.find_file(source_path) if not os.path.isfile(source_path): raise TaurusConfigError("data-sources path not found: %s" % source_path) if not delimiter: delimiter = guess_delimiter(source_path) if source.get("random-order"): config = JMX._get_csv_config_random(source_path, delimiter, source.get("loop", True), source.get("variable-names", "")) else: config = JMX._get_csv_config(source_path, delimiter, source.get("loop", True), source.get("variable-names", ""), source.get("quoted", False)) elements.append(config) elements.append(etree.Element("hashTree")) return elements
def __gen_datasources(self, scenario): sources = scenario.get("data-sources") if not sources: return [] if not isinstance(sources, list): raise TaurusConfigError("data-sources '%s' is not a list" % sources) elements = [] for idx, source in enumerate(sources): source = ensure_is_dict(sources, idx, "path") source_path = source["path"] delimiter = source.get("delimiter") if has_variable_pattern(source_path): msg = "Path to CSV contains JMeter variable/function, can't check for file existence: %s" self.log.warning(msg, source_path) if not delimiter: delimiter = ',' self.log.warning("Can't detect CSV dialect, default delimiter will be '%s'", delimiter) else: source_path = self.executor.engine.find_file(source_path) if not os.path.isfile(source_path): raise TaurusConfigError("data-sources path not found: %s" % source_path) if not delimiter: delimiter = self.__guess_delimiter(source_path) config = JMX._get_csv_config(source_path, delimiter, source.get("quoted", False), source.get("loop", True), source.get("variable-names", "")) elements.append(config) elements.append(etree.Element("hashTree")) return elements
def __gen_datasources(self, scenario): sources = scenario.get("data-sources") if not sources: return [] if not isinstance(sources, list): raise TaurusConfigError("data-sources '%s' is not a list" % sources) elements = [] for idx, source in enumerate(sources): source = ensure_is_dict(sources, idx, "path") source_path = source["path"] delimiter = source.get("delimiter") if has_variable_pattern(source_path): msg = "Path to CSV contains JMeter variable/function, can't check for file existence: %s" self.log.warning(msg, source_path) if not delimiter: delimiter = ',' self.log.warning("Can't detect CSV dialect, default delimiter will be '%s'", delimiter) else: modified_path = self.executor.engine.find_file(source_path) if not os.path.isfile(modified_path): raise TaurusConfigError("data-sources path not found: %s" % modified_path) if not delimiter: delimiter = self.__guess_delimiter(modified_path) source_path = get_full_path(modified_path) config = JMX._get_csv_config(source_path, delimiter, source.get("quoted", False), source.get("loop", True), source.get("variable-names", "")) elements.append(config) elements.append(etree.Element("hashTree")) return elements
def __gen_datasources(self, scenario): sources = scenario.get("data-sources", []) if not sources: return [] if not isinstance(sources, list): raise TaurusConfigError("data-sources '%s' is not a list" % sources) elements = [] for idx, source in enumerate(sources): source = ensure_is_dict(sources, idx, "path") source_path = source["path"] jmeter_var_pattern = re.compile("^\$\{.*\}$") delimiter = source.get('delimiter', None) if jmeter_var_pattern.match(source_path): self.log.warning('JMeter variable "%s" found, check of file existence is impossible', source_path) if not delimiter: self.log.warning('CSV dialect detection impossible, default delimiter selected (",")') delimiter = ',' else: modified_path = self.executor.engine.find_file(source_path) if not os.path.isfile(modified_path): raise TaurusConfigError("data-sources path not found: %s" % modified_path) if not delimiter: delimiter = self.__guess_delimiter(modified_path) source_path = get_full_path(modified_path) config = JMX._get_csv_config(source_path, delimiter, source.get("quoted", False), source.get("loop", True), source.get("variable-names", "")) elements.append(config) elements.append(etree.Element("hashTree")) return elements
def __gen_data_sources(self, scenario): elements = [] for source in scenario.get_data_sources(): source_path = source["path"] delimiter = source.get("delimiter") if has_variable_pattern(source_path): msg = "Path to CSV contains JMeter variable/function, can't check for file existence: %s" self.log.warning(msg, source_path) if not delimiter: delimiter = ',' self.log.warning("Can't detect CSV dialect, default delimiter will be '%s'", delimiter) else: source_path = self.executor.engine.find_file(source_path) if not os.path.isfile(source_path): raise TaurusConfigError("data-sources path not found: %s" % source_path) if not delimiter: delimiter = guess_delimiter(source_path) config = JMX._get_csv_config(source_path, delimiter, source.get("quoted", False), source.get("loop", True), source.get("variable-names", "")) elements.append(config) elements.append(etree.Element("hashTree")) return elements