-1

我正在尝试使用 jmeter 简化随机性能测试的实现。我们以前做过,但需要很多时间。

问题是,如果我有一定数量的并发用户(基于总访问次数和经过的时间),我假设经过的时间不会改变。但是,如果在压力情况下服务器占用的时间超过预期,用户就会堆积起来,因为一些用户不会在预期的时间内离开。因此,实际的并发将与计算的不同。

传统测试将保留预先建立的虚拟用户(增加与否无关紧要),即使由于服务器响应较慢而导致经过的时间增加。如果服务器响应较慢,jmeter 将执行较少的迭代。我不想那样做,我想在必要时创建更多线程以保持到达率。

有什么办法可以设置用户到达率而不是随着时间的推移在恒定线程上?

4

4 回答 4

1

我习惯性地使用基于到达率的负载强度进行性能测试。您必须考虑下一个问题,因为模型比其他基于虚拟用户的模型更准确,但是您需要克服很多复杂性。

1.- Jmeter需要更换线程调度器,因为默认插件效率低。(不用担心商业产品有同样的问题而且价格昂贵) 2.-你必须建立一个模型到达率。使用经验分布或其他众所周知的方法(如 poisson 、 erlang 等)按时间更改速率。3.- 活跃用户和并发是以下因素的结果:到达率,工作ejecutado,以及工作之间的思考时间的总结。你不能控制变量虚拟用户,没有意义,这是对传统驱动测试方式的改变。比如你可以使用谷歌分析的数据并建立一个随机模型,你不需要设置虚拟用户,因为是测试的结果。当我有一个确定的到达率时,测试会给你答案什么是活跃的用户/会话数。4.- 但是第3点有一个非常重要的问题,因为负载平台比基于虚拟用户的传统测试需要更多的容量。

与复杂度较低但不可靠的旧虚拟用户方法相比,这是一种更准确但更复杂的交易。

我曾经在 B2C 网站上进行这种测试,每小时访问量为 500.000,每小时有 5-7 百万页。使用此负载标签构建准确性测试的唯一方法是使用基于到达率的模型。

于 2015-08-17T15:44:18.150 回答
0

有 2 个选项供您选择:

  1. 内置恒吞吐量定时器
  2. 来自 jmeter-plugins.org 的吞吐量整形计时器

定时器的作用是延迟请求。因此,您创建了过多的线程,然后计时器将延迟它们以达到所需的到达率。

于 2014-07-18T07:22:52.597 回答
0

我认为没有任何直接的方法可以实现您想要的。

但是您可以尝试一下,尽管它不是正确的方法(自定义插件是最好的选择,请检查 jmeter 插件。)

1. keep no of threads very high 
2. set ramp up duration as it will set the arrival rate which you need 
3. set the expected test duration

例子:

假设我想以每秒 2 个用户的到达率进行 10 分钟的测试,因此值将是,

no of threads : 2000
ramup : 600
test duration : 600

另一种选择是Stepping Thread Group Plugin。它应该服务于您的目的。

于 2014-07-18T05:36:41.017 回答
0

我认为以下组合涵盖了 99% 的用例:

  1. Ultimate Thread Group用于智能且轻松地加速、减速和保持负载之间
  2. 恒定吞吐量计时器- 设置准确的所需负载
于 2014-07-18T11:27:04.000 回答