Adi*_*tya 5 scala performance-testing gatling scala-gatling gatling-plugin
如何在 gatling 的 StringBody 中使用会话变量?
我已经定义了我的exec喜欢,
val migrateAsset = exec(_.set("assetId", AssetIdGenerator.generateRandomAssetId()))
.exec(http("Migrate Asset")
.post(s"$url/asset/metadata")
.header("Content-Type", "application/json")
.header("Authorization", s"Bearer ${authToken}")
.body(StringBody(
s"""
|{
| "objectType" : "DocumentType",
| "fileName" : "main.xml",
| "locations" : [
| {
| "region" : "eu-west-1",
| "url" : "https://s3-eu-west-1.amazonaws.com/${bucketName}/${assetId}"
| },
| {
| "region" : "us-east-1",
| "url" : s"https://s3.amazonaws.com/${bucketName}/${assetId}"
| }
| ],
| "format" : "MAIN",
| "mimeType" : "text/plain"
|}
""".stripMargin
))
.check(status.is(200)))
Run Code Online (Sandbox Code Playgroud)
在正文中,我希望assetId欧盟西部和美国东部地区都通过同样的检查。由于 assetId 是随机生成的,因此我将其存储在会话变量中以确保我对两个位置使用相同的 assetId。
但我不能通过assetIdStringBody 格式。它不断给我错误,例如,
AssetsMigrationLoadSimulation.scala:31: not found: value assetId | "url" : " https://s3-eu-west-1.amazonaws.com/ ${bucketName}/${assetId}"
正如 Hans-Peter 提到的 - 你的 IDE 已经看到了你用来引用 gatting 会话参数的 ${...} 并决定你正在尝试进行常规的 scala 字符串插值 - 所以它把 's' 放在前面字符串的。
删除 's',这应该可以工作
| 归档时间: |
|
| 查看次数: |
1621 次 |
| 最近记录: |