prometheus + load-testing
This commit is contained in:
24
tests/aircrafts.js
Normal file
24
tests/aircrafts.js
Normal file
@@ -0,0 +1,24 @@
|
||||
import http from "k6/http";
|
||||
import { check, sleep } from "k6";
|
||||
|
||||
export const options = {
|
||||
vus: 10, // virtuelle Nutzer gleichzeitig
|
||||
duration: "30s", // Testdauer
|
||||
};
|
||||
|
||||
export default function () {
|
||||
const res = http.get("https://dispatch.premiumag.de/api/aircrafts");
|
||||
const res2 = http.get("https://dispatch.premiumag.de/api/dispatcher");
|
||||
|
||||
check(res, {
|
||||
"Status Piloten ist 200": (r) => r.status === 200,
|
||||
"Antwort enthält Daten": (r) => r.body && r.body.length > 1,
|
||||
});
|
||||
|
||||
check(res2, {
|
||||
"Status Dispatcher ist 200": (r) => r.status === 200,
|
||||
"Antwort enthält Daten": (r) => r.body && r.body.length > 1,
|
||||
});
|
||||
|
||||
sleep(1); // optional, Wartezeit zwischen Requests
|
||||
}
|
||||
16
tests/package.json
Normal file
16
tests/package.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "tests",
|
||||
"version": "1.0.0",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"packageManager": "pnpm@10.12.1",
|
||||
"devDependencies": {
|
||||
"artillery": "^2.0.23"
|
||||
}
|
||||
}
|
||||
40
tests/pilotenWS.yml
Normal file
40
tests/pilotenWS.yml
Normal file
@@ -0,0 +1,40 @@
|
||||
config:
|
||||
target: "http://localhost:3002" # URL des Dispatch-Servers
|
||||
phases:
|
||||
- name: "0->50 in 10 min"
|
||||
duration: "10m"
|
||||
arrivalRate: 0
|
||||
rampTo: 50
|
||||
- name: "keep 50 for 20 min"
|
||||
duration: "20m"
|
||||
arrivalRate: 50
|
||||
- name: "50->0 in 10 min"
|
||||
duration: "10m"
|
||||
arrivalRate: 50
|
||||
rampTo: 0
|
||||
engines:
|
||||
socketio: {}
|
||||
socketio:
|
||||
transport: "websocket"
|
||||
query: "uid=c69741db-af39-499c-8367-8d2b38531b9c" # Beispiel UID, kann angepasst werden
|
||||
|
||||
scenarios:
|
||||
- engine: socketio
|
||||
flow:
|
||||
- emit:
|
||||
channel: "connect-pilot"
|
||||
data:
|
||||
logoffTime: "14:00"
|
||||
stationId: "1"
|
||||
debug: true
|
||||
- waitFor:
|
||||
event: "aircraft-update"
|
||||
timeout: 10000
|
||||
assign: "aircraftData"
|
||||
- log: "Empfangenes aircraft-update Event: {{ aircraftData }}"
|
||||
- function: |
|
||||
// In JavaScript kannst du jetzt die id extrahieren und in session speichern
|
||||
const aircraftData = JSON.parse(JSON.stringify(session.vars.aircraftData));
|
||||
session.vars.aircraftId = aircraftData.id;
|
||||
return session;
|
||||
- log: "Aircraft ID gespeichert: {{ aircraftId }}"
|
||||
Reference in New Issue
Block a user