【问题标题】:Jmeter - Regular Expression Extractor to ignore new lineJmeter - 正则表达式提取器忽略新行
【发布时间】:2020-02-24 16:45:12
【问题描述】:

我是 Jmeter 新手,我正在尝试使用正则表达式提取器从其中一个 HTTP 请求的 XML 响应中提取单个值。我知道我需要用来提取值的表达式,但我不知道如何转义、忽略或包含新行。下面是我用来提取“名称”子/子节点之间值的 XML 响应和正则表达式提取器的一小部分:

 <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”值而不是取值“级联样式服务器”谁能帮我弄清楚我需要在我的表达式中添加、删除或更改什么?

Acceptance Criteria:名称需要从'&lt;com.mfs.model.connector.ConnectorBrowseInfo&gt;'这个节点中提取。

【问题讨论】:

  • 您的正则表达式对我有用,只需在正则表达式提取器中将 替换为
  • 在同一个 XML 响应中,我有以下节点、子节点和子节点:abhc-123abh-Fgh%908-5rmka containerId> EQ AMCkkp_test 当我使用与上述相同的正则表达式时,它不会取任何值
  • 好吧,您的正则表达式被编写为从该节点&lt;com.mfs.model.connector.ConnectorBrowseInfo&gt; 提取名称值,这是您在问题中指定的节点而不是这个&lt;com.msf.model.platform.common.Container&gt;
  • 对,这是我最初的问题——我在我的 apache-jmeter-4.0 中使用了相同的正则表达式,它采用默认值“NotFound”,所以这个正则表达式无法正常提取“级联样式”服务器”并在即将到来的请求中重用它。感谢您的回复
  • 你可以试试这个正则表达式,它对我来说很好regex101.com/r/jEsTjq/1

标签: regex jmeter


【解决方案1】:

使用正则表达式解析 XML 并不是最好的主意,JMeter 附带了XPath Extractor,它允许执行任意的XPath 查询,以便从 XML/XHTML/HTML 响应中获取数据。

因此,与其尝试创建一个丑陋、脆弱的多行正则表达式,如果属性的顺序发生变化或响应将作为单行出现,那么它会中断,您可以提出一个简单的可读和可维护的 XPath 查询,在您的情况下它会是这样的:

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

演示:

更多信息:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多