【问题标题】:How to do stress test with Jmeter step by step如何一步一步用Jmeter做压力测试
【发布时间】:2015-01-12 18:13:37
【问题描述】:

我想对网站进行压力测试。主要目的是根据并发用户数和每秒点击数 (RPS) 找到性能下降点。

我使用了终极线程组,并将用户数设置为 200,上升时间为 200 秒。 我已将吞吐量整形计时器添加到最终线程组,并将每秒请求数设置为 8。(如果我只有一个采样器每秒命中数得到很好的控制,它是 8 次命中/秒。如果我有多个采样器命中不受控制,甚至达到 20、25、40 等。我最终使用了恒定吞吐量计时器)

让我们回到压力测试。要找到性能下降点,就并发用户数和每秒点击数而言,我应该如何模拟负载。例如:我的网站的预期降级点是每秒 12 个请求的 300 个用户,网站的平均响应时间是 800 毫秒。但它可以支持更多用户,可能是 500 个用户,可能是 15 RPS。 如果我想在每个样本之间添加一些延迟怎么办,我应该在哪里添加计时器?到线程组还是采样器?

谢谢。

【问题讨论】:

    标签: concurrency jmeter load-testing performance-testing stress-testing


    【解决方案1】:

    定时器有其作用域。来自Timers documentation

    请注意,计时器在发现它们的范围内的每个采样器之前之前处理;如果同一范围内有多个计时器,所有计时器将在每个采样器之前处理。 定时器仅与采样器一起处理。与采样器不在同一范围内的计时器根本不会被处理。 要将计时器应用于单个采样器,请将计时器添加为采样器的子元素。计时器将在采样器执行之前应用。要在采样器之后应用计时器,请将其添加到下一个采样器,或者将其添加为测试操作采样器的子级。

    所以:

    • 如果您想延迟单个请求 - 将您选择的计时器作为该请求的子项。
    • 如果您的目标是延迟所有请求 - 将计时器置于与请求相同的级别
    • 如果您想延迟请求的某些部分 - 将它们移到即 Simple Controller

    How to Use JMeter Assertions in 3 Easy Steps指南中强调了类似的情况:

    唯一的区别是在采样器之前处理计时器,而在之后执行断言。

    【讨论】:

    • 很好的答案@Dmitri。谢谢你。什么是“测试动作采样​​器”?如果你被要求做一个网站的压力测试,你是怎么做的?就并发用户数和每秒点击数 (RPS) 而言,您如何找到性能下降点。
    • 1.关于测试操作采样器的文档 - jmeter.apache.org/usermanual/… 2. 整个压力测试位是找到应用程序的最大容量,看看如果超过它会发生什么。我将从预期的虚拟用户数量开始并增加它,直到观察到错误。需要分析错误以查明真相并找到根本原因,直到唯一的限制是硬件问题
    • 谢谢@Dmitri。我的网站的预期性能是 200 个并发用户,8 RPS。所以我使用了一个终极线程组并将线程设置为 200 并且加速时间为 200 秒。为最终线程组添加了一个恒定吞吐量计时器,并将值设为每分钟 480 个请求。有效。所以下一个测试我应该对 300 个并发用户进行 300 秒的加速和每秒 10 或 12 个请求。并再次使用恒定吞吐量计时器?我是否应该一个接一个地继续这些测试,直到系统开始抛出错误?
    猜你喜欢
    • 1970-01-01
    • 2018-05-29
    • 2018-07-09
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    相关资源
    最近更新 更多