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.
- Login
- Click on Write Post link
- Write Post (140 characters)
- Submit Post
- 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.No | Scenario | Actions | Transactions in seconds | Concurrent Users | Transactions to be achieved | % of total user |
1 | Submit PostScenariowith 3 iterations with 900 seconds ramp-up period | Login | 5 |
1500
|
1500 X 3 = 4500
|
100
|
2 | Click on Write Post link | 3 | ||||
3 | Write Post (140 characters) | 120 | ||||
4 | Submit Post | 3 | ||||
5 | Logout | 3 |
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.
Let me summarize the steps to design workload model.
- Analyze the application
- Identify the metrics such as transactions, concurrent users etc.
- Design the load distribution
- 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!
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.
ReplyDeleteRegards,
Software testing training|Software training
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.
ReplyDeleteSelenium Course in Chennai|Best Selenium Training Institute in Chennai
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
ReplyDeleteLoadRunner Training in Bangalore