Использование Тельца с Гатлингом завершается неудачно с "Исключением в потоке"main" io.gatling.core.session.el.ElParserException"
Я пытаюсь запустить Гатлинга с Тельцом, чтобы поэкспериментировать с ним, но это не так легко, как ожидалось.
У меня есть этот код:
execution:
- executor: gatling
scenario: sample
scenarios:
sample:
script: tests/gatling/BasicSimulation.scala
simulation: tests.gatling.BasicSimulation
И используя этот скалатирующий код симуляции Гатлинга:
package tests.gatling
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
class BasicSimulation extends Simulation {
val httpConf = http
.baseURL("http://computer-database.gatling.io")
.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 scn = scenario("BasicSimulation")
.exec(http("request_1")
.get("/"))
.pause(1)
setUp(
scn.inject(atOnceUsers(1))
).protocols(httpConf)
}
Когда я запускаю это с этим:
bzt gatling.yml
Это заканчивается по ошибке с:
08:13:02 ERROR: Child Process Error: Gatling tool exited with non-zero code: 1
...
Gatling STDERR:
Exception in thread "main" io.gatling.core.session.el.ElParserException: Failed to parse text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 with error '[B cannot be cast to [C'
at io.gatling.core.session.el.ElCompiler.parseEl(ElCompiler.scala:249)
at io.gatling.core.session.el.ElCompiler$.parse(ElCompiler.scala:171)
at io.gatling.core.session.el.ElCompiler$.compile(ElCompiler.scala:174)
at io.gatling.core.session.el.package$El$.el$extension(package.scala:26)
at io.gatling.core.ValidationImplicits.stringToExpression(ValidationImplicits.scala:48)
at io.gatling.core.ValidationImplicits.stringToExpression$(ValidationImplicits.scala:48)
at io.gatling.core.Predef$.stringToExpression(Predef.scala:22)
at tests.gatling.BasicSimulation.<init>(BasicSimulation.scala:12)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:488)
at java.base/java.lang.Class.newInstance(Class.java:558)
at io.gatling.app.Runner.run0(Runner.scala:79)
at io.gatling.app.Runner.run(Runner.scala:64)
at io.gatling.app.Gatling$.start(Gatling.scala:59)
at io.gatling.app.Gatling$.fromArgs(Gatling.scala:43)
at io.gatling.app.Gatling$.main(Gatling.scala:35)
at io.gatling.app.Gatling.main(Gatling.scala)
...
2 ответа
Я столкнулся с той же проблемой некоторое время назад, и основной причиной было то, что я использовал jdk 9, я понизил до 8, и это сработало.
Я пытался с вашим кодом, и у меня работает на JDK 8
Я не могу воспроизвести вашу проблему, используя последний Телец v1.12.1
dt@aldan:/tmp> bzt gatling.yml
09:32:29 INFO: Taurus CLI Tool v1.12.1
09:32:29 INFO: Starting with configs: ['gatling.yml']
09:32:29 INFO: Configuring...
09:32:29 INFO: Artifacts dir: /tmp/2018-08-21_09-32-29.122174
09:32:29 INFO: Preparing...
09:32:30 INFO: Starting...
09:32:30 INFO: Waiting for results...
09:32:31 INFO: Waiting for finish...
09:32:43 WARNING: Please wait for graceful shutdown...
09:32:43 INFO: Shutting down...
09:32:43 INFO: Post-processing...
09:32:43 INFO: Test duration: 0:00:13
09:32:43 INFO: Samples count: 2, 0.00% failures
09:32:43 INFO: Average times: total 0.065, latency 0.000, connect 0.000
09:32:43 INFO: Percentiles:
┌───────────────┬───────────────┐
│ Percentile, % │ Resp. Time, s │
├───────────────┼───────────────┤
│ 0.0 │ 0.045 │
│ 50.0 │ 0.045 │
│ 90.0 │ 0.085 │
│ 95.0 │ 0.085 │
│ 99.0 │ 0.085 │
│ 99.9 │ 0.085 │
│ 100.0 │ 0.085 │
└───────────────┴───────────────┘
09:32:43 INFO: Request label stats:
┌──────────────────────┬────────┬─────────┬────────┬───────┐
│ label │ status │ succ │ avg_rt │ error │
├──────────────────────┼────────┼─────────┼────────┼───────┤
│ request_1 │ OK │ 100.00% │ 0.085 │ │
│ request_1 Redirect 1 │ OK │ 100.00% │ 0.045 │ │
└──────────────────────┴────────┴─────────┴────────┴───────┘
09:32:43 INFO: Artifacts dir: /tmp/2018-08-21_09-32-29.122174
09:32:43 INFO: Done performing with code: 0
dt@aldan:/tmp>
Другие детали среды:
Прежде всего, попробуйте обновить Taurus до последней версии, например:
pip install --upgrade bzt
Если это не поможет, попробуйте создать скрипт Gatling из конфигурации YAML, для получения более подробной информации обратитесь к Руководству по загрузке теста с руководством Gatling и Taurus.