Groovy Assertion追加响应标记值并在属性中设置

时间:2017-04-25 05:54:05

标签: groovy soapui

我从JDBC测试步骤获得了以下响应。这包括ErrorCode,ErrorType& ERRORTEXT。

<Row rowNumber="1">
     <ErrorType>W</ErrorType>
     <ErrorCode>000001</ErrorCode>
     <ErrorText>Message receiver not set to insurer or reinsurer</ErrorText>
  </Row>
  <Row rowNumber="2">
     <ErrorType>W</ErrorType>
     <ErrorCode>000002</ErrorCode>
     <ErrorText>Service Provider is not present in the message</ErrorText>
  </Row>

我想追加ErrorType&amp;在“名称”列中设置的ErrorCode和在JDBC测试步骤旁边创建的“属性”测试步骤的“值”列中的ErrorText。 我的属性步骤应如下面的屏幕截图所示。

enter image description here

相信这可以通过在JDBC测试步骤中添加Groovy Assertion来完成。有人可以帮忙吗?如需更多信息,请通知我

1 个答案:

答案 0 :(得分:1)

以下是JDBC Request测试步骤的脚本声明。无需额外的Groovy Script测试步骤。

脚本断言

//Define the property test step name, change if needed
def stepName = 'Properties'
//check the response
assert context.response, 'response is empty'
def xml = new XmlSlurper().parseText(context.response)
//Get the response data as map
def map = xml.'**'.findAll { it.name() == 'Row' }.inject([:]){m, item -> m[item.ErrorType.text()+item.ErrorCode.text()] = item.ErrorText.text();m}

def step = context.testCase.testSteps[stepName]
//Use below statement if you need to remove existing properties and just keep the properties from current response only
step.propertyNames.each { step.removeProperty(it)}
//Create properties as needed into properties step from jdbc response
map.each { step.setPropertyValue(it.key,it.value)}

您在线检查是否将jdbc响应作为地图 - Demo