我使用xpath提取器从soap响应中提取特定值并使用Beanshell后处理器写入csv文件但是在这里,我面临的问题就像我需要来自soap响应的多个值。
请任何人提供如何使用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提取器,那么我将收到错误消息。
答案 0 :(得分:2)
按如下方式配置:
myVar
//points/text() | //reason/text()
它将生成以下JMeter变量:
myVar=43292.65
myVar_1=43292.65
myVar_2=SUCCESS
myVar_matchNr=2
将以下代码放入&#34;脚本&#34;面积:
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解释器在高负载时会遇到性能问题。