You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gatling中获取并校验请求与响应的大小

Gatling 实现请求/响应大小查看与校验方案

Postman中查看请求响应大小示例

响应大小查看与校验

Gatling 内置了bodyLength检查方法,可以直接提取响应体的字节大小,既支持直接配置校验规则,也支持存入会话后打印查看,示例代码如下:

// 导入必要依赖
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._

class ResponseSizeTest extends Simulation {
  val httpConf = http.baseUrl("https://你的测试服务地址")

  val testScenario = scenario("响应大小测试")
    .exec(
      http("获取测试接口")
        .get("/api/test")
        .check(
          // 校验响应大小为固定值,单位为字节
          bodyLength.is(1280),
          // 也可校验大小范围
          bodyLength.between(1000, 1500),
          // 将响应大小存入会话,后续可打印或执行自定义逻辑
          bodyLength.saveAs("respSize")
        )
    )
    // 打印当前请求的响应大小
    .exec(session => {
      println(s"当前请求响应体大小:${session("respSize").as[Int]} 字节")
      session
    })

  setUp(testScenario.inject(atOnceUsers(1))).protocols(httpConf)
}

请求大小查看与校验

Gatling 没有内置的请求体大小提取方法,你可以在构造请求体时预先计算大小,存入会话后校验、查看即可,示例如下:

class RequestSizeTest extends Simulation {
  val httpConf = http.baseUrl("https://你的测试服务地址")
  // 提前构造请求体并计算大小
  val postBody = """{"username":"test","password":"123456"}"""
  val reqSize = postBody.getBytes("UTF-8").length

  val testScenario = scenario("请求大小测试")
    .exec(
      http("提交测试接口")
        .post("/api/login")
        .body(StringBody(postBody))
        // 可结合响应大小校验一起配置
        .check(
          bodyLength.between(500, 800),
          // 将请求大小存入会话
          session => session.set("reqSize", reqSize)
        )
    )
    // 同时打印请求和响应大小
    .exec(session => {
      println(s"当前请求体大小:${session("reqSize").as[Int]} 字节")
      println(s"当前响应体大小:${session("respSize").as[Int]} 字节")
      session
    })

  setUp(testScenario.inject(atOnceUsers(1))).protocols(httpConf)
}

批量统计查看

所有请求的响应大小会自动汇总到Gatling生成的HTML测试报告中,你可以在报告的请求详情页查看每个接口的平均、最大、最小响应体大小,满足批量统计的需求。
如果需要统计包含请求头、响应头的完整报文大小,可以通过自定义HttpListener监听器获取完整报文自行计算。

内容的提问来源于stack exchange,提问作者shrusthip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 21:06:03