JMeter:在使用恒定吞吐量计时器控制请求时,每秒可选择多少线程/用户

JMeter:在使用恒定吞吐量计时器控制请求时,每秒可选择多少线程/用户,jmeter,load-testing,jmeter-4.0,Jmeter,Load Testing,Jmeter 4.0,我正在使用Jmeter对我的应用程序进行负载测试。我的应用程序支持多种请求类型,每种请求类型都有一个速率。我想以预定义的速率(qps)加载测试应用程序。以下是我编写测试计划的方式: 我有1个线程组/请求类型 每个线程组都定义了一个HTTP请求和一个恒定吞吐量计时器。计时器定义了我希望命中服务器的速率(x/秒) 在这种情况下,线程/用户的数量有多重要 使用10个线程/用户并定义100个请求/秒的速率与使用100个线程/用户并定义100个请求/秒的速率有什么区别?只是线程重用吗?最佳做法是什么?简而

我正在使用Jmeter对我的应用程序进行负载测试。我的应用程序支持多种请求类型,每种请求类型都有一个速率。我想以预定义的速率(qps)加载测试应用程序。以下是我编写测试计划的方式:

我有1个线程组/请求类型 每个线程组都定义了一个HTTP请求和一个恒定吞吐量计时器。计时器定义了我希望命中服务器的速率(x/秒)

在这种情况下,线程/用户的数量有多重要


使用10个线程/用户并定义100个请求/秒的速率与使用100个线程/用户并定义100个请求/秒的速率有什么区别?只是线程重用吗?最佳做法是什么?

简而言之:

它是关于并发性的,这取决于您正在测试的应用程序。示例:如果AUT是一个无状态REST调用,并且您只关心每秒x个事务(tps),那么只要您达到目标命中率,用户数量(jmeter术语中的线程)就不会有多大影响。但是,如果它是一个需要用户维护会话并具有适当上下文用户旅程的web应用程序,那么用户/线程的并发数量是非常重要的,因为我们可以用很少或更多的用户实现目标,根据NFR设计工作负载是非常重要的


阐述了这一概念。我希望我说的有道理。

你需要计算你的用户数量

用于计算在负载测试中使用的并发用户数的公式:

并发用户=(高峰每小时访问次数*平均会话持续时间)/3600


基本上,这取决于您期望的用户数量,当您执行压力测试时,您将尝试重载此数量的用户。

默认情况下,每个JMeter线程都以尽可能快的速度执行采样器

恒定吞吐量计时器用于暂停线程以降低总体执行速度以达到目标吞吐量

如果您有10个虚拟用户,可以每秒执行10个请求,那么如果不增加用户数量,您将无法达到每秒20个请求。但是,您可以将它们的速度降低到每秒5个请求或每秒2个请求

如果您需要以定义的吞吐量运行请求,并且不确定需要多少线程,那么基本上有两个选项:

  • 确保在中提供足够的线程。例如,在不使用任何计时器的情况下运行测试,并查看使用侦听器时吞吐量是什么样子。如果它比需要的高,你就可以走了。如果没有-添加线程,除非它至少与您需要的相等或更高
  • 考虑以下因素的组合

    如果您将“目标并发性”定义为
    ${\uu tst反馈,则可以使用so将这些元素连接起来(jp@gc-吞吐量成形定时器,1001000,50)}
    JMeter最初将使用100个线程,但如果当前虚拟用户数量足以维持吞吐量成形计时器中定义的吞吐量,则JMeter将能够自动添加多达1000个线程

  • 您可以使用安装这两个插件