Bahmni Performance Baselining (OnPrem + JMeter)
Source Code: GitHub - 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 (Apache JMeter - Apache JMeter™)
Blazemeter as a load testing platform as a service, which is compatible with open-source Apache JMeter (BlazeMeter Continuous Testing | BlazeMeter by Perforce)
⭕️ 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:
Open a Gmail account to log in to Chrome
Install BlazeMeter as a Google Extension: Install and manage extensions - Chrome Web Store Help
Log in BlazeMeter (because can't export a recording as a JMX without being logged in) with the Chrome account.
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: BlazeMeter Script Recorder|| BlazeMeter Chrome Extension in JMeter -Part 4
Install JMeter
Before installing JMeter we have to install Java SDK since Java was not installed. How to install Java: How to install Java JDK on Windows 10 [ 2022 Update ] Step by Step JDK Installation After Java is installed, we are set to install JMeter. How to install JMeter: JMeter Tutorial 2: How to install JMeter on Windows
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:
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.
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)