Использование переменной сеанса gatling в тройной строке

Как использовать переменную сеанса в StringBody Gatling?

Я определил мой 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)))

В теле хочу такой же assetId быть переданным как для европейского, так и для восточного регионов. Так как assetId генерируется случайным образом, я сохранил его в переменной сеанса, чтобы убедиться, что я использую один и тот же assetId для обоих местоположений.

Но я не могу пройти assetId в формате StringBody. Это продолжает давать мне ошибку, как,

AssetsMigrationLoadSimulation.scala: 31: не найдено: значение assetId | "url": " https://s3-eu-west-1.amazonaws.com/$ {bucketName} / $ {assetId}"

0 ответов

Как упоминал Ханс-Петер, ваша среда IDE увидела ${...}, который вы используете для ссылки на параметр сеанса gatling, и решила, что вы пытаетесь выполнить обычную интерполяцию строк в Scala, поэтому она поставила перед строки.

удалите 's', и это должно сработать

Другие вопросы по тегам