Wednesday, May 11, 2011

SoapUI: Verifying a url in the content of a page

We had a little discussion on SoapUI test cases and one question was could we extract an url from the response and use load the content from the page it is pointing to. This was important as we were testing a RESTful framework. Task is trivial when using a programming/scripting language (I was planning to develop the test framework using Perl and it would have been just couple of lines) but could not think of a reliable way of doing it in soapUI. The biggest problem was when a test step is defined as a REST request, you can't arbitrarily change the endpoint (You can, but found sometimes it does not actually use the updated link).

The trick is to have a test step as a HTTP request instead of REST. Then the endpoint is kind of free form. In a property transfer step, XQuery nicely extracted the url and set as the endpoint of HTTP request. Bingo! it's done!

This is how I did it. Say you have the following XML content in a response and wanted to create a request for the url in tag <myweb>
<Everybody>
<me>
<myweb>http://www.myweb.local</myweb>
<...>... </...>
<...>... </...>
</me>
<...>
<...>
</Everybody>
I used a property transfer with following settings. Note that you have to declare the namespaces if exist in the response.


Press run, there you have the endpoint of 'goto myweb' request is set!

Tuesday, May 10, 2011

It has been a while ..

Did not have a chance to look at this for a while. After starting to work at Auckland transistion authority as a test manager in last July, life got kind of busy, till I finished the contract in December 2010.

Started working at AUT on their new student portal. It is an interesting job. Inintially the plan is to use Perl to automate it, but changed to SoapUI. I kind of started liking soapUI more than I expected. User freindliness is limited in the free version :-) but I'm impressed with the flexibility. I could implement all the tests planned under Perl infrastructure using soapUI and it is quite an achievement. I will post some of the techiques used in this blog.