问题描述
加特林脚本-如何在以下请求中以不同的纪元时间来提供以下请求中的eventDateTime作为供稿器。 Id以循环方式通过馈送器馈送。以下请求位于使用ELFileBody馈送的文件中。 event-new.json看起来像
{
"events": [
{
"eventDataModel": {
"eventStatus": "ON","eventDateTime": 1598271042436
},"transactionModel": {
"id": "${ID}"
}
},{
"eventDataModel": {
"eventStatus": "ON","eventDateTime": 1598271043436
},"eventDateTime": 1598271044436
},"eventDateTime": 1598271045436
},"eventDateTime": 1598271046436
},"eventDateTime": 1598271047436
},"eventDateTime": 1598271048436
},{
"eventDataModel": {
"eventStatus": "OFF","eventDateTime": 1598271049436
},"transactionModel": {
"id": "${ID}"
}
}
]
}
上面是使用gatling脚本发布的event-new.json 加特林脚本的摘要
val idFeeder = csv("Id.csv").circular
val trip_dte2 = scenario("Event")
.Feed(idFeeder)
.exec(http("event")
.post( event_url)
.headers(headers)
.body(ElFileBody("event-new.json")).asJSON
.check(status.is(201)))
解决方法
从加特林3.3开始:
.exec { session =>
session.set("timestamp",System.currentTimeMillis())
}
,然后将1598271049436
替换为${timestamp}
。
或者,coming in Gatling 3.4:如果可以将JSON有效负载中的每个事件的值设置为不同,则可以直接将1598271049436
替换为${currentTimeMillis()}
。