It seems report generation fails when using .fetchHtmlResources with groups
While
.exec {
logout
}
works like a charm,
.group(“Logout Group”) {
logout
}
crashes the report generation:
Exception in thread “main” java.util.NoSuchElementException: key not found: Logout Group
at scala.collection.MapLike$class.default(MapLike.scala:228)
at scala.collection.AbstractMap.default(Map.scala:58)
at scala.collection.MapLike$class.apply(MapLike.scala:141)
at scala.collection.AbstractMap.apply(Map.scala:58)
at io.gatling.charts.report.GroupContainer.getGroupRec$1(Container.scala:45)
at io.gatling.charts.report.GroupContainer.findGroup(Container.scala:49)
at io.gatling.charts.report.GroupContainer.addGroup(Container.scala:54)
at io.gatling.charts.report.StatsReportGenerator$$anonfun$generate$2.apply(StatsReportGenerator.scala:96)
at io.gatling.charts.report.StatsReportGenerator$$anonfun$generate$2.apply(StatsReportGenerator.scala:89)
at scala.collection.immutable.List.foreach(List.scala:318)
at io.gatling.charts.report.StatsReportGenerator.generate(StatsReportGenerator.scala:89)
at io.gatling.charts.report.ReportsGenerator$.generateStats$1(ReportsGenerator.scala:34)
at io.gatling.charts.report.ReportsGenerator$.generateFor(ReportsGenerator.scala:53)
at io.gatling.app.Gatling.generateReports$1(Gatling.scala:163)
at io.gatling.app.Gatling.start(Gatling.scala:206)
at io.gatling.app.Gatling$.fromMap(Gatling.scala:59)
at Engine$delayedInit$body.apply(Engine.scala:12)
at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main$1.apply(App.scala:71)
at scala.App$$anonfun$main$1.apply(App.scala:71)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
at scala.App$class.main(App.scala:71)
at Engine$.main(Engine.scala:4)
at Engine.main(Engine.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Honestly, this is a work in progress.
I had to merge on master before diverging too much and being unable to merge. I’ll try to fix this in the next days.
I totally understand; I just wanted to let you know in case you were not aware of the issue.
I’d love to give you a hand, but unfortunately I’m a total scala novice.
We actually have an additional issue that arrises from time to time (intermittent) when we use fetchHtmlResources (it doesn’t crash the simulation though). Any clues?
Stefan
[ERROR] [10/30/2013 12:50:45.526] [GatlingSystem-akka.actor.default-dispatcher-25] [akka://GatlingSystem/user/$w/$o/$d] String index out of range: 12
java.lang.StringIndexOutOfBoundsException: String index out of range: 12
at java.lang.String.charAt(String.java:686)
at io.gatling.http.dom.IncompleteResourceFetcher$$anonfun$16.apply(ResourceFetcher.scala:352)
at io.gatling.http.dom.IncompleteResourceFetcher$$anonfun$16.apply(ResourceFetcher.scala:348)
at scala.math.Ordering$$anon$9.compare(Ordering.scala:200)
at java.util.Arrays.mergeSort(Arrays.java:1270)
at java.util.Arrays.mergeSort(Arrays.java:1282)
at java.util.Arrays.mergeSort(Arrays.java:1282)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.mergeSort(Arrays.java:1281)
at java.util.Arrays.sort(Arrays.java:1210)
at scala.collection.SeqLike$class.sorted(SeqLike.scala:615)
at scala.collection.AbstractSeq.sorted(Seq.scala:40)
at scala.collection.SeqLike$class.sortWith(SeqLike.scala:572)
at scala.collection.AbstractSeq.sortWith(Seq.scala:40)
at io.gatling.http.dom.IncompleteResourceFetcher.io$gatling$http$dom$IncompleteResourceFetcher$$allCssReceived$1(ResourceFetcher.scala:348)
at io.gatling.http.dom.IncompleteResourceFetcher$$anonfun$cssFetched$5.apply(ResourceFetcher.scala:386)
at io.gatling.http.dom.IncompleteResourceFetcher$$anonfun$cssFetched$5.apply(ResourceFetcher.scala:384)
at scala.Option$WithFilter.foreach(Option.scala:208)
at io.gatling.http.dom.IncompleteResourceFetcher.cssFetched(ResourceFetcher.scala:384)
at io.gatling.http.dom.ResourceFetcher$$anonfun$receive$1.applyOrElse(ResourceFetcher.scala:296)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498)
at akka.actor.ActorCell.invoke(ActorCell.scala:456)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237)
at akka.dispatch.Mailbox.run(Mailbox.scala:219)
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)