加特林中的自定义进纸器

Custom Feeder in Gatling

我想在 2 个模拟之间共享一些数据,为此我设计了一个使用队列的自定义进纸器。

.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())
  }

这在第 DequeHolder.DataDeque.offer(Array(session("AccountId").as[String][0],session("uuid").as[String][1]))

行给我编译问题

有人可以帮助我到底犯了什么错误吗?

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

Feeder[T]Iterator[Map[String, T]].

的别名

所以 override def next(): Map[String, Array[String]] 对于 Feeder[String] 是错误的。