首页 > 解决方案 > Gatling Scripts-如何在以下请求中使用不同的纪元时间提供 eventdatetime

问题描述

Gatling Scripts - 我怎样才能在下面的请求中使用不同的纪元时间作为馈送器来馈送 eventDateTime。Id 以循环方式通过馈线馈送。下面的请求位于使用 ELFileBody 提供的文件中。event-new.json 看起来像

{
  "events": [
    {
      "eventDataModel": {
        "eventStatus": "ON",
        "eventDateTime": 1598271042436
      },
      "transactionModel": {
        "id": "${ID}"
      }
    },
    {
      "eventDataModel": {
        "eventStatus": "ON",
        "eventDateTime": 1598271043436
      },
      "transactionModel": {
        "id": "${ID}"
      }
    },
    {
      "eventDataModel": {
        "eventStatus": "ON",
        "eventDateTime": 1598271044436
      },
      "transactionModel": {
        "id": "${ID}"
      }
    },
    {
      "eventDataModel": {
        "eventStatus": "ON",
        "eventDateTime": 1598271045436
      },
      "transactionModel": {
        "id": "${ID}"
      }
    },
    {
      "eventDataModel": {
        "eventStatus": "ON",
        "eventDateTime": 1598271046436
      },
      "transactionModel": {
        "id": "${ID}"
      }
    },
    {
      "eventDataModel": {
        "eventStatus": "ON",
        "eventDateTime": 1598271047436
      },
      "transactionModel": {
        "id": "${ID}"
      }
    },
    {
      "eventDataModel": {
        "eventStatus": "ON",
        "eventDateTime": 1598271048436
      },
      "transactionModel": {
        "id": "${ID}"
      }
    },
    {
      "eventDataModel": {
        "eventStatus": "OFF",
        "eventDateTime": 1598271049436
      },
      "transactionModel": {
        "id": "${ID}"
      }
    }
  ]
}

以上是使用 gatling 脚本中的 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)))

标签: scalagatling

解决方案


从加特林 3.3 开始:

.exec { session =>
  session.set("timestamp", System.currentTimeMillis())
}

然后替换1598271049436${timestamp}.

或者,在 Gatling 3.4 中出现:如果您可以为 JSON 有效负载中的每个事件使用不同的值,则1598271049436直接替换为。${currentTimeMillis()}


推荐阅读