Найти в Дзене

Нагрузочное тестирование с k6

Нагрузочное тестирование с k6 Пример скрипта на js для k6: import http, { head } from 'k6/http'; import { check, sleep } from 'k6'; const BASE_URL = "" const headers = { 'Header': 'value', 'Header': 'value' } export let options = { vus: 2, // пользователи duration: '1m', // время выполнения thresholds: { 'http_reqs': ['rate>=1000'], // RPS }, }; function checkResponseStatus(response, expectedStatus) { check(response, { [`is status ${expectedStatus}`]: (r) => r.status === expectedStatus, }); } function one() { let url = `${BASE_URL}/ep1` let response = http.get(url, { headers: headers}); checkResponseStatus(response, 200); sleep(1); } function two() { let url = `${BASE_URL}/ep2` let response = http.get(url, { headers: headers}); checkResponseStatus(response, 200); sleep(1); } export default function () { one(); two(); } Тут нужно добавить BASE_URL и headers, если они нужны. Само собой поправить endpoints. Пример базовый, но подойдет для большинства тестов конкретного приложения

Нагрузочное тестирование с k6

Пример скрипта на js для k6:

import http, { head } from 'k6/http';

import { check, sleep } from 'k6';

const BASE_URL = ""

const headers = {

'Header': 'value',

'Header': 'value'

}

export let options = {

vus: 2, // пользователи

duration: '1m', // время выполнения

thresholds: {

'http_reqs': ['rate>=1000'], // RPS

},

};

function checkResponseStatus(response, expectedStatus) {

check(response, {

[`is status ${expectedStatus}`]: (r) => r.status === expectedStatus,

});

}

function one() {

let url = `${BASE_URL}/ep1`

let response = http.get(url, { headers: headers});

checkResponseStatus(response, 200);

sleep(1);

}

function two() {

let url = `${BASE_URL}/ep2`

let response = http.get(url, { headers: headers});

checkResponseStatus(response, 200);

sleep(1);

}

export default function () {

one();

two();

}

Тут нужно добавить BASE_URL и headers, если они нужны. Само собой поправить endpoints. Пример базовый, но подойдет для большинства тестов конкретного приложения.

vus - количество пользователей.

duration - продолжительность выполнения.

thresholds - в данном случае количество RPS при достижении которого тест считается успешным.

Установить k6s на ubuntu 22.04 можно так:

sudo gpg -k

sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C5AD17C747E3415A3642D57D77C6C491D6AC1D69

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

Запуск:

k6 run load.js

#k6