Bahmni Performance Baselining (OnPrem + JMeter)

Source Code: https://github.com/albionshala/asha-bahmni-performance

⭕️ Automation Technology Stack

  • JMeter was used as an Apache project that can be used as a load testing tool for analyzing and measuring the performance of Bahmni (https://jmeter.apache.org/)

  • Blazemeter as a load testing platform as a service, which is compatible with open-source Apache JMeter (https://www.blazemeter.com/)

⭕️ Base Configuration

Hardware

The performance environment was running on a on-prem Virtual Machine

  • CPU: 8 CPU(s)

  • RAM 16GB

  • Hard Disk 1: 100GB

  • Hard Disk 2: 100GB

Installing Tools

The performance environment was running on a Virtual Machine

Install Blazemeter

For performing the tests, as previously mentioned a VM was used. Therefore, BlazeMeter as well is installed in Chrome there. After recording the script itself we need to export it as a JMX file because JMeter consumes such file as a basis for then conducting the test.

Thus, please follow the below-listed steps:

  1. Open a Gmail account to log in to Chrome

  2. Install BlazeMeter as a Google Extension: https://support.google.com/chrome_webstore/answer/2664769?hl=en

  3. Log in BlazeMeter (because can't export a recording as a JMX without being logged in) with the Chrome account.

  4. Record a scenario in Bahmni with BlazeMeter (e.g. Logging in and starting a new visit). After finishing the recording we can export the file as JMX *Example on how to record a script: https://www.youtube.com/watch?v=GSIiaH334Lo

Install JMeter

Before installing JMeter we have to install Java SDK since Java was not installed. How to install Java: https://youtu.be/MxjjRmm0k-I After Java is installed, we are set to install JMeter. How to install JMeter: https://youtu.be/rV3H-ZFHz2g

MAIN Scenario: Performing a patient consultation

 

note: make sure to convert it to .jmx if you want to test it out with JMeter

RESULTS

Important testing variables:

  1. The scenario has a "Think Time" attached to it, as recommended here. Constant delay is set to 200ms, and Random Delay Max. is set to 500ms.

  2. The scenario has a 0ms ramp-up time, meaning all of the threads will try to become active instantaneously. This is not representative of a real-life scenario but rather of an absolute worst-case one

A more detailed report can be found below:

  • 50 Concurrent Users:

  • 100 Concurrent Users:

  • 150 Concurrent Users:

📙 50 Concurrent Users

No functional requests fail.

A more detailed report can be found here:

📙 100 Concurrent Users

A single Bahmni encounter request times out.

A more detailed report can be found here:

📙 150 Concurrent Users

186 out of 900 encounter requests time out.

A more detailed report can be found here:

Whereas following errors occurred:

The latter one is probably due to a previous timed-out request

 

The Bahmni documentation is licensed under Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)