Web 服务请求中的 while 语句

While statement in web service requests

我是katalon工作室的新人。我想在 PUT 请求中做 while 语句。我把一切都做好了,但我想知道是否有可能以某种方式只获得 statementIds,如果每个 statementId 都不同,就计算它们。这是我的脚本。

我只提出了 5 个请求,我可以手动检查 statementId 是否不同,但是当我提出 100 个或更多请求时,将很难手动检查它。我认为,我需要捕获 statementId。

WS.sendRequest(findTestObject('Object Repository/PUT_Count'))
RequestObject request_object = findTestObject('PUT_Count')
String startDate = "2018-02-02"
String endDate = "2019-01-01"
boolean inEquivalent = false

while(GlobalVariable.accountId < 5) {
    request_object.setRestUrl(String.format(request_object.getRestUrl(), GlobalVariable.accountId, startDate, inEquivalent))

    ResponseObject response = WS.sendRequestAndVerify(request_object)

    WS.verifyResponseStatusCode(response, 200)

    int statusCode = response.getStatusCode()

    String bodyContent = response.getResponseBodyContent()

    System.out.println((('Status Code: ' + statusCode) + ':') + bodyContent)

    GlobalVariable.accountId++
}

输出为:状态代码:200:{“statementId”:“11dbfd2f-3d30-493c-b41a-c40a83e41269”,“accountId”:123,“accountIban”:“12345”,“ccy”:“One ”,“startDate”:“2018-12-10”,“endDate”:“2019-01-09”,“startBalance”:100.0,“endBalance”:1000.0,“startPointer”:“0094230492304923090Anffjle39440583490434rieklfrlfkjedtu8er9t7548684568t9fkgmndflkgr5908yt546”}

P.S 我试图捕捉 statementId,所以:String statement_id = request_object.statementId,也做到了:String statement_id = request_object.getName("statementId"),意识到在 request_object 中只存储请求,没有其他, 但是response没有这样的东西只能得到一个对象。

您需要将 JsonSlurperbodyContent 一起使用:

import groovy.json.JsonSlurper
JsonSlurper slurper = new JsonSlurper()
Map parsedJson = slurper.parseText(bodyContent)

然后尝试获取 statement_id:

String statement_id = parsedJson.statement_id