advanced assertions in soapui presented by kushan athukorala

Post on 05-Jan-2016

216 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Advanced Assertions in soapUI

Presented by Kushan Athukorala

2

Agenda

• XPath Match Assertion• XQuery Match Asserion• Script Assertions• WS-Addressing Response Assertion• WS-Addressing Request Assertion

3

XPath Match Assertion

• Study XPath First

4

XPath Match Assertion

• The XPath Match assertion allows specification of an XPath expression to be evaluated against the received response message and compare its result to a predefined value.

• Expressions can select everything from attribute values, make Boolean evaluations or select the entire response body.

• XmlUnit is used internally for comparing xml elements, nodes or hierarchies

5

XPath Assertion Examples

• Example1 - Validate that the result contains how many hits• declare namespace ns1='http://webservices.amazon.com/AWSECommerceService/2005-07-26';

count(//ns1:Item)

• Example2 - Validate that the ProductGroup element always is "Book“• declare namespace ns1='http://webservices.amazon.com/AWSECommerceService/2005-07-26';

count(//ns1:ProductGroup[text()!='Book'])

• Example3 -Validate that DetailPageURL always starts with 'http://www.amazon.com/exec/obidos':• declare namespace ns1='http://webservices.amazon.com/AWSECommerceService/2005-07-26';

count(//ns1:DetailPageURL) = count(//ns1:DetailPageURL[starts-with(text(), 'http://www.amazon.com/exec/obidos')])

6

XQuery Match Assertion

• Study XQuery First

7

XQuery Match Assertion

• The XQuery Match assertions is configured exactly like the XPath Math assertion described above.

• Difference being that the specified expression is evaluated as an XQuery expression instead

• This assertion is useful when you want to assert a subset of your data and for example not be dependent on other data, the data order, etc

8

Script Assertion – Using Groovy script editor

• Script Assertion allows for arbitrary validations • Script has access to the following objects:

• messageExchange : Message Exchange for the current request/response. Gives direct access to message content, HTTP Headers, Attachments, etc.

• context : TestRunContext running the current TestCase, this will for now always be an instance of WsdlTestRunContext

• log : a standard log4j Logger object available for logging arbitrary information

9

Examples

• Validate a certain response time• assert messageExchange.timeTaken < 400

• Validate existence of a response HTTP Header• assert messageExchange.responseHeaders["x-amz-id-1"] != null

• Validate the existence of a specific element using GroovyUtils• def groovyUtils = new

com.eviware.soapui.support.GroovyUtils( context ) def holder = groovyUtils.getXmlHolder( messageExchange.responseContent ) assert holder["//ns1:RequestId"] != null

10

WS-Addressing Response Assertion

• Validates that the response has valid WS-A header properties.

11

WS-Addressing Request Assertion

• Validates that the request has valid WS-A header properties

12

Thank You

13

USA INDIA SRILANKA UK

www.virtusa.com

© V I r t u s a C o r p o r a t i o n

"Virtusa" is a trademark of the company and a registered trademark in the EU and In India. "Productization" is a service mark of the company and a registered service mark in the United States.

"vRule" is a service mark of the company.

For more information please contact SalesInquiries@virtusa.com

top related