用Scala和Gradle进行产仔性能测试

dw1jzc5e  于 2022-11-09  发布在  Scala
关注(0)|答案(2)|浏览(155)

我是Gatling和Scala的新手,我正在尝试运行本视频开头部分指定的Gatling测试示例:https://www.youtube.com/watch?v=To7LJiK87Us,但使用的是Gradle Package 器。我在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脚本如下所示

class LoadSimulation extends Simulation {

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

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

当我尝试使用gradlew运行性能测试时,它显示“构建成功”,但在/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'
}
b1payxdu

b1payxdu1#

这里有一些非常错误的地方:您强制使用基于Scala 2.12和Scala 2.12的库,而使用需要Scala 2.13的Gatling 3.8。
请看官方样例项目:https://github.com/gatling/gatling-gradle-plugin-demo-scala/blob/main/build.gradle

new9mtju

new9mtju2#

在Scala语言中,次要版本实际上是主要版本。你可以预计2.12和2.13之间会有很大的不同。这就是你面临的问题。这就像是比较Java 7和Java 8。我以前对Scala版本的工作方式也有同样的困惑。

相关问题