当前位置: 首页 > 知识库问答 >
问题:

Gatling:场景中的并发执行

薛浩言
2023-03-14

我试图测试一个主页的加载时间。浏览器在加载主页时发出的HTTP请求的顺序类似于A->B->[C,D,E]

也就是说

  • B在接收到A的响应后执行,并且
  • C、D、E在收到B的响应后同时启动。

我尝试了下面的方法来模拟:

A、B、C、D、E各有一个场景。所有场景都配置有50个用户。我试过这个:

A.inject().andThen(B.inject.andThen(C.inject(), D.inject(), E.inject()))

这样做的问题是,B只有在A的所有用户都停止之后才启动。这并不能准确地模拟主页加载,因为我希望已经完成a的用户可以在不等待其他用户的情况下从B开始。

方法2

exec(A).exec(B).exec(C).exec(D).exec(E)

共有1个答案

詹唯
2023-03-14

Gatling不是这样工作的,您的实际web客户端也不是这样。

您应该有一个单一的场景,用户使用资源并发执行请求A,然后执行请求B,然后执行请求C、D和E。

val scn = scenario("foo")
  .exec(requestA)
  .exec(requestB
    .resources(requestC, requestD, requestE)
  )

 类似资料:
  • 我试图创建一个Gatling场景,需要在测试期间将协议切换到另一个主机。用户的旅程是 因此,作为单个场景的一部分,我需要以太切换场景设置中定义的,或切换协议上定义的,但我不知道如何做到这一点。 一个基本的场景可能是这样的 我只需要弄清楚第三步如何切换主机或协议。我知道我可以创建多个场景,但这需要跨多个主机的单个用户流。 我试过直接使用另一个协议 结果 并更改请求的基本URL 结果

  • 我想在运行Gatling场景期间更改令牌,因为我想与不同的用户进行测试,这是我的HTTP协议: 如何在

  • 我一直在使用JMeter和Gatling在JSF2 PrimeFaces4 web应用程序上记录一个场景,以便对其进行负载测试。这两个工具都可以很好地进行录制,但是由于在commandButton上打开弹出对话框的单击操作不会触发关联事件,所以该场景的重播失败了。所述commandButton由场景中的前一个操作(同一表行中的下拉选择)启用。 只有在性能测试工具上运行场景时才会出现此问题,而不是在

  • 我必须使用Gatling/Scala编写一些测试。在我的具体情况下,我必须使用用户名和密码登录网站(此外还有密钥斗篷安全性)。有一个带有很多用户/密码行的CSV文件,我的目标是使用此CSV文件中的每个用户/密码登录。 问题是我不知道怎么做。我可以用用户名/密码和密钥斗篷的安全令牌登录,只需一个用户。到目前为止还可以,但还不够。以下是我到目前为止所做的。 第一类: 馈线类: 登录名: 如您所见,我在

  • 我有测试单个endpoint的简单场景。我对DSL有问题。不知道如何使用feeder启动场景。我必须先进行无用的调用才能编译它。 我怎样才能摆脱

  • 我一直在阅读大量的文档、帖子和文章,据说在单个功能文件中并行运行场景的开箱即用解决方案是不可能的。我们可以使用maven-surefire插件在不同的特性文件中并行运行,但不能在场景中运行。 例如,有一个包含场景的功能文件: 我想在单独的线程中同时运行所有这些场景。 我该如何实现这一点?

  • 我有一个场景,有4个不同的API调用,它们总是保持不变。我试图创建一个并行的压力测试,我希望相同的场景首先运行,比如10%,然后是20%,30%······max用户的等等。 但我也需要设置是动态的,取决于脚本中的可配置变量这是造成问题的原因,我希望能够很容易地配置它运行例如10%,50%和100%。 这就是我到目前为止所做的(缩短了,并且onceuser和nothingFor从迭代于bla(I)

  • 使用Cucumber,我们创建了由不同场景组成的不同功能文件。我们记住的一件事是,每个场景都独立于所有其他场景。 问:我们可以对所有的特征文件或场景进行并行执行吗?