2. Install Grafana k6 on Ubuntu
https://grafana.com/docs/k6/latest/set-up/install-k6/?utm_source=chatgpt.com
curl -fsSL https://dl.k6.io/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/k6-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/k6-archive-keyring.gpg] https://dl.k6.io/deb stable main" | sudo tee /etc/apt/sources.list.d/k6.list
sudo apt-get update
sudo apt-get install k6
After installation, verify:
k6 version
3. Create your first Medicalin load test
Create a directory:
mkdir -p ~/medicalin-load-test
cd ~/medicalin-load-test
Create a test script:
nano medicalin-test.js
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 10 },
{ duration: '2m', target: 50 },
{ duration: '2m', target: 100 },
{ duration: '1m', target: 0 },
],
thresholds: {
http_req_duration: ['p(95)<2000'],
http_req_failed: ['rate<0.01'],
},
};
export default function () {
const response = http.get(__ENV.BASE_URL, {
timeout: '10s',
});
check(response, {
'status is 200': (r) => r.status === 200,
'response time below 2 seconds': (r) => r.timings.duration < 2000,
});
sleep(3);
}
-------------
This test gradually increases to 100 virtual users. It is a preliminary test, not yet the full 1,000-user stress test.
Run it against a dedicated staging environment:
BASE_URL=https://staging.example.com k6 run -e BASE_URL=https://staging.example.com medicalin-test.js