SoapUI REST响应会话令牌

时间:2016-09-28 21:05:33

标签: json groovy soapui

我需要解析来自请求1的响应,并将响应中的特定数值传递给请求2.以下是JSON响应。

HTTP / 1.1 200好的 日期:2016年9月28日星期三19:42:35 GMT 内容长度:61

{ "response":"New session Created with session Id 123456789101213" }

我应该使用什么 - 常规或财产转移? 如果groovy - 请让我知道我应该使用什么代码 如果属性转移 - 我应该使用什么样的解析消息?

1 个答案:

答案 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}

注意:当然,也可以在套件或项目级别设置值,这样可以分别在套件或项目级别重用检索到的值