Scala 如何在Gatling中随机注入用户数?

Scala 如何在Gatling中随机注入用户数?,scala,gatling,Scala,Gatling,我想在Gatling中随机注入用户数。 比如说, 在前10秒,100个用户 对于接下来的15秒,25个用户 对于接下来的2秒,1000个用户,以此类推 具有随机用户数的随机时间 我发现一个复杂的解决方法如下: val r=new scala.util.Random setUp( scn.inject( constantUsersPerSec(10) during(10 seconds) randomized, constantUsersP

我想在Gatling中随机注入用户数。 比如说,

在前10秒,100个用户

对于接下来的15秒,25个用户

对于接下来的2秒,1000个用户,以此类推

具有随机用户数的随机时间

我发现一个复杂的解决方法如下:

val r=new scala.util.Random
  setUp(
    scn.inject(

         constantUsersPerSec(10) during(10 seconds) randomized,
             constantUsersPerSec(10+r.nextInt(500)) during(15 seconds) randomized,
             constantUsersPerSec(210+r.nextInt(500)) during(25 seconds) randomized,
             constantUsersPerSec(510+r.nextInt(520)) during(55 seconds) randomized,
             constantUsersPerSec(170+r.nextInt(100)) during(5 seconds) randomized,
             constantUsersPerSec(270+r.nextInt(1010)) during(5 seconds) randomized,
             constantUsersPerSec(710+r.nextInt(5100)) during(1 minute) randomized,
             constantUsersPerSec(5+r.nextInt(40)) during(100 seconds) randomized,
             constantUsersPerSec(710+r.nextInt(5200)) during(15 seconds) randomized,
             constantUsersPerSec(0+r.nextInt(20)) during(10 seconds) randomized,


         constantUsersPerSec(10) during(10 seconds) randomized,
             constantUsersPerSec(10+r.nextInt(500)) during(15 seconds) randomized,
             constantUsersPerSec(210+r.nextInt(500)) during(25 seconds) randomized,
             constantUsersPerSec(510+r.nextInt(520)) during(55 seconds) randomized,
             constantUsersPerSec(170+r.nextInt(100)) during(5 seconds) randomized,
             constantUsersPerSec(270+r.nextInt(1010)) during(5 seconds) randomized,
             constantUsersPerSec(710+r.nextInt(5100)) during(1 minute) randomized,
             constantUsersPerSec(5+r.nextInt(40)) during(100 seconds) randomized,
             constantUsersPerSec(710+r.nextInt(5200)) during(15 seconds) randomized,

             constantUsersPerSec(1) during(10 seconds),

           ).protocols(kafkaConf))
有什么简单的方法可以做到这一点吗

换句话说,有没有办法注入循环


注:我尝试了一个场景的
repeat()
,但那完全是另一回事。它不调用一次,而是调用n次,即为每个用户执行操作
n次。

inject方法可以执行一系列注入步骤,因此您可以使用函数生成该数组

val r=new scala.util.Random

setUp(
    scn.inject(
        (1 to 10).map(i => constantUsersPerSec(r.nextInt(500)) during (r.nextInt(30) seconds) randomized)
    )
).protocols

.inject方法可以执行一系列注入步骤,因此您可以只使用一个函数来生成该数组

val r=new scala.util.Random

setUp(
    scn.inject(
        (1 to 10).map(i => constantUsersPerSec(r.nextInt(500)) during (r.nextInt(30) seconds) randomized)
    )
).protocols