我使用SOAP UI Free。
我想验证先前的响应是否返回number(id)并有条件地运行特定的teststep。 我的伪代码如下。如何使用groovy实现此操作?
如何获得回复并验证是否包含数字并返回200?
如何提取此编号并将其用作下一个请求中的参数
如何判断回复是否正确?
响应样本(200):
523455
响应示例(404):
{
"category": "BUSINESS",
"code": "NOT_FOUND",
"description":"Account not found",
"httpStatus": 404
}
1.step GET accountId
2.step GROOVY
if(accountId is number and returns 200){
extract this number from json
run testRunner.testStep("removeAccount) for extracted number
if(response.equals("true"){
testRunner.runTestStep("createNewAccount")
}
}
答案 0 :(得分:0)
1 - 使用属性转移步骤:
此外,如果你想要Http状态代码,你应该用另一个自定义变量将groovy脚本存储起来,使用类似这样的东西:
curHeaders = testRunner.testCase.testSteps["Get token"].testRequest.response.getResponseHeaders()
testRunner.testCase.setPropertyValue("http status", curHeaders["#status#"][0])
2 - 使用groovy脚本步骤: 检索上面的变量:
curId = testRunner.testCase.getPropertyValue("curId")
curHttpStatus = testRunner.testCase.getPropertyValue("http status")
如果为true,则测试这些变量并运行测试步骤“removeAccount”:
if(curId && (curHttpStatus == 'HTTP/1.1 200 OK'))
{
removeActionTestStep = testRunner.testSteps["removeAccount"]
removeActionTestStep.run(null, false)
}
注意:removeAccount测试步骤应该引用curId自定义变量(例如使用“$ {#TestCase #curId}),因此它使用此id运行
您可以使用jsonSlurper
添加删除后的createAccount部分removeActionResultJSON = context.expand('${removeAccount#Response}')
removeActionResultJSONSlurper = new groovy.json.JsonSlurper().parseText(removeActionResultJSON )
然后定位你的响应使其等于true的位置,然后使用另一个if-run语句,如下所示。
希望这有帮助,
托马斯