<item>
<FeedbackId>357</FeedbackId>
<RequestDate>2012-04-08T00:48:49.493</RequestDate>
<FeedbackStatusName></FeedbackStatusName>
<FeedbackTypeName></FeedbackTypeName>
<AuthorFullName> </AuthorFullName>
<FeedbackStatusId>1</FeedbackStatusId>
<FeedbackTypeId>1</FeedbackTypeId>
<AuthorUserId>69</AuthorUserId>
</item>
import com.eviware.soapui.support.XmlHolder;
boolean b = true;
def soapRequest = testRunner.testCase.getTestStepAt(0);
// - item'
XmlHolder response = new XmlHolder( soapRequest.getProperty('Response').getValue() );
int numberOfItems = response.getXmlObject().selectPath('//item').size();
if (numberOfItems != 0)
{
XmlHolder row, item;
for (int i=1; i<=numberOfItems; i++) {
row = new XmlHolder( context.expand ( '${JDBC Request#ResponseAsXml#//Row['+i+']}' ));
item = new XmlHolder( context.expand ( '${GetFeedbackList#Response#//item['+i+']}' ));
//compareItemWithRow - ,
if (!compareItemWithRow (item, row) ) {
b = false;
//
break;
}
}
}
else {
//
def jdbcRequest = testRunner.testCase.getTestStepAt(1);
response = new XmlHolder( jdbcRequest.getProperty('ResponseAsXml').getValue() )
if (response.getXmlObject().selectPath('//item').size() != 0) {
log.error "There was no items in response but I found a few in database! WTF?!"
assert false;
}
}
assert b;
return;
/** 2 XmlHolder' , - - false*/
private boolean compareItemWithRow (XmlHolder item, XmlHolder row) {
boolean b = true;
if (!item.getNodeValue('//FeedbackId').equals( row.getNodeValue('//FEEDBACKID') )) {
log.error ('''FeedbackId doesn't corresponds database! Here could be your advertisment...'''
+ item.getNodeValue('//FeedbackId') + ' != ' + row.getNodeValue('//FEEDBACKID') +
'!!!ITEM: '+ item.getXml()+
' !!!ROW: '+ row.getXml());
b=false;
}
if (!item.getNodeValue('//RequestDate').equals( row.getNodeValue('//DATEINXML') )) {
log.error ('''RequestDate doesn't corresponds database! Here could be your advertisment... "'''
+ item.getNodeValue('//RequestDate') + '" != "' + row.getNodeValue('//DATEINXML') +
'" !!!ITEM: '+ item.getXml()+
' !!!ROW: '+ row.getXml());
b=false;
}
if (!item.getNodeValue('//AuthorUserId').equals( row.getNodeValue('//REQUESTUSERID') )) {
log.error ('''AuthorUserId doesn't corresponds database! Here could be your advertisment... "'''
+ item.getNodeValue('//AuthorUserId') + '" != "' + row.getNodeValue('//REQUESTUSERID') +
'" !!!ITEM: '+ item.getXml()+
' !!!ROW: '+ row.getXml());
b=false;
}
//...
return b;
}
Source: https://habr.com/ru/post/142429/
All Articles