groovy-将rest响应体中的两个json值(int,string)保存到globalvariable

r3i60tvu  于 2021-07-08  发布在  Java
关注(0)|答案(0)|浏览(255)

我们引入了一个特性,它要求特定于用户的api请求包含一个新的自定义http报头,我们将调用它 X-UserToken . 当 POST /create/user 请求被激发,新用户被创建,请求主体返回 userId 和一个 userToken --那个 userToken 然后需要设置为 X-UserToken 特定于此用户的所有请求的http头((见下文)

{
  "data": {
    "userId": 10023348,
    "userToken": "SampleTokenString.abcd.123.efg.sampleTokenString",
    "messages": [],
    "questions": [],
    "verificationStatus": "success"
  },
  "errors": [],
  "requestId": "abc-123-xyz",
  "status": 200
}

在此更改之前,我成功地保存了 userId int作为全局变量,并将其传递到同一自定义关键字脚本中的所有后续自定义web服务关键字中。这很有效。但现在,我需要拯救这两个世界 int userId 以及 String userTokencreate/user 请求并通过 int userId 作为请求体参数传入后续请求,并传递 String userToken 作为http头变量。我的问题是,我似乎只能救一个或另一个,而不是两个。
这是保存 userId jsonresponse值,但我不知道如何保存 userId 以及 userToken .
@关键字文件:

def createUser(String firstName, String lastName, String birthDate) {
    def response = WS.sendRequestAndVerify(findTestObject("Postman/User/create",
            ["firstName": firstName, "lastName": lastName, "birthDate": birthDate]))

    def jsonResponse = jsonSlurper.parseText(response.getResponseText())
    return jsonResponse.data.userId
    return jsonResponse.data.customerToken
}

katalon测试用例脚本步骤:

int userId = CustomKeywords.'user_Lifecycle_API.API_userFlow.createUser'(
    firstName, lastName, birthDate)

当我尝试更新两个测试用例脚本以包含 String userToken ,我得到错误。我想尽一切办法都试过了,但似乎什么都没用。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题