我需要更新.csv文件,其中包含在加特林模拟中使用的一些ID,因为我需要事先创建数据。我试图在before()调用中更新该文件,但是它不起作用。惰性评估也不起作用。
before {
Helper.CreateDocuments()
}
lazy val documentIds = csv("data/documentIds.csv").circular
val scn: ScenarioBuilder = scenario("PutFile")
.feed(documentIds)
.exec(http("Dynamic id")
.put("files/${documentId}"))...
我该如何解决该问题以使用刷新的ID来提供模拟?
您应该可以在before
步骤中修改一个csv文件。例如:
before {
val pw = new PrintWriter(new File("data.csv"))
for (i <- 0 to 10) {
pw.write(i + "\n")
}
pw.close
}
记住要导入库import java.io._
然后在模拟中使用它来调用文件:
val orderId = csv("data.csv").queue
但是,这可能是多余的,因为您可以使用saveAs
步骤来创建值,如Gatling Session API documentation中所述。例如,您可以执行以下操作:
val someHttpCall = http("Create data for the feeder").get("/my/resource").saveAs("data")
然后在供料器中使用:
val scn = feed(data).exec(somethingElse)
如果这还不够,请记住,您也可以在模拟类中的任何时候创建自己的feeder。