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

使用Gradle运行Gatling Scala性能测试成功却无报告求助

问题描述

我是Gatling和Scala新手,跟着入门教程做测试,但使用Gradle wrapper执行。在IntelliJ IDEA中创建Gradle项目后,build.gradle配置如下:

buildscript {
    repositories {
        maven {
            url '<url>'
            credentials {
                <>
            }
        }
    }
    dependencies {
        classpath "gradle.plugin.io.gatling.gradle:gatling-gradle-plugin:3.8.4"
    }
}

apply plugin: "io.gatling.gradle"
apply plugin: 'scala'

repositories {
    maven {
        url '<>'
        credentials {
            <>
        }
    }
    mavenCentral()
}

dependencies {
    implementation 'org.scala-lang:scala-library:2.12.4'
    gatling 'org.scala-lang:scala-library:2.12.4'
    gatling 'au.com.bytecode:opencsv:2.4'
    gatling group: 'org.scalaj', name: 'scalaj-http_2.12', version: '2.3.0'
    gatling group: 'org.json4s', name: 'json4s-native_2.12', version: '3.5.3'
}

compileGatlingScala {
    scalaCompileOptions.additionalParameters = ["-feature"]
}

gatling {
    simulations = {
//  Enable ALL perf testing, regardless of current pass/fail state
        include "**/simulation/*Simulation*.scala"
    }
}

sourceSets.gatling.resources.srcDir('conf')

gatling {
    logLevel = 'WARN' // logback root level
    logHttp = 'ALL' 
}

注:额外添加了opencsv等依赖,用于后续性能测试。

我的LoadSimulation.scala脚本内容:

class LoadSimulation extends Simulation {

  val scn = scenario("JSON")
    .exec(
      http("GET")
        .get("http://jsonplaceholder.typicode.com/comments")
    )

  setUp(
    scn.inject(atOnceUsers(1))
  )
}

执行命令gradlew gatlingRun-LoadSimulation后显示构建成功,但/build/reports目录下找不到测试结果:

>gradlew gatlingRun-LoadSimulation

BUILD SUCCESSFUL in 1s
3 actionable tasks: 1 executed, 2 up-to-date

编辑:根据建议更新依赖后,问题依旧,/build/reports/gatling目录仍为空:

dependencies {
    implementation 'org.scala-lang:scala-library:2.13'
    gatling 'org.scala-lang:scala-library:2.13'
    gatling 'au.com.bytecode:opencsv:2.4'
    gatling group: 'org.scalaj', name: 'scalaj-http_2.13', version: '2.4.2'
    gatling group: 'org.json4s', name: 'json4s-native_2.13', version: '3.6.7'
}

解决方法

针对你的问题,按以下步骤排查修复:

  • 检查仿真文件路径匹配规则
    你的gatling.simulations配置为include "**/simulation/*Simulation*.scala",要求仿真文件必须位于包含simulation的目录下,且文件名包含Simulation。确认LoadSimulation.scala是否放在src/gatling/scala/simulation目录中——Gatling Gradle插件默认源码路径是src/gatling/scala,如果文件直接放在根目录或路径不含simulation,插件会无法识别。

  • 合并重复的gatling配置块
    你在build.gradle中定义了两个独立的gatling块,Gradle会用后面的配置覆盖前面的,导致simulations规则失效。将两个块合并为一个:

    gatling {
        simulations = {
            include "**/simulation/*Simulation*.scala"
        }
        logLevel = 'WARN'
        logHttp = 'ALL' 
    }
    
  • 确保Scala版本与插件兼容
    Gatling 3.8.4仅支持Scala 2.12.x版本,你切换到2.13会引发兼容性问题。改回Scala 2.12的稳定版本(如2.12.18),同时保证所有依赖的Scala版本后缀一致(例如scalaj-http使用_2.12版本)。

  • 查看任务执行详细日志
    执行命令时添加--info参数获取详细日志:

    gradlew gatlingRun-LoadSimulation --info
    

    日志会显示插件是否找到仿真类、测试是否执行、报告生成路径等信息。如果出现“no simulations found”提示,重点检查路径和配置规则。

  • 验证Gatling任务是否存在
    执行gradlew tasks --group gatling,查看是否存在gatlingRun-LoadSimulation任务。若不存在,说明插件未识别到你的仿真类,需回到路径和配置排查。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:30:52