【问题标题】:Gatling : How to double the number of users after specific interval?Gatling:如何在特定时间间隔后将用户数量翻倍?
【发布时间】:2023-03-05 08:03:01
【问题描述】:

我现在是这样注入用户的,会在30分钟内逐渐增加用户数:

setUp(
       users.inject(rampUsers(300) over ((30) minutes))
   ).protocols(httpConf)

我想要的是在第 1 分钟和第 10 分钟期间注入 300 个用户,在第 ​​11 分钟和第 20 分钟期间注入 300 多个用户,这将是 300 + 300 = 600 以及在第 21 和第 30 分钟期间注入再增加 300 个用户,即 300 + 300 + 300 = 900。简而言之,我希望每 10 分钟后用户数量增加一倍

【问题讨论】:

    标签: scala performance-testing gatling stress-testing


    【解决方案1】:

    您可以简单地连接这些命令:

    scn.inject(
        rampUsers(300) during (10 minutes),
        rampUsers(300) during (10 minutes),
        rampUsers(300) during (10 minutes),
    )
    

    就像文档说的那样:

    用户的注入配置文件的定义是通过注入方法完成的。此方法将一系列注入步骤作为参数,这些步骤将按顺序处理。 (https://gatling.io/docs/2.3/general/simulation_setup)

    另外,你描述的行为可以通过rampUsers(900) during (30 minutes)来实现。

    【讨论】:

    • 你不认为这会并行注入用户吗?我想在前 10 分钟内注入 300 个用户,在第二个 10+10=20 分钟内注入另一组 300 个用户,总共 600 个用户,在第三个 10+10+10=30 分钟内注入另外 300 个用户,总共 900 个用户最终的用户。
    • 这完全取决于您的方案做什么以及运行需要多长时间。关闭模型注入步骤(如 rampUsers)只是启动用户执行场景。如果您的场景中有某种循环或“永远”,那么仍然可能会进入第 3 个 10 分钟块。如果您的场景中没有循环,那么您可以使用“constantConcurrentUsers”注入配置文件来获得您所追求的。
    【解决方案2】:

    听上去,你需要 10 分钟,有 300 个用户,然后是 10 分钟,有 600 个用户,最后是 10 分钟,有 900 个用户。

    您可以使用其中一种封闭的注入配置文件来实现这一点。

    scn.inject(
      constantConcurrentUsers(300) during (10 minutes),
      constantConcurrentUsers(600) during (10 minutes),
      constantConcurrentUsers(900) during (10 minutes)
    )   
    

    【讨论】:

    • 知道了。谢谢。
    • 我们可以在循环中运行它,而不是创建三个单独的命令吗?
    • .inject 只需要一组注入步骤,因此生成它非常简单。例如:(300 to 900 by 300).map(i => constantConcurrentUsers(i) during (10 minutes)) 可以工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    • 2017-11-07
    • 1970-01-01
    • 2023-02-05
    • 2017-05-10
    • 2016-04-05
    相关资源
    最近更新 更多