【问题标题】:Gatling load testing and running scenariosGatling 负载测试和运行场景
【发布时间】:2019-10-23 12:59:56
【问题描述】:

我希望创建三个场景:

  • 第一个场景会运行一堆 GET 请求 30 秒
  • 第二个和第三个场景将并行运行并等待第一个完成。

我希望从报告中排除第一个场景的请求。

我已经大致了解了我想要达到的目标,但没有看到预期的结果:

val myFeeder = csv("somefile.csv")

val scenario1 = scenario("Get stuff")
.feed(myFeeder)
.during(30 seconds) {
  exec(
      http("getStuff(${csv_colName})").get("/someEndpoint/${csv_colName}")
  )
}

val scenario2 = ...

val scenario3 = ...

setUp(
  scenario1.inject(
    constantUsersPerSec(20) during (30 seconds)
  ).protocols(firstProtocaol),


  scenario2.inject(
    nothingFor(30 seconds), //wait 30s
    ...
  ).protocols(secondProt)

  scenario3.inject(
    nothingFor(30 seconds),  //wait 30s
    ...
  ).protocols(thirdProt)

)

我看到第一个场景在整个测试中运行。 30岁以后就没有了?

对于第一个场景,我想循环浏览 CSV 文件并对每一行执行请求。也许每秒 5-10 个请求,我该如何实现呢?

我还希望它在 30 秒后停止,然后并行运行另外两个。因此,上面最后两个场景中的nothingFor

另外我如何从报告中排除,可以吗?

谢谢

【问题讨论】:

    标签: scala testing qa gatling scala-gatling


    【解决方案1】:

    由于您的注射配置文件和“获取材料”场景之间的设置组合,您可能无法获得预期的结果。

    constantUsersPerSec(20) during (30 seconds)
    

    将在 30 秒内每秒启动 20 名用户参与场景“Get Stuff”。因此,即使在第 30 秒内,也有 20 个用户开始“获取东西”。注入文件只控制用户何时开始,而不是他们活动的时间。因此,当用户执行“Get Stuff”场景时,由于 .during 循环,他们会在 30 秒内重复发出“get”请求。

    因此,至少,您将让用户执行“Get Stuff”60 秒 - 以及执行您的其他场景。根据您 getStuff 调用的执行时间,它可能会更长。

    为避免这种情况,您可以计算出您希望“Get Stuff”场景运行多长时间,在注入配置文件中进行设置,并且在场景中不循环。或者,您可以将“nothingFor”值设置为 >60s。

    要从报告中排除 Get Stuff 调用,您可以将静默添加到协议定义中(假设它不与您的其他请求共享)。更多详情https://gatling.io/docs/3.2/http/http_protocol/#silencing

    【讨论】:

    • 谢谢,如何在注射配置文件中设置持续时间?另外经过测试,我想在每次通话之间添加一个pause(x milliseconds)
    • 每次调用之间针对哪个场景?
    • 您目前的模拟在 30 秒内每秒启动 20 个用户。每个用户从 feeder 中获取一行,然后重复调用 http("getStuff(${csv_colName})").get("/someEndpoint/${csv_colName}") 30 秒。所以你目前正在设置一个持续时间 - 你注入 30 秒,每个用户大约需要 30 秒才能完成。
    • 我明白了,谢谢。我删除了during(){},在exec 之后添加了pause,它的表现似乎好一点。
    • 听起来不错 - 现在场景 1 的时间将接近 30 秒,并且它的获取请求只会对馈线中的每一行发出一次
    猜你喜欢
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    相关资源
    最近更新 更多