本文共 3535 字,大约阅读时间需要 11 分钟。
本文将介绍运行5万并发用户测试所需要的步骤(该测试用户量最多可达200万)。
在开始之前,请先从JMeter Apache社区网站()获取最新的JMeter版本。
下载JMeter插件管理器()。下载好JAR文件后,将其放入JMeter的lib/ext目录。然后,启动JMeter,并转到“选项”菜单,找到插件管理器。
你可以通过多种方式获取脚本:
如果你的脚本是通过录制得到(如上面的步骤1和2),请记住:
开始调试脚本,一个线程,进行一次迭代,使用View Results Tree、Debug Sampler、Dummy Sampler和打开的Log Viewer(以防出现JMeter错误)。
运行所有的场景(返回true和false),确保脚本可以按预期正常运行。
在使用一个线程成功运行脚本后,将线程数提升到10到20个,时间为10分钟:
在脚本准备好之后:
如果这是你的第一次测试,应该阅读一下这篇文章(),了解如何在BlazeMeter中创建测试。
沙箱允许你对脚本和后端进行测试,确保BlazeMeter一切正常。
首先,按下灰色按钮:选择要控制的JMeter引擎,以便完全控制测试参数。
你可能会遇到的常见问题包括:
如果还有问题,请查看日志中的错误(你应该可以下载整个日志)。
沙箱配置可以是这样的:
你可以在加速期间获得足够的数据,分析一下结果,确保脚本按预期执行。
你应该看一下Waterfall/WebDriver选项卡,看看请求是否正常。这个时候你应该不会遇到任何错误(除非你是有意的)。
另外,还要看一下监控选项卡,看看使用了多少内存和CPU——这有助你完成步骤4,到时你可以尝试设置每个引擎的用户数。
在确信脚本可以在BlazeMeter中完美运行之后,我们需要弄清楚一个引擎可以支持多少用户。
如果你能够使用沙箱数据来确定,那就太好了!
我将为你提供一种方法来解决这个问题,无需查看沙箱测试数据。
将测试配置设置为:
接下来,使用一个控制台和一个引擎。
运行测试,并通过监控选项卡监控测试引擎。
如果你的引擎没有达到75%的CPU利用率或85%的内存使用率(可以忽略一次性峰值):
如果你的引擎超过了75%的CPU利用率或85%的内存使用率(可以忽略一次峰值):
为了安全起见,可以为每个引擎减少10%的线程数。
我们现在知道一个引擎可以支持多少线程。在这一步结束时,我们将知道一个集群(测试)可以支持的用户数量。
集群是一种逻辑容器,只有一个控制台和0到14个引擎。当使用超过14个引擎时,它实际上会创建两个集群(控制台数量会增加)并克隆你的测试。
每个控制台最多14个引擎是基于BlazeMeter的测试得出的结果,可以确保控制台能够处理14个引擎的压力。
因此,在这个步骤中,我们将采用步骤4的测试,只是将引擎的数量增加到14。
在测试运行时,请转到监控选项卡,并验证:
如果控制台达到了这些限制,请减少引擎数量,并再次运行测试,直到控制台处于这些限制范围内。
在这个步骤结束时,你就会知道:
在负载结果图下的聚合表中查找其他统计信息,获取有关集群吞吐量的更多信息。
我们已经到了最后一个阶段。
我们已经知道脚本可以正常运行,还知道一个引擎可以支持多少用户以及一个集群可以支持多少用户。
我们假设有这些值:
因此,我们需要创建50000(500 * 12) = 8.3个集群。
我们可以使用8个包含12个引擎(4万8)的集群和一个包含4个引擎(另外2千)的集群。但是,最好可以像这样分布负载:
我们将为每个集群使用10个引擎,而不是12个,这样每个集群的用户数可以达到10 * 500 = 5千。然后再使用10个集群,就可以达到5万的规模。
这将有助于我们:
我们现在准备好用5万用户创建最终的主从测试:
针对5万用户的主从测试已准备就绪了。按下主测试的开始按钮,将启动10个测试(一个主测试和九个从测试),每个测试有5千个用户。
你可以将每个测试(从测试或主测试)更改为来自不同的区域,具有不同的脚本/csv/其他文件,使用不同的网络模拟器或不同的参数。
主测试和从测试的汇总报告将在主测试报告中的一个叫作“Master load results”的新选项卡中找到,打开这个报告就可以看到每个测试的结果。
英文原文:
转载地址:http://zikpa.baihongyu.com/