计算吞吐量(请求/秒)并绘制它

时间:2013-11-29 14:38:17

标签: excel apache jmeter throughput jmeter-plugins

我正在使用JMeter客户端来测试某个服务器上某个工作负载(PHP + MySQL,1页)的吞吐量。基本上我正在进行“容量测试”,随着时间的推移越来越多的线程。

我安装了“统计聚合报告”JMeter插件,这是结果(忽略“响应时间”行): enter image description here

同时我使用“Simple Data Writer”监听器来编写日志文件(“JMeter.csv”)。然后我尝试“手动”计算每一秒测试的吞吐量。

“JMeter.csv”的每一行都有这样的格式:

timestamp       elaspedtime   responsecode   success   bytes
1385731020607   42            200            true      325
...             ...           ...            ...       ...

时间戳是指客户端发出请求的时间,而不是服务器提供请求的时间。所以我只是这样做: totaltime = timestamp + elapsedtime

在下一步中,我将总时间转换为日期格式,例如: 13:17:01

我有超过14K的样本,使用Excel我能够快速完成。

然后我计算了每秒钟的样本量。例如:

totaltime    samples (requestsServed/second)
13:17:01     204    
13:17:02     297
...          ...

当我尝试绘制结果时,我获得了以下图形: enter image description here

您可以注意到它与第一张图片有很大不同。

鉴于第一张图形是正确的,我的公式/程序计算吞吐量的错误是什么?

2 个答案:

答案 0 :(得分:0)

事实证明,这个插件正在绘制一些我不知道的东西......我尝试了很多次,而且我的考虑实际上是正确的。小心这个插件(或检查它的源代码)。

答案 1 :(得分:0)

可以在Jmeter摘要报告中查看吞吐量,您可以通过在“摘要报告”中将测试结果文件保存在xml文件中来计算。

Throughput = Number of samples/(Max (ts+t) - Min ts)*1000
Throughput = (Number of samples/The difference between Maximum and minimum response time)*1000

通过此公式,您可以在摘要报告中计算每个http请求的吞吐量。

示例:

Max Response Time = 1485538701633+569 = 1485538702202
Min Response Time = 1485538143112

Throughput = (2/1485538702202-1485538143112)*1000
Throughput = (2/1505) *1000
Throughput = 0.00132890*1000
Throughput = 1.3/sec

您可以通过示例阅读更多内容(http://www.wikishown.com/how-to-calculate-throughput-in-jmeter/),我对吞吐量计算有了一个很好的了解。