本文将介绍使用50K并发用户测试轻松运行负载测试所需的步骤(以及最多200万用户的更大测试)。
❶ 写你的剧本

❷ 使用JMeter在本地测试

❸ BlazeMeter SandBox测试

❹ 使用一个控制台和一个引擎设置每引擎用户数量

❺ 设置和测试群集(一个控制台和10-14个引擎)

❻ 使用主/从功能达到最大CC目标
面试总被问高并发负载测试,你真的会么?-LMLPHP

第1步:编写脚本

在开始之前,请确保从JMeter Apache社区获取最新的JMeter版本。

在开始之前,您需要下载JMeter插件管理器。下载JAR文件后,将其放入JMeter的lib / ext目录。然后,启动JMeter并转到“选项”菜单以访问插件管理器。

有很多方法可以获得你的脚本:

如果您的脚本是录制的结果(如步骤1和2),请记住:

保持脚本参数化并使用配置元素(例如HTTP请求默认值),以便在环境之间切换时更轻松。

第2步:本地测试

使用View Results Tree元素,Debug Sampler,Dummy Sampler和打开的Log Viewer(如果报告了一些JMeter错误),使用一个线程,一次迭代开始调试脚本。

遍历所有场景(真实和错误的响应)以确保脚本按预期运行。

使用一个线程成功运行脚本后,将其提升到10-20个线程10分钟并检查:

如果你打算让每个用户都是独一无二的 – 就是这样吗?你有任何错误吗?

如果您正在进行注册过程,请查看您的后端 – 是否根据您的模板创建了帐户?它们是独特的吗?

从摘要报告中,您可以看到有关测试的统计信息 – 它有意义吗?寻找平均响应时间,错误,命中率/秒。

一旦你的脚本准备好了,通过删除任何Debug / Dummy Samplers并删除脚本侦听器来清理它。

第3步:BlazeMeter SandBox测试

如果这是你的第一个测试,你应该检讨这个文章,了解如何在BlazeMeter创建测试。

SandBox它实际上是任何具有多达300个用户的测试,并且使用一个控制台最多只需50分钟。

SandBox的配置允许您测试脚本和后端,以确保BlazeMeter的一切正常。

要做到这一点,首先,按下灰色按钮:JMeter引擎我想要完全控制!完全控制您的测试参数。

您可能遇到的常见问题包括:

如果仍然遇到问题,请查看日志中的错误(您应该可以下载整个日志)。

SandBox配置可以是:

这将允许您在加速期间获得足够的数据(如果您在那里遇到一些问题),您将能够分析结果以确保脚本按预期执行。

您应该查看Waterfall / WebDriver选项卡以查看请求是否正常。此时你不应该得到任何错误(除非你的意图)。

您应该观察监控选项卡以查看使用了多少内存和CPU – 这将帮助您完成步骤4,同时您将尝试设置每个引擎的用户数。

第4步:设置每个引擎的用户数量

既然我们确信剧本在BlazeMeter中完美运行,我们需要弄清楚我们可以将多少用户应用于一个引擎。

如果您可以使用SandBox数据来确定,那太好了!

在这里,我将为您提供一种方法来解决这个问题,而无需回顾SandBox测试数据。

将测试配置设置为:

接下来,使用一个控制台和一个引擎。

运行测试并通过Monitoring选项卡监控测试引擎。

这一次,在实际测试中加入你想要的加速(5-15分钟是一个很好的开始)并将持续时间设置为50分钟。

确保在整个测试过程中不要超过75%的CPU或85%的内存使用率。

为了安全起见,您可以更安全地减少每个引擎10%的线程数。

第5步:设置并测试您的群集

我们现在知道一个引擎可以获得多少线程。在这一步结束时,我们将知道一个集群(测试)可以获得的用户数量。

群集是一个逻辑容器,只有一个控制台和0-14个引擎。即使您可以使用超过14个引擎创建测试,它实际上会创建两个集群(您可以看到将增加的控制台数量)并克隆您的测试。

每个控制台最多14个引擎基于BlazeMeter自己的测试,以确保控制台可以处理14个引擎的压力,这会产生大量数据需要处理。

因此,在此步骤中,我们将从步骤4开始测试并仅更改发动机的数量并将其提升至14。对最终测试(1,2,3等)小时的全长进行测试。测试运行时,请转到监控选项卡并验证:没有一个引擎通过75%的CPU或85%的内存限制。

找到您的控制台标签。如果您将转到“日志”选项卡 – >“网络信息”并查找控制台的专用IP,则可以找到其名称。它不应达到75%的CPU或85%的内存限制。

如果您的控制台达到了该限制,请减少引擎数并再次运行,直到控制台处于这些限制范围内。

在此步骤结束时,您知道:

第6步:使用主/从功能达到最大CC目标

我们已经到了最后阶段。

我们知道脚本正在运行,我们知道一个引擎可以维持多少用户,并且我们知道我们可以从一个群集获得多少用户。

我们假设我们有这些值:

因此,要做到这一点,我们需要创建50,000 (500 * 12)= 8.3个集群。

我们可以使用8个集群的12个引擎(48K)和一个集群,其中有4个引擎(另外2个)。但是,最好像这样分散负载:

我们将使用10代替每个集群12个引擎,因此我们将从每个集群获得10 * 500 = 5K,并且需要10个集群才能达到50k。

这将有助于我们:

如果需要,我们可以随时添加更多。

我们现在准备用50k用户创建我们的最终主/从测试:将测试名称从“我的产品测试”更改为“我的产品测试 – 从属1”。

因此,我们回到第5步中的测试,在高级测试属性下,我们将其从Standalone更改为Slave。

您对50k用户的主从测试已准备就绪。通过按下主站上的启动,您将启动10个测试(一个主站和九个从站),每个测试具有5k个用户。

您可以将每个测试(从站或主站)更改为来自不同的区域,具有不同的脚本/ csv /其他文件,使用不同的网络仿真和/或不同的参数。

您的主服务器和从服务器的汇总报告将在主报告中的新选项卡中找到,称为“主加载结果”,您仍然可以通过打开报告来查看每个单独的测试结果。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

面试总被问高并发负载测试,你真的会么?-LMLPHP

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

面试总被问高并发负载测试,你真的会么?-LMLPHP

 

面试总被问高并发负载测试,你真的会么?-LMLPHP

12-08 23:05