当前位置: 首页 > 知识库问答 >
问题:

JMeter如何构建可靠的负载/压力测试

百里默
2023-03-14

我一直在寻找一个好的资源,可以说明如何创建可靠的负载/压力测试,但我一直找不到任何东西。

假设我想测试一个用于销售书籍的应用程序

事实证明,销售额最高的一天是平安夜(12月24日),最高峰值为每分钟21笔销售。仔细观察这些结果,确定每秒有2笔销售的最大峰值,如下图所示。

考虑到上面提到的所有结果,这就是我目前为止所尝试的:

负载测试:

>

  • 线程数:2

    爬坡周期:1 秒

    循环计数:永久

    持续时间: 3600 秒(1 小时)

    压力测试:

    > 线程数:4(增加了100%)

    爬坡周期:1 秒

    循环计数:永久

    持续时间: 3600 秒(1 小时)

    现在你知道我尝试了什么,我想问你一些问题:

      < li >如何创建负载和压力测试,使其可靠?你考虑哪些事情? < li >增加线程数量,但保持上升周期不变是否正确? < li >您认为使用一个小时的持续时间可以吗? < li >在我的压力测试中,我将线程数量增加了100%,您对此有何看法?我应该使用更高的值吗?或者100%的增加可能太多了?

    提前致谢。

  • 共有1个答案

    侯博易
    2023-03-14

    嗯,相当复杂的问题。。。

    我通常开始写下一个场景,即一系列应该由用户完成的动作。在你的情况下,最后的行动是购买书籍,但之前可能还有很多事情要做,比如浏览目录,做一些搜索,选择标题,注册个人数据等。

    深入进行站点统计分析会非常有用。

    一旦你有了一个运行的脚本,你就可以设置html" target="_blank">定时器,让它们模拟用户行为。

    所以你会发现这个脚本花费的时间远远超过1秒。可能,在现实世界中,用户在购买一本书之前至少会在一个网站上花5分钟,但是要再次与营销人员核对这些数据。

    假设每个循环需要5分钟,这就需要300秒。如果你想达到1次销售/秒,你需要300个线程才能达到。

    如果你把所有线程都启动,你将测试一个非常不切实际和悲观的情况,所有300个用户将同时购买同一本书。因此,您必须随机化所有内容:搜索,书籍列表,计时器,以便每个用户看起来都非常独立并且与另一个用户不同。

    一旦你做到了这一点,你就完成了第一点。

    2)你可以使用rampup time来控制启动所有线程所需的时间。根据我的经验,每秒5个线程是一个安全的数字。

    3)同样,这取决于你正在构建的用户模型:如果基本脚本需要5分钟,即使30-40分钟对我来说也是一个节省的持续时间,但是YMMV。

    4)这在很大程度上取决于测试的目标。尝试向您的客户澄清这一点。我一般都是用目标负载的60%、80%、100%、120%做测试,但是每种情况都不一样。此外,还要考虑响应时间目标和错误率目标:如果较低的负载达不到目标,那么使用较高的负载是没有意义的。

     类似资料:
    • 嗨,我是JMeter的新手,我知道如何使用JMeter执行负载测试。我试图弄清楚压力测试或容量测试是如何通过JMeter执行的。是不是通过逐渐增加JMeter中的线程数,我们可以确定何时出现性能问题,并获得阈值,在阈值以上运行测试。那它会做压力测试吗? 在如何执行压力测试和能力测试与Jeter工具混淆。

    • 本文向大家介绍压力测试和负载测试的区别相关面试题,主要包含被问及压力测试和负载测试的区别时的应答技巧和注意事项,需要的朋友参考一下 负载测试是模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈、内存泄漏、不能实时同步等问

    • 我想进行压力测试,从预期的用户数开始(或从1个虚拟用户开始),然后逐渐增加负载,例如10个线程、20个线程等等…。100个线程,直到响应时间开始超过可接受的值或开始出现错误。但是对于所有这些测试运行,我应该增加爬升周期(秒),还是所有测试都保持不变?图片如下:

    • 我们目前对应用程序的负载测试是使用jMeter完成的,到目前为止运行良好。我们有三个不同的线程组,可以通过命令行标志分别启用和配置。还可以从命令行配置线程数和目标吞吐量。 我正在寻找的是为每个线程组编程负载场景的可能性。通常jMeter启动所有线程,然后尝试达到其目标吞吐量速率。我想要实现的如下:我配置目标吞吐量速率为每秒500个请求,启动速率为20,增量为20,持续时间为5分钟。jMeter应该

    • 本文向大家介绍Apache ab并发负载压力测试实现方法,包括了Apache ab并发负载压力测试实现方法的使用技巧和注意事项,需要的朋友参考一下 ab命令原理 Apache的ab命令模拟多线程并发请求,测试服务器负载压力,也可以测试nginx、lighthttp、IIS等其它Web服务器的压力。 ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造

    • 我正在使用JMeter对一堆API(例如用户服务、播放器服务等)进行负载测试(基线、容量、寿命)。这些服务中的每一个都有几个endpoint(例如创建、更新、删除等)。我正在尝试找出一种在JMeter中组织我的测试计划的好方法,以便我可以加载测试所有这些服务。 1)为每个API创建一个单独的JMeter测试计划(jmx),而不是创建一个JMeter测试计划并添加线程组,如“用户服务线程组”、“播放