Adaptive Load Scenario - How to Identify Performance Limits

*** Adaptive Load scenario is not currently available. We will soon publish an alternative ***

Every good test plan should include testing your application under different load scenarios such as: gradual load, stress, endurance, etc.

However before applying any load scenario it is a good practice to follow two very important steps:

  • Define your performance expectations
  • Identify your application’s performance limits

If these steps are skipped, we will run the risk of under or over testing our application.

Adaptive load scenario adjusts the load level according to your application’s performance in order to identify its limits.

One way to identify our application’s performance limits is by trying out numerous load levels to identify the appropriate load level that our application can support with an acceptable end-user experience. This process can require a few iterations and is not always accurate. To simplify the process of identifying performance limitations, we have recently introduced the adaptive load scenario . This scenario adapts the load level to the performance level of the application under test. The adaptation is made according to an acceptable service level that is defined prior to the test.

The adaptive load scenario decreases the load once errors are encountered or when the response time becomes unacceptable. The unacceptable response time is defined prior to the test.

The best way to utilize such a scenario is to use a larger load capacity. During the test, if the limits are reached the test will adapt and the limits will be identified.

Don’t be surprised if the identified limits are lower than expected. This will give you the chance to fine tune your application and test it again in order to make sure that the application can in fact support the required performance service level.

To illustrate the power of the adaptive load scenario , I will compare two test sessions ran against a website which is running on a 512MB server from Rackspace . For the two tests I used a simple business process which contains a short user sequence. In our scenario a user opens a browser, downloads a large file (4MB), waits for 10 seconds then loads a small HTML file (25KB) and then stops.

The first test will include a gradual load scenario. This scenario includes a gradual user ramp up from 0 to up to 100 concurrent users. The gradual load does not stop in case of errors or in case a response time is higher than defined. The second test will include an adaptive load scenario .

Gradual Load Scenario Results

During this test we ran the gradual load scenario which is not adaptive. Looking at the results of this test, it is clear that up to a level of 20 simultaneous users the response time presented an almost flat line. From that point, the response time began to increase. The load continued to grow and so did the response time. Although this test allowed us to identify the cause of the poor performance level (this issue was discussed in the post: Benchmarking Amazon Web Services Vs Rackspace ), it provided less intelligence regarding the performance limits. One could obviously guess that the limits are somewhere around the 20-30 simultaneous users, but a guess always provides less confidence.

Adaptive Load Scenario Results

For the adaptive load scenario , we defined 30 seconds as the unacceptable response time. This would mean that if a response time of over 30 seconds is met, the load level is reduced by one simultaneous user. An error, if encountered,would also decrease the load level by one simultaneous user.

Looking at the results of the second test, it is clear that the performance limit was reached and identified. Under the assertion that a response time of over 30 seconds is unacceptable, it is clear that the application can not support more than 20 simultaneous users.

When ever the load level was trying to go over it’s limit, it resulted in an unacceptable response time therefore decreasing the load level. Increasing the load level resulted again and again in an unacceptable response times.

Looking further into the reports reveals that out of 3,600 samples, 63 resulted in an unacceptable response time. The average response time was under 10 seconds.

The report on the right reveals the exact distribution of response time between responses.

Conclusions

The adaptive load scenario provides us with our application’s limits. It is very important to identify these limits as a first step prior to applying additional load scenarios.

Using the adaptive load scenario is only one alternative to identify these limits. Other scenarios can be used as well, however they are less accurate and may require multiple iterations.

To use the adaptive load scenario , simply use the PX lite interface. Add a test and choose the adaptive load scenario . Once you choose this scenario, a text box will appear asking you to choose the unacceptable response time, then save and start.

*** Adaptive Load scenario is not currently available. We will soon publish an alternative ***

BlazeMeter is a self service load and performance testing platform. Easily simulate any user scenario for webapps, websites, mobile apps or web services.

BlazeMeter is 100% JMeter compatible.
Run your own JMeter scripts in the cloud (JMeter-as-a-service) and easily test up to 100,000 concurrent users.

Learn More


How do I?

  1. Load Test Mobile Apps (Easily)
  2. Analyze the Results of a Load Test Using BlazeMeter
  3. Test X-Large Capacity Facebook Applications
  4. Load Test WordPress Sites
  5. Excluding Certain Domains from the Load Test
  6. Adaptive Load Scenario - How to Identify Performance Limits
  7. Adding a New JMeter Test-Plan
  8. Adding a Test to BlazeMeter's Load Testing Platform
  9. Benchmarking Amazon Web Services (AWS) vs Rackspace
  10. Best Practices
  11. Can I schedule a test to run at a certain time?
  12. Can we have server related KPIs like CPU, Memory, Disk I/O etc in the reports by installing any agents that you may provide ?
  13. Changing password
  14. Common File Storage
  15. Customize jmeter.properties and adding/editing a new/old JMeter property
  16. Customize JTL Properties
  17. Do you provide dedicated IPs?
  18. Download files from the Files tab
  19. How BlazeMeter simplifies maintaining JMeter scripts
  20. How can I download my site report?
  21. How can I make my report more detailed and present also embedded resources statistics
  22. How do I balance the "number of simulated users" on a test server?
  23. How to Cancel My Account
  24. How to make JMeter behave more like a real browser
  25. Using MSSQL JDBC Driver
  26. How to override basic JMeter properties from the test dashboard?
  27. How to run 1000 concurrent users using the BASIC plan
  28. How to setup a different CSV file for each JMeter engine?
  29. How to simulate .htaccess login
  30. I have short test iterations. Can I run different scripts using the same test in a single test hour?
  31. If I have a test just run 10 minutes, does it count for one hour? or I can run 5 tests in one hour?
  32. Ignore Requests in the Reports
  33. IP spoofing / Hosts file modification
  34. JTL files and Real Time Reports
  35. Leveraging Cloud Computing for Load Testing of Web Applications
  36. Monitoring the JMeterEngine(s) Vital Signs
  37. Post Test Actions
  38. Presenting JTL files in BazeMeter
  39. Recording HTTP traffic in the Cloud
  40. Restart a Test
  41. Running a SOAK test
  42. Select the Number of JMeter Engines
  43. Set JMeterEngine Command Line Arguments
  44. Set Load Geographical Origin
  45. Set the Console Command Line Arguments
  46. Set the JMeter Version
  47. Simulating logged in session using BlazeMeter
  48. [Mater/Slave] Synchronize and Aggregate the Results from Several Test Sessions in to a Single Aggregated Test
  49. Testing Amazon ELBs
  50. The Load Reports
  51. Upload Files
  52. Upload Proprietary JAR file
  53. Upload user.properties, system.properties and jmeter.properties Files
  54. Upload your JMeter Script
  55. Use Dedicated IP Addresses
  56. Use Selenium for User-Experience Monitoring
  57. USER EXPERIENCE MONITORING WITH SELENIUM
  58. User Experience Monitoring with Selenium
  59. Using Concurrent Pool Size - JMeter 2.5+
  60. Using CSV files with BlazeMeter
  61. Using Include Controller
  62. Using non-standard port. Unable to verify my site. Any workaround?
  63. Using Oracle JDBC Driver
  64. Using the Auto Scripting Feature with BlazeMeter
  65. Viewing Reports in GUI Mode
  66. SSL Manager and JKS files
  67. Using MySQL JDBC Driver
  68. Set the Time Zone
  69. Upload Many Files at Once
  70. Load Testing with HTTP Basic Authentication
  71. Find your Invoice
  72. Input field and form submission

Feedback and Knowledge Base