#gatling #scala-gatling
Вопрос:
Я создаю сценарий гатлинга и пытаюсь его параметризовать. Я проверил путь CSV, он правильный, и CSV присутствует в пути, указанном в файле конфигурации. Во время выполнения теста Гатлинга с локального компьютера возникает ошибка ниже, и тест завершается неудачно.
java.lang.IllegalArgumentException: requirement failed: CSV headers can't be empty
at scala.Predef$.require(Predef.scala:337)
at io.gatling.core.feeder.SeparatedValuesParser$.$anonfun$stream$5(SeparatedValuesParser.scala:47)
at io.gatling.core.feeder.SeparatedValuesParser$.$anonfun$stream$5$adapted(SeparatedValuesParser.scala:46)
at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
at io.gatling.core.feeder.SeparatedValuesParser$.$anonfun$stream$1(SeparatedValuesParser.scala:46)
at io.gatling.core.feeder.SeparatedValuesFeederSource.$anonfun$feeder$1(FeederSource.scala:118)
at scala.util.Using$.resource(Using.scala:261)
at io.gatling.core.feeder.SeparatedValuesFeederSource.applyBatch$1(FeederSource.scala:117)
at io.gatling.core.feeder.SeparatedValuesFeederSource.feeder(FeederSource.scala:125)
at io.gatling.core.feeder.SourceFeederBuilder.apply(FeederBuilder.scala:81)
at io.gatling.core.feeder.SourceFeederBuilder.apply(FeederBuilder.scala:50)
at io.gatling.core.action.builder.FeedBuilder.newFeedActor(FeedBuilder.scala:38)
at io.gatling.core.action.builder.FeedBuilder.$anonfun$build$1(FeedBuilder.scala:43)
at scala.collection.mutable.MapOps.getOrElseUpdate(Map.scala:146)
at scala.collection.mutable.MapOps.getOrElseUpdate$(Map.scala:143)
at scala.collection.mutable.AbstractMap.getOrElseUpdate(Map.scala:265)
at io.gatling.core.action.builder.FeedBuilder.build(FeedBuilder.scala:43)
at io.gatling.core.structure.BuildAction.$anonfun$build$1(BuildAction.scala:28)
at scala.collection.LinearSeqOps.foldLeft(LinearSeq.scala:169)
at scala.collection.LinearSeqOps.foldLeft$(LinearSeq.scala:165)
at scala.collection.immutable.List.foldLeft(List.scala:79)
at io.gatling.core.structure.BuildAction.build(BuildAction.scala:27)
at io.gatling.core.structure.BuildAction.build$(BuildAction.scala:26)
at io.gatling.core.structure.ScenarioBuilder.build(StructureBuilder.scala:51)
at io.gatling.core.structure.PopulationBuilder.build(PopulationBuilder.scala:100)
at io.gatling.core.scenario.SimulationParams.buildScenario(Simulation.scala:170)
at io.gatling.core.scenario.SimulationParams.$anonfun$scenarios$1(Simulation.scala:174)
at scala.collection.immutable.List.map(List.scala:246)
at io.gatling.core.scenario.SimulationParams.scenarios(Simulation.scala:174)
at io.gatling.app.Runner.run0(Runner.scala:79)
at io.gatling.app.Runner.run(Runner.scala:49)
at io.gatling.app.Gatling$.start(Gatling.scala:83)
at io.gatling.app.Gatling$.fromMap(Gatling.scala:40)
at Engine$.delayedEndpoint$Engine$1(Engine.scala:11)
at Engine$delayedInit$body.apply(Engine.scala:4)
at scala.Function0.apply$mcV$sp(Function0.scala:39)
at scala.Function0.apply$mcV$sp$(Function0.scala:39)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:17)
at scala.App.$anonfun$main$1(App.scala:76)
at scala.App.$anonfun$main$1$adapted(App.scala:76)
at scala.collection.IterableOnceOps.foreach(IterableOnce.scala:563)
at scala.collection.IterableOnceOps.foreach$(IterableOnce.scala:561)
at scala.collection.AbstractIterable.foreach(Iterable.scala:919)
at scala.App.main(App.scala:76)
at scala.App.main$(App.scala:74)
at Engine$.main(Engine.scala:4)
at Engine.main(Engine.scala)
Не уверен, почему тест не проходит, любое предложение было бы полезно.
Ответ №1:
Нашел решение. Я имел в виду csv, и для одного из столбцов имя заголовка не было определено. После удаления значения без имени заголовка в файле csv тест прошел успешно.