Jmeter - экстрактор регулярных выражений для игнорирования новой строки - PullRequest
0 голосов
/ 24 февраля 2020

Я новичок в Jmeter и пытаюсь использовать Regular Expression Extractor для извлечения одного значения из XML ответа одного из HTTP-запросов. Мне известно о выражении, которое мне нужно использовать для извлечения значения, но я не представляю, как избежать, игнорировать или включить новую строку. Ниже приведена небольшая часть моего XML экстрактора ответов и регулярных выражений, который я использую для извлечения значения между дочерним / подчиненным узлом "name":

 <com.mfs.model.connector.ConnectorBrowseInfo>
          <type>css</type>
          <name>Cascading Style Server</name>
          <typeGroup>css</typeGroup>

Конфигурация экстрактора регулярных выражений:

Name of created variable: connectorNameVar
Regular Expression Extractor: <com\.msf\.model\.connector\.ConnectorBrowseInfo>\n          <type>(.*?)<\/type>\n          <name>(.*?)<\/name>\n
Template: $2$
Match No.: 0
Default Value: NotFound

Это выражение возвращает значение «NotFound» вместо значения «Cascading Style Server». Может кто-нибудь помочь мне выяснить, что мне нужно добавить, удалить или изменить в моем выражении?

Критерии принятия: имя необходимо извлечь из '<com.mfs.model.connector.ConnectorBrowseInfo>' этого узла.

1 Ответ

1 голос
/ 25 февраля 2020

Использование регулярных выражений для разбора XML - не лучшая идея, JMeter поставляется с XPath Extractor , который позволяет выполнять произвольные XPath запросы для получения данных из XML / XHTML / HTML ответов.

Таким образом, вместо того, чтобы пытаться создать уродливое многострочное регулярное выражение fr agile, которое будет разрываться при изменении порядка атрибутов или если ответ будет представлять собой одну строку, вы можете придумать простую для чтения и сопровождения Запрос XPath, в вашем случае это будет что-то вроде:

//com.mfs.model.connector.ConnectorBrowseInfo/name/text()

Демо:

enter image description here

Дополнительная информация:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...