Archive for the ‘Load Testing’ Category

Having explored different areas of “Functional testing of WebServices using soapUI” in previous blog posts, now we will move on the Performance testing/Load testing feature. In this post, i will touch upon certain very simplest and basic steps/info required to perform the WebService Performance/Load Testing through soapUI.

Load/Performance testing is the term use to identify(or check the capability) the ability of any program (in this case WebService) to handle the amount of load (in terms of users, data request/response and so on) at any given instance of time.

And to achieve this using soapUI, eviware (now SmartBear) provided a special teststep type – “Load Test”. This feature is available in both the open source & pro version.

Having created a testcase under your project / testsuite, you can find 2 nodes : “TestSteps” & “LoadTests”.

TestSteps is the one which is used to add different teststep of type – TestRequest, HTTP , JDBC, DataSource, DataSink etc etc.

LoadTests will be main focus here : to add a new test step “Ctrl + N” or right click and “New Load test”
The then newly created load test will contain all the teststeps (any type including groovy scripts, property,conitional goto etc) belonging to the same parent TestCase. And as a tester (or end user) you can decide which all you want to execute by disabling the other teststeps. Now so created loadtest will contain the complete list of enabled + disabled teststeps and we have to provide the LOAD parameters.

Load test window

Different Load test strategy

Different limit types

Please make sure that all the teststeps are pointing to same endpoint against which you have to perform the load test.
Following are the parameters which will help you define the load for your test :

Threads : Number of virtual users or threads which will send out the WebService request to provided endpoint.

Startegy : “Simple” is the default load test stratergy type to be used. In this all the multiple request would be sent in the sequence. Other stratergy like script, burst, grid, fixed rate can be used to define the different pattaern of load generation.

Test Delay : This is the number of milliseconds delay to be introducted between 2 successive tests. It generally calculates the value based on Random number provided.

Random : This number together will test delay will generate the random time, which will be introducted as delay.

Limit : It defined the limit (in term of seconds, total run, runs per thread) for which you want to execute your load test.

Also, you can select any specific test step from the load test list and by right clicking add some basic assertion to decide on the status of your load test. So based on load test startergy used you can assert if the number of maximum or step TPS (transaction per second) has reached a certain threshold.

A simple  scenario to perform a Load test for 20 users, 200 ms test delay and for 5 min, would have following values :

Thread = 20
Strategy = Simple
Test delay = 200
Random = 0.5
Limit = 300 Seconds

P.S : LoadUI is the official software released by eviware (now SmartBear) to perform load testing of WebServices. It provides more advanced features + allows in depth analysis of data + graphs + awesome UI + many more. Download loadUI from loadui.org & it is FREE.