Tuesday 18 August 2015

Work Load Profile or Model for Biggners

What is Workload Modeling? 

Load distribution across all the identified scenarios of AUT is called the Workload. Workload model of an application depicts how this application will be used in the production environment. In order to get such performance test results which portray the true picture of AUT, it should be tested on a workload model which is very similar to the production environment. The complete understanding of AUT and its usage patterns is mandatory before modeling its workload. For a better understanding of the concept, workload modeling can be divided into business workload and infrastructure workload

Workload model provides the information of what type of user actions will be tested under load, what will be the business scenarios for all the users and what will be users’ distribution on every scenario. This information helps the performance testing teams in many ways such as:

1 Performance Scenarios Identification: The fundamental activity of the Workload model is to understand the application and identify its performance scenarios. 

2. Performance Test SLAs: Performance testing teams translate AUT non-functional requirements into performance test SLAs through workload model. 

3. Makes Communication Easier: Workload model makes it easy for the performance testing teams to communicate the AUT performance scenarios and users’ distribution on them with all the application stakeholders.

4. Test Data Preparation: Workload model helps in identifying the type and amount of test data which is always required before the working on the tool is started. 

5 Required Number of Load Injectors: You always require a lot of infrastructures to successfully conduct the performance testing activity. Incorrect results are produced if the application is tested with inadequate infrastructure. Normally users load is simulated from multiple machines (i.e. load injectors) for accurate testing which is also identified from the Workload model. 

While designing workload model for banks or financial sector application, once should consider repeatability as well as scalability too.
Before designing workload model, it is important to collect relevant data which helps us to create effective workload model. Following items are required, in order to design effective workload model.
  • Number of concurrent users
  • Total Transactions to be achieved
  • Scenario and its Actions
  • % of total user for an action
Consider a web application which publishes your post across social medias; total number of concurrent during peak business hours (from 11:00 to 13:00) per day is 1500. Following are the list of transactions performed by the users.
  1. Login
  2. Click on Write Post link
  3. Write Post (140 characters)
  4. Submit Post
  5. Logout
Our objective is to design workload model to perform load testing. From the available data, I have arrived workload model as shown below.
S.NoScenarioActions                              Transactions in seconds         Concurrent UsersTransactions to be achieved% of total user
1Submit PostScenariowith 3 iterations with 900 seconds ramp-up periodLogin5
1500
 1500 X 3 = 4500
100
2Click on Write Post link3
3Write Post (140 characters)120
4Submit Post3
5Logout3
Above table has a scenario Submit Post with 3 iterations along with 15 minutes of ramp up period, hence the transaction to be achieved will be 4500. There is 100% load distribution across all the actions. Now next step is to prepare the graph for load testing.
Preparing workload model graph
Usually load testing will be done at least for an hour with 15 minutes of ramp-up and ramp-down period, and the steady state period will be for 1 hour. Below is the pictorial representation of workload model.


How to design workload model for load testing
Let me summarize the steps to design workload model.
  1. Analyze the application
  2. Identify the metrics such as transactions, concurrent users etc.
  3. Design the load distribution
  4. Design the workload graph
Important note: it is not advisable to have steady state during the initial phase; because sudden load to the server may clog the server resources and leads to internal failure. Continuing the load test with such failures gives invalid data for analysis.
Please let me know if you have any questions in comments section. Thanks!

3 comments:

  1. Nice Post! It is really interesting to read from the beginning & I would like to share your blog to my circles, keep your blog as updated.
    Regards,
    Software testing training|Software training

    ReplyDelete
  2. This information is impressive; I am inspired with your post writing style & how continuously you describe this topic. After reading your post, thanks for taking the time to discuss this, I feel happy about it and I love learning more about this topic.
    Selenium Course in Chennai|Best Selenium Training Institute in Chennai

    ReplyDelete
  3. you blog is very useful SAP bods learners.very informative content and detailed topic explanation.one of the recommanded content.we are very glad to leave a comment here.thank you for sharing your knowledge.also visit our blogs
    LoadRunner Training in Bangalore

    ReplyDelete