首页 > 编程知识 正文

最大并发数怎么测试,jmeter最多支持多少并发

时间:2023-05-03 11:02:10 阅读:112271 作者:2409

原标题:如何进行5万并发用户负载测试? 超实用程序详情

作者| Refael Botbol

编辑| rrdmj

本文介绍了运行5万个并发用户测试所需的步骤。 这个测试用户数最多为200万人。

步骤概述

编写脚本;

使用JMeter进行本地测试

BlazeMeter沙盒测试;

使用控制台和引擎设置每个引擎的用户数。

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

使用主从功能实现最大同时量目标。

步骤1 :创建脚本

开始之前,请从JMeter Apache社区网站(http://JMeter.apache.org/)获取最新的jmeter版本。

下载JMeter插件管理器(https://jmeter-plugins.org/wiki/plugins管理器/)。 下载JAR文件后,将其放入JMeter的lib/ext目录中。 然后,启动JMeter并导航到“选项”菜单以查找插件管理器。

脚本可以通过几种方法获得。

使用BlazeMeter Chrome插件记录测试步骤;

使用jmeterhttp(s )测试脚本触发器配置代理、运行测试并记录所有内容;

从一开始就手动操作和构建所有内容。 主要针对功能/QA测试。

如果脚本是通过录制获得的,如上述步骤1和2所示,请注意以下事项

必须更改用户名和密码等参数,或使用包含这些参数的CSV文件,以确保每个用户都是唯一的。

必须使用正则表达式、JSON路径提取器和XPath提取器提取各种元素(如Token-String和Form-Build-Id ),并完成请求(如" AddToCart "和" Login "

可以维护脚本参数化,并使用HTTP请求的默认值等组成部分来方便环境切换。

使用步骤JMeter进行本地测试

启动调试脚本、线程和迭代,并使用View Results Tree、Debug Sampler、Dummy Sampler和打开的日志查看器。

运行所有场景,并返回" true "和" false ",以确保脚本按预期工作。

使用一个线程成功运行脚本后,将线程数从10分钟增加到20。

如果所有用户都希望这是唯一的——结果,会变成这样吗?

有什么错误吗?

如果正在测试注册过程,是否要看看后端——是否通过模板创建了帐户? 它们是唯一的吗?

从摘要报告中可以看到有关测试的统计信息——那有意义吗? 查找平均响应时间、错误和命中率/秒。

脚本准备好后:

删除调试/内存模板和脚本侦听器;

如果正在使用监听程序(如“将响应保存到文件”),请确保路径未被使用。 对于监听程序或CSV数据集配置,请确保未使用本地路径。 而是只使用文件名,就像它与脚本位于同一文件夹中一样。

如果您使用的是自己的JAR文件,请确保上传。

如果使用多个线程组,或者不是默认线程组,请在上载到BlazeMeter之前设置值。

步骤BlazeMeter沙盒测试

如果这是第一次测试,本文65http://community.blaze meter.com /知识库/articles/65152-adding-a-new-jmeter-test -。

沙盒允许您测试脚本和后端,以确保BlazeMeter一切正常。

首先,按灰色按钮。 选择要控制的JMeter引擎,以便完全控制测试参数。

你可能遇到的常见问题如下。

防火墙——确认您的环境对BlazeMeter CIDR列表(随时更新中)开放,并将其注册到白名单中;

确保所有测试文件(如CSV、JAR、JSON和User.properties )都存在;

确保没有使用本地路径。

如果仍然存在问题,请检查日志错误(应该可以下载整个日志)。

沙箱的配置如下。

发动机:仅限控制台(1台控制台、0台发动机) ) ) ) ) ) )。

线程: 50-300

加速时间: 20分钟

迭代:永远

持续时间: 30-50分钟

可以在加速期间获取足够的数据并分析结果,以确保脚本按预期运行。

请查看Waterfall/WebDriver选项卡,确认请求是否正常。 这个时候

候你应该不会遇到任何错误(除非你是有意的)。

另外,还要看一下监控选项卡,看看使用了多少内存和 CPU——这有助你完成步骤 4,到时你可以尝试设置每个引擎的用户数。

第 4 步:使用一个控制台和一个引擎设置每个引擎的用户数量

在确信脚本可以在 BlazeMeter 中完美运行之后,我们需要弄清楚一个引擎可以支持多少用户。

如果你能够使用沙箱数据来确定,那就太好了!

我将为你提供一种方法来解决这个问题,无需查看沙箱测试数据。

将测试配置设置为:

线程数:500

加速时间:40 分钟

迭代:永远

持续时间:50 分钟

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

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

如果你的引擎没有达到 75%的 CPU 利用率或 85%的内存使用率(可以忽略一次性峰值):

将线程数改为 700,并再次运行测试;

提高线程数,直到获得 1000 个线程或 60%的 CPU/ 内存使用率。

如果你的引擎超过了 75%的 CPU 利用率或 85%的内存使用率(可以忽略一次峰值):

注意第一次达到 75%的时间点,然后查看当时有多少用户。

再次运行测试,这次使用从上一次测试中获得的用户数量。

这一次,使用实际测试的加速时间(5 到 15 分钟是一个不错的值),并将持续时间设置为 50 分钟。

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

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

第 5 步:设置和测试集群

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

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

每个控制台最多 14 个引擎是基于 BlazeMeter 的测试得出的结果,可以确保控制台能够处理 14 个引擎的压力。

因此,在这个步骤中,我们将采用步骤 4 的测试,只是将引擎的数量增加到 14。

在测试运行时,请转到监控选项卡,并验证:

不会有引擎超过 75% CPU 或 85%内存限制;

找到控制台标签。转到日志选项卡 ->网络信息,查找控制台的私有 IP,这样就可以找到控制台的名称。它不应达到 75% CPU 或 85%内存限制。

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

在这个步骤结束时,你就会知道:

每个集群可以支持的用户数量;

每个集群可以达到的命中次数。

在负载结果图下的聚合表中查找其他统计信息,获取有关集群吞吐量的更多信息。

第 6 步:使用主从功能达到最大并发量目标

我们已经到了最后一个阶段。

我们已经知道脚本可以正常运行,还知道一个引擎可以支持多少用户以及一个集群可以支持多少用户。

我们假设有这些值:

一个引擎可以支持 500 个用户;

集群将有 12 个引擎;

我们的目标是进行 5 万用户的测试。

因此,我们需要创建 50000(500 * 12) = 8.3 个集群。

我们可以使用 8 个包含 12 个引擎(4 万 8)的集群和一个包含 4 个引擎(另外 2 千)的集群。但是,最好可以像这样分布负载:

我们将为每个集群使用 10 个引擎,而不是 12 个,这样每个集群的用户数可以达到 10 * 500 = 5 千。然后再使用 10 个集群,就可以达到 5 万的规模。

这将有助于我们:

不需要维护两种不同的测试类型;

可以通过简单地复制现有的集群每次增长 5 千(5 千比 6 千更常见);

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

我们现在准备好用 5 万用户创建最终的主从测试:

将测试名称从“My prod test”更改为“My prod test - slave 1”。

我们回到第 5 步,在高级测试属性里将 Standalone 更改为 Slave。

保存,我们现在有九个从集群测试和一个主集群测试。

回到“My prod test -slave 1”。

按复制。

现在,重复步骤 1 到 5,直到创建完所有的九个从集群测试。

回到“My prod test - slave 9”,并按下复制。

将测试名称改为“My prod test -Master”。

转到高级测试属性,并将 Slave 改为 Master。

检查刚刚创建的所有从集群测试并按保存。

针对 5 万用户的主从测试已准备就绪了。按下主测试的开始按钮,将启动 10 个测试(一个主测试和九个从测试),每个测试有 5 千个用户。

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

主测试和从测试的汇总报告将在主测试报告中的一个叫作“Master load results”的新选项卡中找到,打开这个报告就可以看到每个测试的结果。

英文原文:https://dzone.com/articles/how-to-run-a-load-test-of-50k-concurrent-users返回搜狐,查看更多

责任编辑:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。