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

关于JMeter测试计划方法结构的建议

从渊
2023-03-14

我是Jmaeter的新手,目前正在尝试充分利用它来创建API性能测试计划。

让我们考虑以下场景。

我们有一个APi,它返回数据,例如一个或多个零件的零件可用性和订单详细信息。

我想分析api在不同负载模式下的响应时间。

假设我们有 5 个用户。-每个用户向 API 发送一系列重复的请求。-每个用户发出的请求仅对该用户是唯一的。即用户 1 请求部分 a、b、c。用户 2 请求部分 d、e、f...等等

-所有用户都在同时发送他们的请求。

我解决这个问题的方式是为每个用户创建5个单独的线程组。每个线程组中都有每个用户发送的特定 http 请求。每个http请求都由其自己的循环控制器控制,其中我设置了每个请求要发送的次数

由于我希望所有用户同时发送他们的请求,因此我在主测试计划中取消选中了“连续运行线程组”。测试计划一目了然,如下所示:测试计划视图

因为我是使用Jmeter和性能测试的新手,所以我对我的方法有几个问题:

> < li>

就增加我希望测试的用户数量而言,我构建测试计划的方式是否合适且可维护?或者,如果一个线程组有5个子循环控制器,每个子循环控制器都包含用户特定的请求体数据,会不会更好?

在我当前的设置中,每个线程组使用默认的1秒爬坡时间。我认为这是可以的,因为每个线程组只代表一个用户。然而,我认为这可能会导致每次测试运行的启动延迟。有没有其他更好的方法来处理这个问题,比如使用调度程序或增加每个线程组的爬坡时间,这样它们就不会完全在同一时间启动?

提前感谢您的任何建议

共有2个答案

吴凯
2023-03-14

>

  • 首先,您的测试需要真实,它应该尽可能接近真实的用户(或用户组)。如果测试做到了这一点,这是一个好的测试,反之亦然。类似于:

    >

  • 如果用户 1 和 User2 代表 2 个不同的用户组(如 User1 已通过身份验证,用户 2 未经过身份验证,或者 User1 是管理员,User2 是来宾),则应进入不同的线程组。

    最好使用线程组迭代而不是循环控制器,因为一些测试元素(如HTTP Cookie Manager)具有Clear Cookie each Iteration等设置,这些设置不尊重循环或控制器产生的迭代,它们只考虑线程组驱动的迭代

    保证同时发送请求的唯一方法是将它们放在一个线程组中,并使用同步定时器

    当涉及到实际负载测试时,您应该始终逐渐添加负载,以便将各种指标(如响应时间、吞吐量、错误率)与虚拟用户数量的增加相关联。应该对“斜坡下降”应用相同的方法,您不应该立即关闭负载,以便能够看到应用程序在加载后如何恢复。您可能希望使用一些通过JMeter插件项目提供的自定义线程组,例如:

    • 步进Thread组
    • 终极线程组

    它们提供了灵活方便的方式来设置所需的负载模式。

  • 扶冠宇
    2023-03-14

    你的方法是正确的。

    如果希望请求并行,则它们必须位于不同的线程组中。每个线程组都应该为用例建模。在您的案例中,用例是请求的特定组合。

    通过运行测试足够长的时间,您将不会感受到加速时间的影响。

     类似资料:
    • 主要内容:第1步:启动JMeter窗口,第2步:添加/删除测试计划元素,第3步:加载并保存测试计划元素。,第4步:配置树元素。,第5步:保存JMeter测试计划。,第6步:运行JMeter测试计划。,第7步:停止JMeter测试计划。,第8步:检查JMeter测试计划执行日志。可以将测试计划可视化为用于运行测试的JMeter脚本。测试计划由测试元素组成,例如线程组,逻辑控制器,样本生成控制器,监听器,定时器,断言和配置元素。 每个测试计划中至少应有一个线程组。 我们可以根据要求添加或删除元素。

    • 主要内容:测试计划注意事项 -可以将测试计划可视化为用于运行测试的JMeter脚本。 测试计划由测试元素组成,例如线程组,逻辑控制器,样本生成控制器,监听器,定时器,断言和配置元素。 测试计划包含执行脚本的所有步骤。 测试计划中包含的所有内容都按照从上到下的顺序执行,或者按照测试计划中定义的顺序执行。 下图给出了测试计划的目录级别。 测试计划注意事项 - 在运行整个测试计划之前,应保存测试计划。 JMeter文件或测试计划以扩

    • 在本节中,我们将学习如何编写一个简单的测试计划来测试Java Messaging Service(JMS)。 出于测试目的,我们使用Apache ActiveMQ。有各种JMS服务器,如:glassfish3,IBM WebSphere MQ(以前称为MQSeries),Tibco等。 在继续本节之前,请按照以下简单步骤在系统上安装Apache ActiveMQ。 从以下链接下载最新版本的Apac

    • 主要内容:创建JMeter测试计划,添加采样器,添加监听器,保存并执行测试计划,验证输出在本节中,我们将学习如何创建测试FTP站点的基本测试计划。 为了演示测试目的,我们将使用公共可用的FTP位置,可以使用它来测试文件的下载。 您可以使用市场上现有的任何可用的演示FTP位置。我们使用URL下的FTP位置: https://dlptest.com/ftp-test/ 下图显示了上述URL时打开的网页。 单击FTP测试部分下的URL: ftp://ftp.dlptest.com/ 。 它

    • 主要内容:创建JMeter测试计划,添加采样器,添加监听器,验证输出在本节中,将学习如何创建测试网页的基本测试计划。 出于演示测试目的,我们将测试URL - https://www.xnip.cn/ 的网页性能。 创建JMeter测试计划 进入到JMeter安装bin文件夹,双击文件以启动JMeter界面。 单击“Test Plan”节点。 将测试计划重命名为Demo Test。 选择节点并右键单击所选项目。 鼠标悬停在“Add”选项上,然后将显示元素列表。 选择

    • 我想以编程方式从一组动态的URL和表单数据生成基本的Jmetm测试计划(不使用Jmetm GUI手动)。我可以使用Jmetm API来做到这一点吗? 它已经在某个地方解释过了吗? 我只需要点开始。 当然,我可以对测试计划XML格式进行逆向工程,然后编写我自己的自定义测试计划生成器,但这很容易出错,每当格式发生变化时,我的生成器都需要更新。