我有来自REST API的json输出,我想捕获id(来自响应)并将其作为参数传递给另一个测试。有可能吗?
{
"Documents": "1",
"maxResults": "1000",
"pageSize": "1",
"startIndex": "0",
"documents": [ {
"id": "sdfg7234-shdjfh823-wjk283-sdjf29",
"name": "nameofodc.doc",
}]
}
答案 0 :(得分:0)
这是一个groovy脚本,它可以从给定json响应的id
中检索documents
,然后将该值存储到名为ID
的测试用例级自定义属性中。
此脚本正在使用static / fixed response
进行演示。
import groovy.json.*
def response ='''{ "Documents": "1", "maxResults": "1000", "pageSize": "1", "startIndex": "0", "documents": [ { "id": "sdfg7234-shdjfh823-wjk283-sdjf29", "name": "nameofodc.doc", }] }'''
//Parse the response string
def parsed = new JsonSlurper().parseText(response)
//Extract the value of id and store it at test case level property ID
context.testCase.setPropertyValue('ID', parsed.documents[0].id.toString())
如果您希望脚本使用动态响应,请将以上语句的第二个语句替换为以下语句。
//Replace LoginRequest with actual test step name def response = context.expand( '${LoginRequest#Response}' )
如何在其他步骤中使用上述存储的ID
?
context.expand('{#TestCase#ID}')
或
def id = context.testCase.getPropertyValue('ID') log.info "ID retrieved from test case property is ${id}"
${#TestCase#ID}