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

使用Gatling gRPC插件时Akka gRPC报CoordinatedShutdown错误求助

解决Gatling gRPC测试中的java.lang.AssertionError问题

针对你遇到的运行时断言错误,结合代码表现和库冲突推测,可按以下步骤排查解决:

1. 对齐核心依赖版本

Gatling的gRPC插件对Netty、gRPC核心库的版本兼容性要求严格,版本不匹配是触发断言错误的常见原因:

  • 检查构建配置文件(build.sbt或pom.xml),确保gRPC相关依赖与Gatling插件版本完全对齐,示例sbt配置如下:
    val gatlingVersion = "3.9.5"
    val grpcVersion = "1.59.0" // 需与Gatling gRPC插件兼容,可参考官方文档确认对应版本
    
    libraryDependencies ++= Seq(
      "io.gatling" % "gatling-core" % gatlingVersion % "test",
      "io.gatling" % "gatling-grpc" % gatlingVersion % "test",
      "io.grpc" % "grpc-netty-shaded" % grpcVersion % "test",
      "io.grpc" % "grpc-protobuf" % grpcVersion % "test",
      "io.grpc" % "grpc-stub" % grpcVersion % "test"
    )
    
  • 执行依赖树分析命令(sbt dependencyTree或mvn dependency:tree),找出重复或版本不一致的Netty/gRPC依赖,通过排除规则清理冲突:
    // 示例:排除冲突的Netty依赖
    libraryDependencies += "io.gatling" % "gatling-grpc" % gatlingVersion % "test" excludeAll(
      ExclusionRule(organization = "io.netty")
    )
    

2. 修复会话变量绑定问题

你代码中使用$(TokenKey)传递Header值,若会话中未初始化该变量,会触发内部断言失败:

  • 在场景执行前,确保会话中已存入TokenKey对应的Bearer Token,示例代码调整如下:
    val TokenKey : String = "key"
    val grpcConf = grpc(managedChannelBuilder(name = "request-url", port = 80)
                  .usePlaintext())
                  .header(util.BearerToken, optional = true)($(TokenKey))
    val scn = scenario("BasicSimulation")
        .exec(session => session.set(TokenKey, "Bearer your-actual-token-value")) // 初始化token变量
        .exec(
          grpc("test")
            .rpc(RelayServerGrpc.METHOD_START_PAIRING)
            .payload(StartPairingRequest(Option(Device("labore non laborum id ea"))))
            .check(statusCode is Status.Code.OK)
        )
    

3. 验证服务端与客户端版本兼容性

若gRPC服务端与客户端版本差异过大,部分协议特性不兼容也会引发断言错误,尝试将客户端gRPC版本调整至与服务端一致的稳定版本。

4. 启用详细日志定位根因

添加日志配置打印详细堆栈,明确断言失败的具体位置:

  • 在logback-test.xml中添加:
    <logger name="io.gatling.grpc" level="DEBUG"/>
    <logger name="io.grpc" level="DEBUG"/>
    
    从日志中提取断言失败的类和行号,精准定位冲突点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:05:10