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

JMeter-每秒实现所需请求

壤驷凯
2023-03-14

使用JMeter中的“bzm-Concurrency Thread Group”和“Constant through Timer”组合,我很难实现所需的“每秒请求数”。

结构

我的测试结构如下:

Thread组1

>

  • 恒定吞吐量定时器

    HTTP请求

    线程组2

    • 恒定吞吐量计时器
    • HTTP请求

    Thread组3

    • 恒定吞吐量计时器
    • HTTP请求

    Thread组4

    • 恒定吞吐量计时器
    • HTTP请求

    数字

    我希望为每个线程组实现160个并发用户。

    线程组1我的目标是每秒发出350个请求,其他线程组的目标是每秒发出160个请求。

    线程组将160作为“目标并发”。对于线程组1,恒定吞吐量计时器具有21000(350转/秒*60=21000每分钟)。恒定吞吐量计时器对其他计时器的吞吐量为9600(160 rpm*60=9600/分钟)。

    它们都具有计算吞吐量基于:仅此线程

    对于线程组2-4,我目前只能获得大约80 rps的吞吐量,对于线程组1,吞吐量不到10。

    我已经允许JMeter使用4GB的RAM,在测试过程中我没有使用所有这些。当我删除所有吞吐量计时器时,我可以实现高达14k rps的吞吐量。

    我错过什么了吗?有没有更好的方法来实现我期望的吞吐量?

  • 共有1个答案

    张茂勋
    2023-03-14

    未能达到期望的每秒请求数的原因可能是:

    1. 线程组中没有足够的线程

    关于第1点,请注意,恒定吞吐量计时器只能暂停线程,以便将JMeter的吞吐量限制为每分钟所需的请求数。

    如果您使用并发线程组,那么切换到吞吐量成形计时器会更有意义,该计时器可以通过反馈循环连接到并发线程组,以便JMeter能够启动额外的线程以实现所需的RPS速率。

    您可以使用JMeter Plugins Manager安装吞吐量整形定时器

    关于点2:确保您遵循JMIT最佳实践并监视JME运行的机器上的基线OS健康度量,如果缺少CPU或RAM,则可能需要考虑分布式测试。

    关于第3点:与第2点相同的方法使用分析工具来查看应用程序花费最多时间的地方

     类似资料:
    • 如何每秒触发10个请求,而不是等待前面的线程在jmeter中完成。 需要打1000次, 当前线程组中的以下配置,用户数:10循环:100 我猜线程正在等待响应,即使在第二秒之后。 但是我需要每秒发出10个请求,不管响应如何。 恒定吞吐量计时器将有助于做到这一点?如果是这种情况,我应该提供什么配置。 非常感谢您的帮助。。

    • 问题内容: 我有这段代码,但是当有人在我的网站上时,值可能会更改。我需要每30秒左右更新#finance div。能做到吗? 问题答案: 您可以将代码放在这样的单独函数中: 然后设置一个计时器,每30秒调用一次该函数: 祝好运!;)

    • 问题内容: 我有一个ajax调用到一个php文件。我正在收到结果。现在,我正在研究是否有可能使ajax请求每1秒自动执行一次。我将结果发布到名为的输入字段中。如何每三秒钟执行一次ajax调用而不必调用该函数? 问题答案: 您可能要考虑的是服务器发送事件(SSE) 这是一种HTML5技术,JavaScript可以通过该技术“ 长期轮询 ”服务器端点(您的PHP文件)以查看是否发生了任何更改。长轮询基

    • 问题内容: 如何使用aiohttp在客户端设置每秒最大请求数(限制请求数)? 问题答案: 我在这里找到了一种可能的解决方案:http : //compiletoi.net/fast-scraping-in-python-with- asyncio.html 同时执行3个请求很酷,但是同时执行5000个则不太好。如果您尝试同时执行太多请求,则连接可能会开始关闭,甚至可能被网站禁止。 为避免这种情况,

    • 我在SpringWeb应用程序中有一个原型范围的bean(我使用的是Spring注释),我们称之为MainBean,它通过依赖注入使用IOtherBean的一种实现。 我的问题是,直到运行时我们才知道我们需要使用哪个实现。当我们调用MainBean的一个方法(比如doStuff(字符串参数))时,它应该根据参数值来决定选择哪个实现。 目前,我只是通过将Application Context自动加载

    • 我正在写一个网络爬虫,运行并行抓取许多不同的域。我想限制每秒向每个域发出的请求数量,但我不关心打开的连接总数,也不关心跨所有域发出的每秒请求总数。我想最大限度地增加打开连接和每秒请求的总数,同时限制对单个域的每秒请求数。 我可以找到的所有现有示例(1)限制打开连接的数量,或(2)限制在fetch循环中每秒发出的请求总数。例子包括: aiohttp:速率限制并行请求 它们都不做我要求的事情,即限制每