我需要解析来自请求1的响应,并将响应中的特定数值传递给请求2.以下是JSON响应。
HTTP / 1.1 200好的 日期:2016年9月28日星期三19:42:35 GMT 内容长度:61
{ "response":"New session Created with session Id 123456789101213" }
我应该使用什么 - 常规或财产转移? 如果groovy - 请让我知道我应该使用什么代码 如果属性转移 - 我应该使用什么样的解析消息?
答案 0 :(得分:0)
是的,它可以通过任何一种方式完成,这是一个额外的步骤。
通过在当前测试步骤中使用Script Assertion
,也可以不执行该额外步骤。在那里也可以断言响应。
伪指令:
脚本断言
/**
* This is a script assertion
* which reads the response and asserts if there is response
* reads response property and sets at test case level property SESSION_ID
*/
def jsonString = context.response
def json = new groovy.json.JsonSlurper().parseText(jsonString)
//Check if the response is not empty or null
assert json, "Response received is empty or null"
def sessionId = json.response as String
//Check if there is reponse property exists in response json
assert sessionId, "response property is empty or null"
log.info "Session id : ${sessionId}"
//To set the value at test case level
context.testCase.setPropertyValue('SESSION_ID', sessionId)
如何在测试用例的其他测试步骤中使用检索到的Session Id?
如果步骤类型是Groovy Script,请使用以下两种方法之一:context.expand('${#TestCase#SESSION_ID}')
或
context.testCase.getPropertyValue('SESSION_ID')
如果步骤类型是其他类型,例如SOAP,REST,JDBC,HTTP等,则使用:
${#TestCase#SESSION_ID}
注意:当然,也可以在套件或项目级别设置值,这样可以分别在套件或项目级别重用检索到的值