【问题标题】:I wanted to extract the all the orderNumber values from given xml response in Jmeter我想从 Jmeter 中的给定 xml 响应中提取所有 orderNumber 值
【发布时间】:2017-11-16 08:54:57
【问题描述】:

我想从 JMeter 中的给定 XML 响应中提取所有 orderNumber 值

我正在使用的正则表达式:orderNumber=(".*?")

Xml:

     <?xml version="1.0" encoding="UTF-8"?>
    <ReportExecuted ReportId="4130" >
           <DisplayName>Partner Asset - Landing Page (No Glis Orders) Descending</DisplayName>
           <ExecutedBy>admin</ExecutedBy>
           <ExecutionTime>Thu Nov 16 07:32:29 UTC 2017</ExecutionTime>
           <PageNumber>1</PageNumber>
           <PageSize>10</PageSize>
           <DisplayRecords>1 to 10</DisplayRecords>
           <TotalRecords>1000</TotalRecords>
           <ReportContent>
                          <![CDATA[
    <partnerAssetLandingPage orderNumber="AutoSoapEONID11486" orderDate="2017-07-20T00:00:00"/><partnerAssetLandingPage orderNumber="AutoOrder101" orderDate="2016-11-04T00:00:00"/>

                          ]]>
              </ReportContent>
           </ReportExecuted>

运行 Jmeter 后的响应: 我只得到第一个订单编号值,但我想要所有订单没有值

【问题讨论】:

    标签: regex xml jmeter cdata


    【解决方案1】:

    您的正则表达式没问题,您应该将 Match No. 更新为 -1(或负数),然后通过引用名称更新 get all the values,例如 orderNumber - 使用 orderNumber_1、orderNumber_2、...

    如果匹配数设置为负数,则处理采样器数据中所有可能的匹配。变量设置如下:

    refName_matchNr - 找到的匹配数;可能是 0
    refName_n,其中 n = 1、2、3 等 - 由模板生成的字符串
    refName_n_gm,其中 m=0, 1, 2 - 匹配 n 的组
    refName - 始终设置为默认值
    refName_gn - 未设置
    请注意,这种情况下 refName 变量始终设置为默认值,并且未设置关联的组变量。

    您可以使用ForEach Controller

    它特别适合与正则表达式后处理器一起运行。
    这可以从先前请求的结果数据中“创建”必要的输入变量。通过省略“_”分隔符,ForEach 控制器可用于使用输入变量 refName_g 循环遍历组,也可以使用格式为 refName_${C 的输入变量循环遍历所有匹配项中的所有组}_g,其中 C 是一个计数器变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      相关资源
      最近更新 更多