加特林中的自定义进纸器
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]
是错误的。
我想在 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]
是错误的。