Der folgende Code funktioniert wie erwartet, für jede Iteration der nächste Wert aus dem valueFeed geknallt wird und in die Datei geschrieben output.csvGatling Feeders - die Schaffung neuer Instanzen
class TestSimulation extends Simulation {
val valueFeed = csv("input.csv")
val writer = {
val fos = new java.io.FileOutputStream("output.csv")
new java.io.PrintWriter(fos, true)
}
val scn = scenario("Test Sim")
.repeat(2) {
feed(valueFeed)
.exec(session => {
writer.println(session("value").as[String])
session
})
}
setUp(scn.inject(constantUsersPerSec(1) during (10 seconds)))
}
Nach Ende des Zulaufes Schöpfung im Futter inlined ist Methode ist das Verhalten immer noch genau die gleichen
class TestSimulation extends Simulation {
val writer = {
val fos = new java.io.FileOutputStream("output.csv")
new java.io.PrintWriter(fos, true)
}
val scn = scenario("Test Sim")
.repeat(2) {
feed(csv("input.csv"))
.exec(session => {
writer.println(session("value").as[String])
session
})
}
setUp(scn.inject(constantUsersPerSec(1) during (10 seconds)))
}
Da das Futter Schöpfung ich würde nicht jede Iteration nicht extrahiert wird, erwartet das gleiche Futter zu verwenden, aber es ist eigene Feed-Instanz erstellen.
Warum ist es dann das Verhalten bedeutet, dass der gleiche Feed verwendet wird und der erste Wert aus der Eingabedatei nicht immer auf die Ausgabe geschrieben wird?
Beispiel Eingabedatei (Daten abgeschnitten, mit mehreren Linien getestet leere feeder Ausnahme zu verhindern):
value
1
2
3
4
5