ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΡΠ΅ΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ javascript. k6 Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Π² CI/CD ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΡΠ»ΠΈΡΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠ΅Π³ΠΎ ΠΊΠ΅ΠΉΡΠ°. ΠΠ°Π΄ΠΎ Π±ΡΠ»ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΡΠ΅Π±Ρ Π²Π΅Π΄Π΅Ρ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π±Π°Π»Π°Π½ΡΠ΅Ρ Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π΅ Π² Π±ΠΎΠ΅Π²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π½Π°Π΄ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π½Π° IP Π°Π΄ΡΠ΅Ρ Π±Π°Π»Π°Π½ΡΠ΅ΡΠ° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ Π½ΡΠΆΠ½ΡΠΌ Ρ ΠΎΡΡΠΎΠΌ ΠΈ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ https. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ 30s ΠΏΠ»Π°Π²Π½ΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅ΠΌ Π½Π°Π³ΡΡΠ·ΠΊΡ Π΄ΠΎ 1000 Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π΄Π΅ΡΠΆΠΈΠΌ 30 ΡΠ΅ΠΊΡΠ½Π΄ ΠΈ Π΄Π°Π»Π΅Π΅ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ 20 ΡΠ΅ΠΊΡΠ½Π΄ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΠΌ Π½Π°Π³ΡΡΠ·ΠΊΡ Π΄ΠΎ 0.
import http from "k6/http";
import { check, sleep } from "k6";
// Test configuration
export const options = {
thresholds: {
// Assert that 99% of requests finish within 3000ms.
http_req_duration: ["p(99) < 3000"],
},
stages: [
{ duration: "10s", target: 1000 },
{ duration: "30s", target: 1000 },
{ duration: "20s", target: 0 },
],
// ignore ssl valudation
insecureSkipTLSVerify: true,
};
// Simulated user behavior
export default function () {
const url = "https://my.loadbalancer.ip.address"; // Set load balancer host
// set header hosts
const headers = {
Host: "example.com",
};
let res = http.get(url, { headers });
check(res, { "status was 200": (r) => r.status == 200 });
sleep(1);
}
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΡΠΏΠ΅Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΉ ΠΎΡΡΠ΅Ρ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ, Π½ΠΎ ΡΠΈΠ»Π° k6 Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π°ΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΈ ΡΡΠ»ΠΎΠΆΠ½ΡΡΡ Π»ΠΎΠ³ΠΈΠΊΡ, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π°ΡΠ΅ΠΉ ΡΠ°Π½ΡΠ°Π·ΠΈΠ΅ΠΉ. ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ https://grafana.com/docs/k6/next/get-started/running-k6/