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

如何生成可执行Jar运行Gatling gRPC负载测试?或编写主类调用测试

Gatling gRPC负载测试可执行Jar包生成方案

问题1:能否生成可执行Jar包运行负载测试脚本?

当然可以。Gatling支持通过可执行Jar包运行指定的Simulation类,只要配置好打包逻辑并指定正确的主类,就能生成独立运行的测试包。

问题2:解决主类缺失问题的具体步骤

你用sbt assembly或sbt test:assembly失败,核心原因是未指定主类,且测试代码的依赖未正确纳入打包产物。按以下步骤解决:

1. 确保sbt-assembly插件已配置

检查project/plugins.sbt,确保添加了assembly插件(版本可根据你的sbt版本调整):

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "1.2.0")

2. 编写自定义启动主类

在src/main/scala下创建启动类,直接调用Gatling的入口逻辑,指定你的newSimulation类:

import io.gatling.app.Gatling
import io.gatling.core.config.GatlingPropertiesBuilder

object GatlingRunner extends App {
  val config = new GatlingPropertiesBuilder()
    // 替换成你的Simulation类全限定名,比如类在load包下就是"load.newSimulation"
    .simulationClass("load.newSimulation")
    .build()

  Gatling.fromMap(config)
}

3. 配置sbt打包规则

在build.sbt中添加assembly配置,指定主类并处理依赖冲突:

// 处理依赖合并冲突,避免打包时出现重复文件报错
assemblyMergeStrategy in assembly := {
  case PathList("META-INF", _*) => MergeStrategy.discard
  case _ => MergeStrategy.first
}

// 指定自定义主类的全限定名
mainClass in assembly := Some("GatlingRunner")

lazy val root = (project in file("."))
  .settings(
    name := "gatling-grpc-test",
    scalaVersion := "2.13.10", // 匹配你项目的Scala版本
    // 保留原项目的所有依赖配置,比如gatling-grpc、gatling-core等
    libraryDependencies ++= Seq(
      // 原项目的依赖项示例:
      // "io.gatling" % "gatling-core" % "3.9.5",
      // "io.gatling" % "gatling-grpc" % "3.9.5"
    )
  )

4. 执行打包命令

运行以下命令生成可执行Jar:

sbt assembly

5. 运行测试Jar包

打包完成后,在target/scala-<你的Scala版本>目录下找到Jar文件,运行命令:

java -jar target/scala-2.13/gatling-grpc-test-assembly-<版本号>.jar

替代方案:无需自定义主类

如果不想写自定义主类,也可以直接用Gatling官方主类,打包时不指定主类,运行时通过参数指定Simulation:

# 打包(此时不需要在build.sbt中指定mainClass)
sbt test:assembly
# 运行,替换成你的Jar路径和Simulation类名
java -cp target/scala-2.13/gatling-grpc-test-assembly-<版本号>.jar io.gatling.app.Gatling -s load.newSimulation

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:23:18