【问题标题】:How to extract multiple values using xpath extractor and use it in beanshell post processor?如何使用 xpath 提取器提取多个值并在 beanshell 后处理器中使用它?
【发布时间】:2017-06-19 09:18:57
【问题描述】:

我正在使用 xpath 提取器从肥皂响应中提取特定值并使用 Beanshell 后处理器写入 csv 文件,但在这里,我面临的问题是我需要来自肥皂响应的多个值。

请任何人提供如何使用xpath提取器从soap响应中提取多个值并将其保存在单独的变量中并写入csv文件。

例如:

肥皂反应:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap:Body>
      <ValidateCardResponse xmlns="http://service.clp.eks.com">
         <out>
            <birthDate xmlns="http://wsform.clp.eks.com">01-01-73</birthDate>
            <cardno xmlns="http://wsform.clp.eks.com">23016077</cardno>
            <customerName xmlns="http://wsform.clp.eks.com">gopi</customerName>
            <flag xmlns="http://wsform.clp.eks.com">TRUE@19@FALSE</flag>
            <memberLevel xsi:nil="true" xmlns="http://wsform.clp.eks.com"/>
            <points xmlns="http://wsform.clp.eks.com">43292.65</points>
            <reason xmlns="http://wsform.clp.eks.com">SUCCESS</reason>
         </out>
      </ValidateCardResponse>
   </soap:Body>
</soap:Envelope>

我需要两个参数来为每条记录保存在 csv 文件中,即积分和原因,因为万一卡无效,那么原因将随着卡无效而出现。 请提供如何执行此操作,如果我使用两个 xpath 提取器,那么我会收到错误消息。

【问题讨论】:

    标签: csv xpath soap jmeter


    【解决方案1】:
    1. XPath Extractor 添加为返回上述XML 的请求的子项
    2. 配置如下:

      • 参考名称:任何有意义的名称,即myVar
      • XPath 查询://points/text() | //reason/text()

    它将生成以下 JMeter 变量:

    myVar=43292.65
    myVar_1=43292.65
    myVar_2=SUCCESS
    myVar_matchNr=2
    
    1. 在 XPath 提取器之后添加JSR223 PostProcessor
    2. 将以下代码放入“脚本”区域:

      new File('myFile.csv') << vars.get('myVar_1') << ',' << vars.get('myVar_2') << System.getProperty('line.separator')
      

    有关使用 XPath 语言从 XML、XHTML 和 HTML 响应中提取数据的更多详细信息,请参阅Using the XPath Extractor in JMeter 文章。


    请注意,最好使用Sample Variables 属性将JMeter 变量存储到文件中。如果出于任何原因它不适合您,请考虑使用JSR223 Elements 而不是 Beanshell,因为 Beanshell 解释器在高负载时存在已知的性能问题。

    【讨论】:

    • 非常感谢您的回答,它工作正常,但默认值未在显示 null 的文件中打印,以防肥皂响应中不存在值。
    猜你喜欢
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    相关资源
    最近更新 更多