Perf2017
Perf2017

Reputation: 29

Custom Feeder in Gatling

I want to share some data between 2 simulation and for that I have a designed a custom feeder using queue.

.exec { session =>
            val writer1 = new PrintWriter(new FileOutputStream(outputFilePath, true))
            writer1.write(session("AccountId").as[String] + "," + session("uuid").as[String] + "\n")
            writer1.close();
            session
          }
          .exec {
            session =>
            DequeHolder.DataDeque.offer(Array(session("AccountId").as[String][0],session("uuid").as[String][1]))
            session
          }
      }
  }

  class DataFeeder extends Feeder[String] {
    override def hasNext: Boolean = DequeHolder.DataDeque.size() > 0
    override def next(): Map[String, Array[String]] = Map("data" -> DequeHolder.DataDeque.poll())
  }

this is giving me compilation issue at line DequeHolder.DataDeque.offer(Array(session("AccountId").as[String][0],session("uuid").as[String][1]))

Could someone please help where exactly I am commiting mistake.

Error: io.gatling.commons.util.TypeCaster[String], evidence$2: scala.reflect.ClassTag[String], evidence$3: io.gatling.commons.NotNothing[String]): String does not take type parameters.

Upvotes: 0

Views: 787

Answers (1)

Stéphane LANDELLE
Stéphane LANDELLE

Reputation: 6623

Feeder[T] is an alias for Iterator[Map[String, T]].

So override def next(): Map[String, Array[String]] is wrong for Feeder[String].

Upvotes: 1

Related Questions