def test_regexp_subject(self): res = JMX._get_extractor('test_name', 'baddy', 'regexp', 1, 1, 'error') self.assertEqual("body", res.find(".//stringProp[@name='RegexExtractor.useHeaders']").text) res = JMX._get_extractor('test_name', 'headers', 'regexp', 1, 1, 'error') self.assertEqual("true", res.find(".//stringProp[@name='RegexExtractor.useHeaders']").text) res = JMX._get_extractor('test_name', 'http-code', 'regexp', 1, 1, 'error') self.assertEqual("code", res.find(".//stringProp[@name='RegexExtractor.useHeaders']").text) self.assertIsNone(res.find(".//stringProp[@name='Sample.scope']"))
def __add_extractors(self, children, req): extractors = req.config.get("extract-regexp", BetterDict()) for varname in extractors: cfg = ensure_is_dict(extractors, varname, "regexp") extractor = JMX._get_extractor(varname, cfg.get('subject', 'body'), cfg['regexp'], cfg.get('template', 1), cfg.get('match-no', 1), cfg.get('default', 'NOT_FOUND')) children.append(extractor) children.append(etree.Element("hashTree")) jextractors = req.config.get("extract-jsonpath", BetterDict()) for varname in jextractors: cfg = ensure_is_dict(jextractors, varname, "jsonpath") children.append(JMX._get_json_extractor(varname, cfg['jsonpath'], cfg.get('default', 'NOT_FOUND'))) children.append(etree.Element("hashTree")) css_jquery_extors = req.config.get("extract-css-jquery", BetterDict()) for varname in css_jquery_extors: cfg = ensure_is_dict(css_jquery_extors, varname, "expression") extractor = self._get_jquerycss_extractor(varname, cfg['expression'], cfg.get('attribute', ""), cfg.get('match-no', 0), cfg.get('default', 'NOT_FOUND')) children.append(extractor) children.append(etree.Element("hashTree")) xpath_extractors = req.config.get("extract-xpath", BetterDict()) for varname in xpath_extractors: cfg = ensure_is_dict(xpath_extractors, varname, "xpath") children.append(JMX._get_xpath_extractor(varname, cfg['xpath'], cfg.get('default', 'NOT_FOUND'), cfg.get('validate-xml', False), cfg.get('ignore-whitespace', True), cfg.get('use-tolerant-parser', False))) children.append(etree.Element("hashTree"))
def __add_regexp_ext(self, children, req): extractors = req.config.get("extract-regexp") for varname in extractors: cfg = ensure_is_dict(extractors, varname, "regexp") extractor = JMX._get_extractor(varname, cfg.get('subject', 'body'), cfg['regexp'], cfg.get('template', 1), cfg.get('match-no', 1), cfg.get('default', 'NOT_FOUND')) children.append(extractor) children.append(etree.Element("hashTree"))