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.

Advertisements
Comments
  1. Aaron says:

    excellent~~~I have shared your blog with my colleagues and they all are interested in your post here. great job~~~

    thanks,
    Aaron

  2. This is very interesting! Great information and it is also very well written. I will bookmark and comeback soon.

  3. I would say it can be my extremely 1st time viewing your web site. I can undoubtedly write that it contains a great number of helpful points. Excellent website. I just finished mine and i was looking for some ideas and you gave me a couple of. Great read!

  4. Aditya Julka says:

    great tutorial …
    however, i want to know how is it possible to perform load tests using Groovy script ?

    • Thanks!
      Load test using groovy? Bit confused with this.
      Yes, you can put the load or vary the load using the groovy script snippet. Not sure if you are looking for some other answer.

  5. bsk says:

    too good! 🙂

  6. swathi says:

    HI pradeep, Please can you tell me how to calculate time daly and random here if ..i need to have like 40 tps , and 200 threads..what should be my time delay and random to achieve 4o transaction per second. how should i calculate it.

  7. swathi says:

    Nice blog.really it is very helpful to me..
    Hi, I have 3 separate test cases..each having a groovy script, property step, request step..in my groovy script iam calling the a txt file and so that my request randomly pick the values from it and give the response…so i need to do load for these 3 as well… if i run these 3 load tets parallelly my perfomance is degarding..so i would like to run these 3 loadtests randomly picking each test cases….how can i do this? pls let me know.. TIA

  8. valarmathi says:

    Hi Pradeep..
    I am having a doubt..pls clarify me…here is my doubt..when i m testing three testrequests at a time and i have set Threads as “5”,each testrequest will take 5 threads or commonly for all the three tescases the total thread is 5??/…please clarify my doubt

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s