我可以定期在Jmeter中的文件中写入所有POST请求(在该时间范围内)吗?

时间:2014-10-10 13:38:13

标签: jmeter

我有jmeter加载我的Web服务,加载大约每秒2000个事件。 我想记录我的所有要求。有没有办法我可以定期写出我的所有外出请求?基本上我想每隔15分钟写一次csv格式的传出请求? 有可能吗?

我是jmeter的新手,所以详细的答案会有很多帮助

由于

2 个答案:

答案 0 :(得分:0)

您可以将JMeter配置为存储请求详细信息,方法是将以下几行添加到 user.properties 文件中(位于JMeter安装的/ bin文件夹下)

jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.url=true
jmeter.save.saveservice.samplerData=true

因此,如果您在command-line non-GUI mode .jtl上运行JMeter,结果文件将包含所有请求详细信息。

有关各种JMeter属性以及设置/覆盖它们的方法的详细信息,请参阅Apache JMeter Properties Customization Guide

这里仅供参考,其他属性可用于定义哪些值可以存储在结果文件中:

jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.assertion_results_failure_message=false
jmeter.save.saveservice.assertion_results=none
jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
jmeter.save.saveservice.response_data=false
jmeter.save.saveservice.response_data.on_error=false
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.samplerData=false
jmeter.save.saveservice.responseHeaders=false
jmeter.save.saveservice.requestHeaders=false
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
jmeter.save.saveservice.url=false
jmeter.save.saveservice.filename=false
jmeter.save.saveservice.hostname=false
jmeter.save.saveservice.thread_counts=false
jmeter.save.saveservice.sample_count=false
jmeter.save.saveservice.idle_time=false
jmeter.save.saveservice.timestamp_format=ms
jmeter.save.saveservice.timestamp_format=yyyy/MM/dd HH:mm:ss.SSS
jmeter.save.saveservice.default_delimiter=,
jmeter.save.saveservice.default_delimiter=\t
jmeter.save.saveservice.print_field_names=false
jmeter.save.saveservice.xml_pi=<?xml-stylesheet type="text/xsl" href="../extras/jmeter-results-detail-report_21.xsl"?>
jmeter.save.saveservice.base_prefix=~/
jmeter.save.saveservice.autoflush=false

答案 1 :(得分:0)

这是可能的,但非常复杂,并且可能不会像您希望的那样提高吞吐量。

您可以将Beanhell侦听器添加到测试计划中。

在beanshell代码中,您可以测量经过的时间,并将当前样本记录到内存中。

如果经过了足够的时间,您可以将内存样本写入文件并刷新内存。

您似乎正在尝试允许客户端日志记录的性能不影响被测服务器。另外一种记录间隔的方法(这将使您的测试结果看起来像锯齿),您可以尝试使用分布式jmeter测试,并有足够的客户端运行来彻底测试您的服务器,而不是试图让您的客户端更好地执行

然后,您只需使用“保存对文件的响应”即可。监听器。

如果您的测试受到客户端功能的限制,您只需要更多客户端电源来测试服务器,或者查看其他方法来改善客户端/测试计划的性能。