我仍然对此处显示的一些JMeter日志感到困惑。有人可以告诉我这个吗?
以下是JMeter为我的测试生成的日志。
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary + 1 in 00:00:02 = 0.5/s Avg: 1631 Min: 1631 Max: 1631 Err: 0 (0.00%) Active: 2 Started: 2 Finished: 0
summary + 218 in 00:00:25 = 8.6/s Avg: 816 Min: 141 Max: 1882 Err: 1 (0.46%) Active: 10 Started: 27 Finished: 17
summary = 219 in 00:00:27 = 8.1/s Avg: 820 Min: 141 Max: 1882 Err: 1 (0.46%)
summary + 81 in 00:00:15 = 5.4/s Avg: 998 Min: 201 Max: 2096 Err: 1 (1.23%) Active: 0 Started: 30 Finished: 30
summary = 300 in 00:00:42 = 7.1/s Avg: 868 Min: 141 Max: 2096 Err: 2 (0.67%)
Tidying up ... @ Fri Jun 09 04:19:15 IDT 2017 (1496971155116)
此日志是否意味着[最后一步]触发了300个请求,整个测试的00.00:42秒,7.1个线程/秒或7.1个请求/秒被触发?
我如何确保增加TPS?在不同的站点中进行了相同的测试,并且他们在相同的测试和同一服务器上获得132TPS。有人可以对此有所启发吗?
答案 0 :(得分:1)
在此处,请求总数为300.吞吐量为每秒7个请求。这些300个请求由线程组配置中给定数量的线程生成。您还可以在日志结果中查看活动线程的数量。这些线程变为活动状态取决于您的加速时间。
加速时间是用户或线程到达应用程序的速度。
选中此示例:How should I calculate Ramp-up time in Jmeter
您可以在脚本中提供足够的持续时间并永远检查循环计数,以便在测试完成之前,所有线程都将在应用程序服务器中访问这些请求。
当所有线程在服务器上变为活动状态时,它们将在服务器中命中这些请求。
要增加TPS,您必须增加线程数,因为这些线程将在服务器中达到您想要的请求。
它还取决于您的请求的响应时间。
假设,
如果您有500个虚拟用户且应用程序响应时间为1秒 - 您将获得500 RPS
如果您有500个虚拟用户且应用程序响应时间为2秒 - 您将获得250 RPS
如果您有500个虚拟用户且应用程序响应时间为500毫秒 - 您将获得1000 RPS。
答案 1 :(得分:0)
首先,一点理论:
JMeter启动线程,尽可能快地执行采样器,并每秒生成一定量的请求。此“每秒请求数”值取决于两个因素:
JMeter Summarizer没有说明完整的故事,我建议从.jtl结果文件中生成HTML Reporting Dashboard,它会提供更全面的负载测试结果数据,这更容易分析在表格和图表中,它可以简单地完成:
jmeter -g /path/to/testresult.jtl -o /path/to/dashboard/output/folder
查看当前结果,您获得了7.1 请求秒的最大吞吐量,平均响应时间为868毫秒。
因此,为了获得更多“每秒请求数”,您需要增加“虚拟用户”的数量。如果增加虚拟用户数并且“每秒请求数”没有增加 - 这意味着您确定了所谓的saturation point并且您的应用程序无法处理更多。