Hi,
I am able to generate csv file from below code but there is no data in it (it has data cross-checked with sqlYog with same query). It only prints “Asset Ids” in one column and throws ClassCastException. Can anyone help me to solve this? Thanks.
Here is my script.
import java.io._
import au.com.bytecode.opencsv.CSVWriter
import io.gatling.jdbc.Predef._
import scala.collection.mutable.ArrayBuffer
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
class generateCsv extends Simulation {
val username = System.getProperty("username", "user1")
val password = System.getProperty("password", "user1")
val testUrl = System.getProperty("testUrl", "https://someurl.net")
val csvFileLocation = "D:/myDir/myfile.csv"
val dbQuery = jdbcFeeder("jdbc:mysql://10.10.40.10:3306/master", "admin", "admin", "SELECT ID_ assetID FROM TableName")
var recordCount = dbQuery.records.length
val out = new BufferedWriter(new FileWriter(csvFileLocation))
val writer = new CSVWriter(out)
var Ids = new Array[String](recordCount)
Ids(0) = "Asset Ids"
var i = 1
val httpProtocol = http
.baseURL(testUrl)
.inferHtmlResources()
.acceptHeader("""*/*""")
.basicAuth(username, password)
.acceptEncodingHeader("""gzip, deflate""")
.acceptLanguageHeader("""en-US,en;q=0.8""")
.connection("""keep-alive""")
.userAgentHeader("""Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36""")
val scn = scenario("Database Query")
.repeat (recordCount) {
feed(dbQuery)
.exec { session =>
Ids(i) = session("assetID").as[String]
i = i + 1
session
}
}
after{
writer.writeNext(Ids)
writer.close()
}
setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)
}
Error:
84057 [GatlingSystem-akka.actor.default-dispatcher-6] ERROR i.g.c.a.b.SessionHookBuilder$$anonfun$build$1$$anon$1 - ‘sessionHook-2’ crashed on session Session(Database Query,8451783577631963111-0,Map(b1075cf5-e3c8-47d6-96bd-ff74284b4e7c → 4, timestamp.b1075cf5-e3c8-47d6-96bd-ff74284b4e7c → 1488276658897, assetID → 6),1488276658892,0,KO,List(ExitOnCompleteLoopBlock(b1075cf5-e3c8-47d6-96bd-ff74284b4e7c)),), forwarding to the next one
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
at com.abc.gatling.generateCsv$$anonfun$2.apply(generateCsv.scala:57) ~[na:na]
at com.abc.gatling.generateCsv$$anonfun$2.apply(generateCsv.scala:56) ~[na:na]
at io.gatling.core.action.SessionHook.executeOrFail(SessionHook.scala:35) ~[gatling-core-2.1.7.jar:2.1.7]
at io.gatling.core.action.Failable$class.execute(Actions.scala:71) ~[gatling-core-2.1.7.jar:2.1.7]
at io.gatling.core.action.SessionHook.execute(SessionHook.scala:28) ~[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 scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171) ~[scala-library-2.11.7.jar:na]
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]
84072 [GatlingSystem-akka.actor.default-dispatcher-6] INFO i.g.core.controller.Controller - End user #8451783577631963111-0
84179 [main] INFO i.g.c.result.reader.FileDataReader - Collected List(D:\gatling-charts-highcharts-bundle-2.1.7\results\generateCsv-1488276658757\simulation.log) from generateCsv-1488276658757