避免对任何Web应用程序进行负载测试可能会带来风险。 为什么? 因为如果程序暴露在过多的负载中,整个系统可能会陷入瘫痪,只能浪费时间和资源,并可能让用户不高兴。 这就是为什么负载测试是必须应用的性能测试的关键部分之一的原因。 幸运的是,有许多可用的负载测试工具可以简化此过程。 但是,许多开发人员和测试人员更喜欢使用JMeter来完成这项工作。 因此,在一些负载测试示例的帮助下,深入研究有关JMeter的更多信息。

 

什么是 Jmeter?

Apache JMeter,或仅使用JMeter,使用100%爪哇语开发,是一种强大且功能繁重的负载测试工具。 该程序可以通过生成并发用户来创建动态测试环境,以识别任何Web或移动应用程序中的瓶颈,从而对动态和静态资源进行加载测试。 当我们谈论静态和动态资源时,静态资源可能是语言和框架,如 JavaScript 或 HTML。 动态资源可以是框架和语言,如AJAX,Flex。

但是,请务必记住,JMeter 不是浏览器,因此只能运行和执行 HTTP 或基于协议的测试。 它不能支持浏览器内的所有操作,也不会像浏览器那样呈现网页或应用程序。 此外,JMeter在分析了来源之后会提供完整的报告,并且可以通过各种解释模式检查结果。 但同样,由于 JMeter 不渲染 JavaScript,因此在结果中给出的用户是响应时间,并且没有从用户的角度了解实际用户体验的详细信息。

 

什么是负载测试?

负载应力性能测试如前所述,负载测试是一种评估应用程序在不同负载(用户/流量)时行为的方法。 简而言之,负载测试有助于理解当20个用户同时使用该平台时,程序(假设网站为“ abc.com”)的性能如何? 同样,如果用户数量从20增加到100,您将获得什么样的性能变化? 甚至数千个用户? 负载测试用于识别开发过程中发生的错误,这些错误是导致特定软件性能不佳或失败的原因。 这有助于开发人员修正错误,以确保一切顺利进行。 相反,您应该知道负载测试有时可能需要一支专业且经验丰富的团队才能获得正确的结果。

 

五个 Jmeter 负载测试案例

这里有五个JMeter负载测试示例,可以帮助您掌握过程。 每个示例都包含一个不同的应用程序,以增进您的理解。 而且,每个JMeter负载测试都需要适当的测试计划。 假设您已经在工作站上安装了JMeter,则可以从这些示例中学习以自行测试该应用程序。 但是,如果您没有专门知识,建议您寻求专家的帮助。 让我们开始吧。

 

示例1 – Google的负载测试

在第一个示例中,当预期有100个用户时,您将看到测试人员使用JMeter为Google.com进行的分析。

 

测试计划和结果

 

步骤1:添加线程组

打开JMeter,然后右键单击“测试计划”选项。 将鼠标悬停在“添加”和“线程”(用户)上,然后选择“线程组”。 您将被带到控制面板,需要在其中添加“线程属性”。

测试计划>加>线程数>线程组

在“线程数”中输入“ 100”,“循环计数”为10,“启动周期”为100。 可是等等! 记住条款。 的线程数说明使用该平台(在本例中为google.com)的用户数量。 的循环计数定义测试将执行多少次。 和加速期通知您应在多长时间后添加一个新用户。 因此,此示例用于通过JMeter进行负载测试(当有100位用户时),每100秒延迟后将包括该用户。

 

步骤2:添加JMeter的元素

在这里,测试人员确定了JMeter元素。 因此,创建”线程组”后,您必须选择”HTTP 请求默认”选项。 为此,请右键单击线程组,将鼠标悬停在“配置元素”上,然后选择“ HTTP请求默认值”。 然后,您必须添加服务器名称或IP地址(在这种情况下, http://www.google.com )。

线程组>配置元素>HTTP请求默认值

之后,右键单击“线程组”,将光标悬停在“添加”上,然后悬停在“采样器”上,然后悬停在“ HTTP请求”上。 如果有任何特定的测试路径,请在HTTP请求控制面板中填写“路径”字段。 例如,在字段中输入“ calendar”,让JMeter创建到Google服务器的URL请求(http:www.google.com/calendar)。

加>取样器>HTTP请求

但是对于此示例,测试人员将path字段留为空白,该信息仅用于您的知识积累。

 

步骤3:添加图形结果

完成后,再次选择”添加”,悬停在”听者”上,然后选择”图形结果”以图形的形式接收测试结果。

加>听众>图形结果

 

步骤4:测试和结果解释

仔细完成所有步骤后,从工具栏中单击“运行”以开始测试程序(Google)。 很快,您将通过图形实时查看测试结果。 测试完成后,您将在JMeter界面的底部看到不同颜色的统计信息。 每种颜色都有其含义。 例如:

蓝色:发送的样本平均值

黑色:发送的样本总数

绿色:吞吐率,显示服务器每分钟处理的请求数(流量/用户)。

:标准偏差

请记住,您必须在所有示例中分析吞吐量(绿色)和偏差(红色)。 为什么? 这是因为吞吐量是代表服务器处理重负载时最重要的参数。 因此,更高的吞吐量和更低的偏差意味着服务器具有出色的性能。

JMeter Graph Results_Google

 

因此,在此 JMeter 负载测试示例中,Google 的吞吐量为每分钟 1,491.193。 这表示Google服务器每分钟可以处理1,491.193个请求。 偏差是577。 因此,证明了谷歌服务器是示例性的并且可以承担最大的负载。

 

示例2 – Yahoo的负载测试

在加入Google之后,让我们按照第一个示例中提到的相同步骤并通过类似的测试计划(100个“线程数”,10个“循环计数”和100个“加速期”)通过JMeter加载Yahoo。

JMeter Graph Results_Yahoo

 

通过整个方法,对于Yahoo获得的结果是:

  • 通普t = 867.326每分钟
  • 偏差= 2689

这意味着服务器每分钟只能处理867.326个请求。 另外,偏差也非常大(2689)。 Yahoo服务器无法处理过多的流量,特别是如果我们将其与Google进行比较。 因此,结果表明,与Google相比,雅虎的表现并不理想。

 

示例3 –演示PetStore的负载测试

 

这是一个示例宠物商店网站(JPetstore)的示例。

 

测试计划和结果

步骤1:添加线程组

第一步类似于示例1。 因此,在JMeter中打开“测试计划”,然后选择“线程组”。

测试计划>加>线程数>线程组

然后在“线程属性”中输入以下值。

  • 线程数(用户) = 20
  • 加速期(以秒) = 120
  • 循环计数=检查为“永远”

 

步骤2:添加JMeter的元素

单击“ HTTP请求默认值”选项(如示例1中所述),然后添加服务器名称或IP地址( http:// localhost:8080 / actions / Catalog.action )。

线程组>配置元素>HTTP请求默认值

注意:JPetstore是一个演示站点,测试人员可以在其测试环境中使用它,因此,它不能在Internet上访问,因为它可以在个人服务器(localhost)上使用。 在此示例中没有使用任何路径。 但是,您可以添加任何要在其上运行JMeter负载测试的地址。 例如 www.google.com要么www.yahoo.com

 

步骤3:添加图形结果

转到“侦听器”以选择“图形结果”以获取视觉效果。

加>线程组>图形结果

 

步骤4:测试和结果解释

JMeter Graph Results_PetStore

 

在这种情况下,吞吐量为每分钟89.871,偏差为142(大于吞吐量)。 因此,该图表明JPetstore无法处理负载。

 

示例4 – JMeter Apache的负载测试

本示例是使用Graph结果进行解释来加载测试JMeter Apache(jmeter.apachi.org)的。

 

测试计划和结果

 

步骤1:添加线程组

与前面的示例类似,打开“测试计划”,然后单击“线程组”。

测试计划>加>线程数>线程组

在“线程属性”中输入以下值:

  • 线程数(用户) = 100
  • 加速期(以秒) = 100
  • 循环计数= 20

 

步骤2:添加JMeter的元素

现在创建HTTP请求默认值,就像前面示例中显示的一样。

线程组>配置元素>HTTP请求默认值

对于这种情况,测试人员已使用“路径”为下载页面创建了一个请求(download_jmeter)。 因此,请在“路径”字段中输入请求。

加>取样器>HTTP请求

 

步骤3:添加图形结果

将鼠标悬停在“侦听器”上以选择“图形结果”以获取视觉效果。

加>线程组>图形结果

 

步骤4:测试和结果解释

JMeter Graph Results_JMeter Apache

 

在这种情况下,偏差为195,吞吐量为1,136.719(大于偏差)。 这意味着下载页面每分钟可以管理1,136.719负载(请求/用户),这非常令人印象深刻。

 

示例5 –电子商务网站的负载测试

当要对电子商务应用程序进行负载测试时,您必须为常规销售以及季节性销售(如黑色星期五)做好准备,因为这些事件吸引了更多的客户,这意味着负载(访客)的数量可能会增加。 考虑到仍在开发一个电子商务平台,您必须通过设计唯一用户来执行JMeter负载测试。

 

测试计划和结果

 

第1步-切实设置渠道

对于电子商务网站,通常客户会访问主页,查找产品,将其添加到购物车,然后结帐。 现在,对于本示例,如果您密切关注该软件,则将找到“吞吐量控制器”选项,在其中您必须设置吞吐量,以及“线程”选项,该选项可以在“线程组”下看到。界面左侧的下拉面板。 这些选项有助于定义用户比例。 因此,您必须在两个选项中输入相同的值。

对于此特定示例,测试人员有100%的虚拟用户访问主页,而90%的用户搜索特定产品。 在90%的用户中,有60%可能会将产品添加到购物车,只有35%的用户会结帐并完成购买过程。 由于测试是基于假设的,因此将吞吐量和漏斗设置为90%。

 

步骤2:增加思考时间

为了获得真实的结果,JMeter允许您添加“思考时间”,该时间定义了实际用户选择产品所需的时间。 这些被非正式地称为暂停,必须将它们包含在测试用例中以确保结果接近实际。

不要添加1或2秒的延迟,因为那是不现实的。 因此,在此示例中,测试人员在“线程延迟属性”中为随机延迟设置了750毫秒,并将恒定延迟设置为200毫秒。 所有操作均通过控制面板上的“统一随机计时器”完成。

 

步骤3:设置线程组参数

就像示例1一样,您必须通过单击“线程组”选项来包括“线程数”,“加速期”和“循环计数”。 这是此示例的属性:

  • 线程数(用户): 100
  • 加速周期(以秒为单位): 1个
  • 循环计数:50

 

步骤3:创建唯一的虚拟用户

此步骤至关重要。 您必须使用唯一的名称,用户ID,密码,联系方式以及结帐时所需的所有信息来列出用户列表。 另外,您必须将产品关键字添加到列表中,以允许虚拟用户的行为与真实用户相同。 此外,请确保要包含在列表中的信息在网站上存在。 如果平台的内容为零,则JMeter负载测试结果将毫无意义。

JMeter_Unique Virtual Users

 

完成列表后,将其存储为CSV文件,然后在负载测试期间将其导入JMeter。

 

步骤4:添加图形结果

您必须添加“图形结果”以图形方式查看结果。 您可以按照示例1的“步骤3”添加图形结果。

 

步骤5:测试和结果解释

运行测试后,将为您提供测试报告。

JMeter Graph Results_Ecommerce

 

上面的视觉表示显示吞吐量为64.186 /分钟,而偏差为122(大于吞吐量)。 这意味着电子商务网站无法在一分钟内处理100个用户,并且只能处理比预期更少的负载。 因此,您必须纠正错误以确保网站将绕过负载测试。

注意:根据一些因素,例如您的CPU能力,测试环境,互联网速度等,JMeter负载测试可以产生不同的结果。 这就是为什么建议让专业人员进行测试,因为他们拥有完善的资源,最终可以显示出真实的结果。

 

指针

上面的JMeter负载测试示例是使用两个不同版本的JMeter得出的,因此,如果在已安装的版本中找到不同的术语,请不要大惊小怪。 以上所有结果均通过“图形结果”进行解释。 尽管如此,您还可以使用其他“侦听器”来描述结果,例如:

  • 汇总报告
  • 聚合图
  • 查看表中的结果
  • 以树形查看结果
  • 生成摘要结果

 

结论:五个 Jmeter 负载测试示例

JMeter是用于对Web应用程序进行负载测试的工具,以了解它们可以实时处理的并发用户数。 该测试被应用于包括Google和Yahoo在内的五个不同的程序,以确定承载能力。 此外,每个示例的结果都使用“图形结果”侦听器进行解释。 尽管如此,这是一个复杂的过程,通常需要专业的监督来确保正确的结果,此后可帮助纠正应用程序中的瓶颈。

因此 LoadView 是一个值得信赖的负载测试平台,可以确保可靠的结果,并且不需要在硬件、时间和精力方面进行大量投资。 今天尝试负载视图免费试用。 如果您有任何问题,您可以 24/7 联系我们的工程师 ,回答您的问题并解决您的所有负载测试问题。

最后,请务必将对网页和 Web 应用程序的持续监控纳入现场制作环境中。 您的 Web 应用程序和网页依赖于各种或资源。 确保您和您的团队在即时问题出现时得到通知。 Dotcom-Monitor 平台提供解决方案和功能,以便在发生任何错误或性能问题时快速设置监控设备和警报,使您的团队能够在其他用户受到影响之前快速排除故障并解决任何问题。 从多特科姆监视器了解更多有关 监控解决方案 的了解。