修改JSON响应以发送回加特林/ Scala中的api

问题描述

我正在做一些加特林行动,由于我从不做scala,所以我有点迷失了。 我想修改我收到的JsonPath的JSON响应,然后再将其发回

我的代码如下

  .exec(
    http("Get call")
      .get("getEndpoint")
      .check(jsonPath("$.value").saveAs("RESPONSE_DATA"))
  )
  .exec(
    http("Post call")
      .post("postEndpoint")
      .header("content-type","application/json")
      .body(StringBody("${RESPONSE_DATA}"))
      .asJson
  )

例如,我想更改为从Get Call在Json中接收的用户的名字。我无法找到加特林文档的答案

解决方法

感谢Lars的评论,我设法找到了解决方案。我太专注于寻找加特林的特定方法,而我忘记了进行编程的基本方法

这里是新代码

  .exec(
    http("Get call")
      .get("getEndpoint")
      .check(jsonPath("$.value").saveAs("RESPONSE_DATA"))
  )
      .exec(session =>
        {
          // put body response into variable
          val response = session("RESPONSE_DATA").as[String];
          // generate random string as you convenience
          val randomString = Random.alphanumeric.filter(_.isLetter).take(5).mkString;
          // use replace method to modify your json (which is right now a string)
          newResponse = response.replace(
            """specificKey":""","""specificKey":""" + randomString + "",)
          session
        }.set("RESPONSE_DATA",newResponse)
        // ^ really important to set the new value of session outside of brackets !!
      )
  .exec(
    http("Post call")
      .post("postEndpoint")
      .header("content-type","application/json")
      .body(StringBody("${RESPONSE_DATA}"))
      .asJson
  )

不是我做的更干净的代码,但是它可以工作。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...