0

我正在尝试使用 Gatling 测量单个 REST 端点 (GET) 的性能,设置非常简单,如下所示:

val httpProtocol: HttpProtocolBuilder = http
    .baseUrl("https://domain:8085") 
    .acceptHeader("*/*");

  val scn =
    scenario("MyScenario")
      .exec(
        http("MyRequest")
          .get(myPath)
      )
setUp(scn.inject(rampUsersPerSec(1) to (1) during (10 seconds))).protocols(httpProtocol)

这意味着每秒 1 个请求。

问题是最小响应时间超过500ms,平均600ms,但是如果我用Postman手动做同样的测试,同样的端点和参数,响应时间在150ms到250ms之间。

为什么会出现这种差异?如何跟踪问题?

我验证了两者在服务器端的执行时间是相同的。

谢谢!

4

1 回答 1

1
  1. Which means 1 request per second- 不,它没有,这意味着 1 个线程尽可能快地执行 10 秒的请求,假设您的状态响应时间约为 500 毫秒,我的预期是已经执行了大约 20 个请求,每秒大约有 2 个请求。我不认为这是真正的问题,但这不是“相同的测试”

  2. 当涉及到HTTP Headers时,它也不是“相同的测试” ,Postman 默认发送更多Postman-Token,特别是Accept-Encoding,它在您的 Gatling 测试中缺失并且默认出现在 Postman 请求中,这个家伙可能会产生很大的影响

    在此处输入图像描述

    为了绝对发送 Postman 发送的相同请求,您可以使用Gatling Recorder记录它

于 2022-02-02T06:14:20.027 回答