1. PurposeWe are intending to baseline the performance of the Bahmni app for clinics. The test will be extended to check the maximum Scope
Develop performance test automation to validate total number of clinics that can be supported with on a given infrastructure configuration without scaling up.2.
Baseline Hardware: RAM 16GB, 4 vCPU and 100GB Secondary storage
Standard Traffic Load: 40-50 Active users
[Stretch Scope] High Traffic Load: 50-70 Active users
[Out of Scope] Peak Traffic Load: 70-110 Active users
The automation would simulate Standard Traffic Load conditions
No existing data would be considered (It will start from Fresh DB)
Support 2-3 user flows such as registration, and consultation
2. Introduction
The purpose of this document is to provide an outline for the performance test where baselining & capacity of the system will be covered.
...
Entry & exit criteria
Load tool Selection & approach
Environment requirement
Baseline test approach
Capacity test approach
Test execution activities
Risk Factors
...
Identification of critical flows & agreement
Patient registrationRegistration (New and Existing Patients)
Doctor consultation
Data Patient data upload
[Stretch scope] Bahmni Report generation
Performance test types finalization
Baseline for single clinic operationCapacity or max number of clinics can be successfully supported without auto cluster(expected response time) to support clinical operation on a given hardware configuration for standard traffic load
Load generator setup
Load gen tool: Gatling
Server performance monitoring
Pothemeus & Grafana
Data set up (For one clinic)
Basic users setup (1 registration, 1 billing, 3 2 doctors)
No existing data, start from scratch
Data growth pattern for a clinic Click Here
...
The testing activity will be completed when:
The baseline results are shared and discussed with the team.Gatling Performance test reports are generated and published
Summarize overall
Find the capacity of the app to support the maximum number of clinics without any error.
Finalise the costing infra to support above results.
...
The key challenge with Gatling is the version upgrade e.g. minor version upgrade results into breaking changes.
6. Environment requirement
The performance test will be executed in an new environment which is exclusive for these tests. A stable version of the Bahmni build will be deployed for it. The build number will be the same for all the tests unless any major issue is uncovered.
Server Configuration:
RAM: 16 GB
Hard Drive: 100 GB
4 vCPUs
The server will be instrumented with Pothemeus & Grafana which will help to collect server metrics during the testing.
7. Baseline test approach
Baseline tests will be performed for a single clinic. It won’t have any pre-existing data except for the users preconfigured. The script will perform the following operations:
...