我正在尝试使用Gatling
.
在模拟的主体中,我在系统中创建了一个带有休息请求的实体。本系统假设在创建实体时,id
不应该由数据库发出,而是在请求中传入(因此假设id是事先知道的)。
面临这样一个问题:我随机生成
同一个。id
由于模拟几乎同时运行多个查询,因此每 15 次左右运行的随机种子是相同的。因此,它们生成相同id
的 ,每 15 个请求中有 14 个下降。
这是我的模拟代码:
class BasicSimulation extends Simulation {
val httpConf = http
.baseUrls("http://localhost:8080", "http://localhost:8081")
val scn = scenario("BasicSimulation")
.exec(
http("Create entity")
.post("/v1/api/entity")
.header(HttpHeaderNames.ContentType, HttpHeaderValues.ApplicationJson)
.body{
val id = new Random().nextInt(Int.MaxValue) + 1 // Вот в этой строке генерится одно и то же
// число для одновременных запусков
StringBody(s"""{"id":$id, "name":"${UUID.randomUUID()}"}""")
}
.check(jsonPath("$..id").ofType[Int].saveAs("eid"))
)
setUp(scn.inject(heavisideUsers(4).during(1 second)).protocols(httpConf))
}
如何在模拟中制作“真实”随机?
或者,我怎样才能Gatling
在请求之间强制暂停,以便每个人都获得不同的随机种子?
或任何其他有助于解决此问题的方法。
在enSO上找到答案:
您可以使用feeder:
所以随机效果很好。