2

複数のチェーンを作成し、ガトリングを使用して順番に実行しようとしています。ドキュメントによると、これは 1.3 以降で動作するはずで、私は 2.0 を使用していますが、それでも動作しません。値 exe が見つからないというエラーが発生します。

package basic

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._

class BenchmarkSimulation extends Simulation {

  val httpConf = http
                .baseURL("http://127.0.0.1:9001")
                .acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
                .doNotTrackHeader("1")
                .acceptLanguageHeader("en-US,en;q=0.5")
                .acceptEncodingHeader("gzip, deflate")
                .userAgentHeader("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0")

  val helloworld = exec(http("write-hello-world").get("/hello"))
  val datetimenow = exec(http("write-datetime-now").get("/now"))
  val scn = scenario("My Scenario").exec(helloworld, datetimenow)

  setUp(scn.inject(ramp(1000 users) over (10 seconds))).protocols(httpConf)
}

正確なエラーは、ne-api/gatling/user-files/simulations/basic/BenchmarkSimulation.scala:17: not found: value exec のようなものです。

00:09:39.660 [ERROR] i.g.a.ZincCompiler$ -   val helloworld = exec(http("write-hello-world").get("/hello"))
00:09:39.661 [ERROR] i.g.a.ZincCompiler$ -                    ^
00:09:39.663 [ERROR] i.g.a.ZincCompiler$ -
00:09:39.663 [ERROR] i.g.a.ZincCompiler$ -   val datetimenow = exec(http("write-datetime-now").get("/now"))
00:09:39.663 [ERROR] i.g.a.ZincCompiler$ -                     ^
00:09:40.671 [ERROR] i.g.a.ZincCompiler$ - two errors found
Exception in thread "main" Compilation failed
    at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:105)
    at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:48)
    at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41)
    at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply$mcV$sp(AggressiveCompile.scala:98)
    at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:98)
    at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:98)
    at sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:155)
    at sbt.compiler.AggressiveCompile$$anonfun$3.compileScala$1(AggressiveCompile.scala:97)
    at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:138)
    at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:86)
    at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:30)
    at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:28)
    at sbt.inc.Incremental$.cycle(Incremental.scala:73)
    at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:33)
    at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:32)
    at sbt.inc.Incremental$.manageClassfiles(Incremental.scala:41)
    at sbt.inc.Incremental$.compile(Incremental.scala:32)
    at sbt.inc.IncrementalCompile$.apply(Compile.scala:25)
    at sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:146)
    at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:70)
    at com.typesafe.zinc.Compiler.compile(Compiler.scala:161)
    at com.typesafe.zinc.Compiler.compile(Compiler.scala:142)
    at io.gatling.app.ZincCompiler$.main(ZincCompiler.scala:111)
    at io.gatling.app.ZincCompiler.main(ZincCompiler.scala)
Exception in thread "main" org.apache.commons.exec.ExecuteException: Process exited with an error: 1 (Exit value: 1)
    at org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:377)
    at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:160)
    at org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:147)
    at io.gatling.app.ZincCompilerLauncher$.apply(ZincCompilerLauncher.scala:54)
    at io.gatling.app.SimulationClassLoader$.fromSourcesDirectory(SimulationClassLoader.scala:32)
    at io.gatling.app.Gatling$$anonfun$15.apply(Gatling.scala:171)
    at io.gatling.app.Gatling$$anonfun$15.apply(Gatling.scala:171)
    at scala.Option.getOrElse(Option.scala:120)
    at io.gatling.app.Gatling.start(Gatling.scala:171)
    at io.gatling.app.Gatling$.fromMap(Gatling.scala:59)
    at io.gatling.app.Gatling$.runGatling(Gatling.scala:80)
    at io.gatling.app.Gatling$.main(Gatling.scala:54)
    at io.gatling.app.Gatling.main(Gatling.scala)
4

1 に答える 1

3

クラスパスにGatling 1ライブラリとGatling 2ライブラリを混在させていると思います。

また、「ramp(1000 users) over (10 seconds))」はガトリング 1 構文なので、「rampUsers(1000) over (10 seconds)」のはずです。

そして、datetimenow シナリオは、helloworld シナリオが完了した後にのみ実行を開始します。

いいえ、helloworld と datetimenow はシナリオではなくチェーン (シナリオ パーツ) です。1 つのシナリオにマージする (実際にチェーンする) だけです。すべてのユーザーが helloworld を完了するのを待ってから datetimenow を開始する場合は、2 つの異なるシミュレーションを記述して、それらを順番に起動する必要があります。

于 2014-11-12T10:20:16.300 に答える