Saturday, 25 April 2009

soapUI and a few other tools

I have a bunch of tools which I need to have a good look at but just need to find the time to do so. They normally just sit in open tabs in Firefox and I live in hope that Firefox doesn't lose them for any reason.

Though this week I did get some time to play with soapUI. I have used soapUI before but that was a while ago and someone else had already set up the SOAP queries and was an old version and I just left it at that because had a tight deadline to meet and just had to get the testing done. Which meant back then I didn't have all that much time to learn the tool. Though this week I had to give a demo of soapUI to some people, so I had do some playing with it and learn about it quickly.

Well it was a lot more powerful than I thought it was. Up to now I knew it could make SOAP requests based on a WSDL and then have those requests editable to send to your servers. There is the one gotcha that need both the WSDL and the XSD in the same directory if pulling it from a directory on your computer . Well that feature is all good and comes in handy as is an easy way to send requests in and get a response back from a web service.

So this week I found out it will also do proper testing rather than a tool just to do do ad hoc SOAP requests. You can set up test cases that will do assertions and what not so it will tell if you get the correct response back or not. If the build in assertions are not enough there is Groovy scripting, so you can do what ever validation you want. It can then run the test suite and make you a nice little report at the end of it. It can also go the next step and does load test using your test suites. I haven't really dug that much into load and performance testing as recently the projects I have been on haven't needed it all that much in the areas I have been testing. It also looks like you can script this this all up and rather than having to use a GUI to trigger it the test runs off. This would be quite nice as then you can put it on your automated build and validation server and have run all the time and alert the developers as soon as a regression occurs or use it as test driven development, where all the tests are created ahead of time and they keep developing until all the tests past.

The other neat feature I found out that soapUI has is that it can create you mock web services. This will come in handy where you have you an application which is a web service client and the application which is providing the web service isn't available yet and you need to start testing. So long as the WSDL is ready you can quickly make a mock web service which will respond to your requests with either hard coded or if you want can use Groovy to make your responses a little more dynamic.

If you already have the client and server side built and either want to build a test suite, migrate a suite of tests from a another tool or want to get some response timings there is a proxy tool. What you can set this up to do is sit between the client and the server and it will record everything that is going backwards and forwards and can covert this into a test case or a mock web service.

Best of thing of all is that this it is an open source tool. There is a pro version which you will need pay for. It adds things like coverage, access to data sources and sinks (which you can use other tools to populate or validate) and a better global store for your Groovy scripts amongst some other things.

The other tools which I would like to have a better look and haven't had a good chance to learn about yet are:
  • Mantis - This is a defect tracking tool. I have had a look at this and am really liking it. What I need to do it is get a proper work flow set up in it and some dummy projects which match some of our real projects, so people can get a real feel for it and try and get it in for at least the up to System Testing of projects while they are still internal and haven't gone to the client yet, where on the whole need to use their own corporate defect tracking system.
  • Sonar - This a tool for static analysis for the code. I haven't done much more looking at than what is on the website for it, but from that it looks quite interesting.
  • Testlink - A Test Case management tool. Like sonar haven't done much more looking at than what is included on it web site.
  • Session Tester - A tool for writing down your session notes. This is one to watch to see how it develops over time (it is only 0.2). Though it doesn't 100% work how I like to work as I like my notes to be much more of a time line with everything intertwined on timestamps, so when come across and issue or bug you can easily see where it fits in with the actions that you did and have timestamps to aid looking in the logs.
  • Spawner – This a tool which will generate data to populate a database do you when you need a bunch of data in the tables. I have had a look at it previously one this blog. IT will do all your different data types and what not. It is far better than the way I previously did it by writing a Python to make me a bunch of insert statements.


pasc said...

Hi Dave,

soapui is realy a great tool. Sea also SoaMoa a generic SOAP cleint as RCP application. Creates junit test cases and groovy scripts