2016-10-27 105 views
1

我试图将我的响应数据保存在JMeter分布式非gui测试中。我希望能够通过JMeter配置完成,以避免修改我的自定义JMeter控制器和测试片段。JMeter保存响应数据 - 非文本响应数据,无法记录:()

对于大多数我的反应,这是在XML中,我得到如下回应:

<responseData class="java.lang.String">Non-TEXT response data, cannot record:()</responseData> 

下面是我在我的user.properties设置:

jmeter.save.saveservice.data_type=true 
jmeter.save.saveservice.label=true 
jmeter.save.saveservice.response_code=true 
# response_data is not currently supported for CSV output 
jmeter.save.saveservice.output_format=xml 
jmeter.save.saveservice.response_data=true 
# Save ResponseData for failed samples 
jmeter.save.saveservice.response_message=true 
#jmeter.save.saveservice.successful=true 
jmeter.save.saveservice.thread_name=true 
#jmeter.save.saveservice.time=true 
#jmeter.save.saveservice.subresults=true 
#jmeter.save.saveservice.assertions=true 
#jmeter.save.saveservice.latency=true 
#jmeter.save.saveservice.connect_time=false 
jmeter.save.saveservice.samplerData=true 
jmeter.save.saveservice.responseHeaders=true 
jmeter.save.saveservice.requestHeaders=true 
#jmeter.save.saveservice.encoding=false 
#jmeter.save.saveservice.bytes=true 
jmeter.save.saveservice.url=true 
#jmeter.save.saveservice.filename=false 
#jmeter.save.saveservice.hostname=true 
#jmeter.save.saveservice.thread_counts=true 
#jmeter.save.saveservice.sample_count=false 
#jmeter.save.saveservice.idle_time=true 

如果这个问题是不可解的,我打算修改我的控制器以getThreadContext()。getPreviousSampler()。getResponseDataAsString()获取响应数据,并将其直接打印到JMeter日志中,但是,如果可能的话,我宁愿这样做更改代码。

是否有任何方法让JMeter转换xml响应数据并通过配置文件将其保存到jtl文件?

回答

2

由于jmeter 2.9,当使用分布式模式时,响应数据被剥离。 这是由strippedBatch bu默认的mode属性控制的。

要获得响应,请将其切换到批处理,但这会影响JMeter的可伸缩性。 您通常应该避免在测试中使用以前的回复。

+0

感谢您的回答。我已经添加了代码以获得以前的响应,并且它工作正常。但是,我将编码它只运行在调试JMeterVariable的存在,所以大多数情况下默认情况下不会使用它。 “批处理”模式是否适合在多达5个代理上运行的测试,每个代理具有数百个线程? – dahui

+0

别担心,我不是那种不标记答案的类型,我只是想澄清一下事情 – dahui

+0

谢谢:)作为补充,您可能需要调整与批处理模式有关的2个配置参数,主要是时间间隔发送之间和发送阈值之间。完整docd的模式属性后,请参阅jmeter.properties –