jmeter 3.1中带有unescape字符的xml响应

jmeter 3.1中带有unescape字符的xml响应,jmeter,Jmeter,我对JMeter3.1有点陌生,但我有一个很大的任务要完成 我已经将jmeter配置为可以处理100万个http请求,一切正常 我在日志文件中得到的xml响应带有转义字符,但我希望日志文件中保存的是unescape字符 <httpSample ng="41" na="41"> <responseData class="java.lang.String">&lt;?xml version=&quot;1.0&quot; encoding=&

我对JMeter3.1有点陌生,但我有一个很大的任务要完成

我已经将jmeter配置为可以处理100万个http请求,一切正常

我在日志文件中得到的xml响应带有转义字符,但我希望日志文件中保存的是unescape字符

<httpSample ng="41" na="41">   <responseData class="java.lang.String">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;methodResponse&gt;&lt;params&gt;&lt;param&gt;&lt;value&gt;&lt;struct&gt;&lt;member&gt;&lt;name&gt;avail ableServerCapabilities&lt;/name&gt;&lt;value&gt;&lt;array&gt;&lt;data&gt;&lt;value&gt;&lt;i4&gt;536871488&lt;/i4&gt;&lt;/value&gt;&lt;value&gt;&lt;i4&gt;8&lt;/i4&gt;&lt;/value&gt;&lt;/data&gt;&lt;/array&gt;&lt;/v alue&gt;&lt;/member&gt;&lt;member&gt;&lt;name&gt;negotiatedCapabilities&lt;/name&gt;&lt;value&gt;&lt;array&gt;&lt;data&gt;&lt;value&gt;&lt;i4&gt;0&lt;/i4&gt;&lt;/value&gt;&lt;/data&gt;&lt;/array&gt;&lt;/value&gt; &lt;/member&gt;&lt;member&gt;&lt;name&gt;originTransactionID&lt;/name&gt;&lt;value&gt;&lt;string&gt;1606456&lt;/string&gt;&lt;/value&gt;&lt;/member&gt;&lt;member&gt;&lt;name&gt;responseCode&lt;/name&gt;&lt;value& gt;&lt;i4&gt;139&lt;/i4&gt;&lt;/value&gt;&lt;/member&gt;&lt;/struct&gt;&lt;/value&gt;&lt;/param&gt;&lt;/params&gt;&lt;/methodResponse&gt;</responseData> </httpSample>
我想要的是

<methodResponse><params><param><value><struct><member><name>availableServerCapabilities</name><value><array><data><value><i4>536871488</i4></value><value><i4>8</i4></value></data></array></value></member><member><name>currency1</name><value><string>TZS</string></value></member><member><name>dedicatedAccountDeleteInformation</name><value><array><data><value><struct><member><name>dedicatedAccountID</name><value><i4>1402</i4></value></member><member><name>dedicatedAccountUnitType</name><value><i4>6</i4></value></member><member><name>dedicatedAccountValue1</name><value><string>5368535040</string></value></member><member><name>expiryDate</name><value><dateTime.iso8601>99991231T12:00:00+0000</dateTime.iso8601></value></member><member><name>startDate</name><value><dateTime.iso8601>00000101T12:00:00+0000</dateTime.iso8601></value></member></struct></value></data></array></value></member><member><name>negotiatedCapabilities</name><value><array><data><value><i4>0</i4></value></data></array></value></member><member><name>originTransactionID</name><value><string>1606684</string></value></member><member><name>responseCode</name><value><i4>0</i4></value></member></struct></value></param></params></methodResponse>
请帮忙

顺便问一下,如何将originTransactionID和responseCode保存到csv文件中


请说明一下

您无法按原样保存XML响应,因为需要在XML文件中转义以下5个字符:

' & 因此,如果只需要保存originTransactionID和responseCode,则可以执行以下步骤:

作为返回上述XML的请求的子级添加 配置如下:

引用名称:originTransactionID XPath查询://member/name[text='originTransactionID']/../value/string/text 添加另一个XPath提取器并进行如下配置:

参考名称:responseCode XPath查询://member/name[text='responseCode']/../value/i4/text 将下一行添加到JMeter安装的bin文件夹中的user.properties文件

jmeter.save.saveservice.output_format=csv
sample_variables=originTransactionID,responseCode
下次运行测试时,您将在.jtl结果文件中看到另外两列,它们将为每个请求保存originTransactionID和responseCode值 参考资料:


当你说这5个字符需要转义时,这是否意味着我需要编写另一个脚本来将那些未转义的字符转换为转义字符?在做了一些google搜索之后,他们中的大多数人推荐使用python或perl编写脚本。顺便说一下,非常感谢您关于xpath提取器的建议