Using Gatling 2.1.7, running Fiddler2 as a proxy on localhost. The following minimal script fails:
`
class Test extends Simulation {
object Query {
val request= exec(http(“My Request”).get("/"))
}
val httpConf = http
.baseURL(“http://google.com”)
.proxy(Proxy(“localhost”, 8888))
.userAgentHeader(“Gradle TEST”)
val ptos = scenario(“PTOer”).exec(Query.request)
setUp(
ptos.inject(rampUsers(10) over (10 seconds))
).protocols(httpConf)
}
`
…with the following error:
`
12:50:04.352 [ERROR] i.g.c.a.UserEnd - Actor io.gatling.core.action.UserEnd@9ef378 crashed on message Some(Session(PTOer,8177268339714670142-9,Map(gatling.http.cache.redirects → io.gatling.core.util.
cache.Cache@a17bb3, gatling.http.cookies → CookieJar(Map(CookieKey(pref,google.com,/) → StoredCookie(PREF=ID=1111111111111111:FF=0:TM=1438858204:LM=1438858204:V=1:S=HK9NNRJmskC3_ose; domain=.google.
com; path=/; maxAge=63072000s,false,true,1438858204350), CookieKey(nid,google.com,/) → StoredCookie(NID=70=uA7mp5NnmwNvRmkeZnCY1VEe493GSYDg0q5YUzxF_E3ytDFXpuZxkErfu-IGFfHLIktQMW_RiPOicKuSxrPd11Y5D7Ir
QSwuXquFeN98oURxVV0Zfnd8OTy8VHvmL-dF; domain=.google.com; path=/; maxAge=15811200s; HTTPOnly,false,true,1438858204350))), gatling.http.referer → http://www.google.com/),1438858204195,1,OK,List(),))
java.lang.ClassCastException: com.ning.http.client.ConnectionPoolPartitioning$ProxyPartitionKey cannot be cast to java.lang.String
at io.gatling.http.config.HttpProtocol$$anon$1.select(HttpProtocol.scala:178) ~[gatling-http-2.1.7.jar:2.1.7]
at com.ning.http.client.providers.netty.channel.pool.DefaultChannelPool.flushPartitions(DefaultChannelPool.java:325) ~[async-http-client-1.9.30.jar:na]
at com.ning.http.client.providers.netty.channel.ChannelManager.flushPartitions(ChannelManager.java:486) ~[async-http-client-1.9.30.jar:na]
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.flushChannelPoolPartitions(NettyAsyncHttpProvider.java:99) ~[async-http-client-1.9.30.jar:na]
at io.gatling.http.config.HttpProtocol.userEnd(HttpProtocol.scala:174) ~[gatling-http-2.1.7.jar:2.1.7]
at io.gatling.core.config.Protocols$$anonfun$1$$anonfun$apply$1.apply(Protocols.scala:46) ~[gatling-core-2.1.7.jar:2.1.7]
at io.gatling.core.config.Protocols$$anonfun$1$$anonfun$apply$1.apply(Protocols.scala:46) ~[gatling-core-2.1.7.jar:2.1.7]
at scala.collection.Iterator$class.foreach(Iterator.scala:742) ~[scala-library-2.11.7.jar:na]
at scala.collection.AbstractIterator.foreach(Iterator.scala:1194) ~[scala-library-2.11.7.jar:na]
at scala.collection.MapLike$DefaultValuesIterable.foreach(MapLike.scala:206) ~[scala-library-2.11.7.jar:na]
at io.gatling.core.config.Protocols$$anonfun$1.apply(Protocols.scala:46) ~[gatling-core-2.1.7.jar:2.1.7]
at io.gatling.core.config.Protocols$$anonfun$1.apply(Protocols.scala:46) ~[gatling-core-2.1.7.jar:2.1.7]
at io.gatling.core.session.Session.terminate(Session.scala:216) ~[gatling-core-2.1.7.jar:2.1.7]
at io.gatling.core.action.UserEnd.execute(UserEnd.scala:45) ~[gatling-core-2.1.7.jar:2.1.7]
at io.gatling.core.action.Action$$anonfun$receive$1.applyOrElse(Actions.scala:29) ~[gatling-core-2.1.7.jar:2.1.7]
at akka.actor.Actor$class.aroundReceive(Actor.scala:467) ~[akka-actor_2.11-2.3.12.jar:na]
at io.gatling.core.akka.BaseActor.aroundReceive(BaseActor.scala:22) ~[gatling-core-2.1.7.jar:2.1.7]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516) ~[akka-actor_2.11-2.3.12.jar:na]
at akka.actor.ActorCell.invoke(ActorCell.scala:487) ~[akka-actor_2.11-2.3.12.jar:na]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) ~[akka-actor_2.11-2.3.12.jar:na]
at akka.dispatch.Mailbox.run(Mailbox.scala:220) ~[akka-actor_2.11-2.3.12.jar:na]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397) [akka-actor_2.11-2.3.12.jar:na]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [scala-library-2.11.7.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [scala-library-2.11.7.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [scala-library-2.11.7.jar:na]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [scala-library-2.11.7.jar:na]
`
I can see from the proxy logs that the request and response was successful.
Commenting out .proxy(Proxy(“localhost”, 8888*))* resolves the problem.
Does anyone have any idea how to fix it? Using a proxy is very convenient during development of the tests.