0

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

我安装了“Statistical Aggregate Report”JMeter 插件,结果如下(忽略“响应时间”行): 在此处输入图像描述

同时我使用“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
...          ...

当我尝试绘制结果时,我得到了以下图形: 在此处输入图像描述

如您所见,它与第一个图形有很大不同。

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

4

2 回答 2

0

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

于 2013-12-05T19:42:55.663 回答
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/),我对吞吐量计算有了一个好主意。

于 2017-01-30T10:44:28.213 回答