SRV_ADMIN Telegram 3669
​​Для нагрузочного тестирования сайтов существует популярное и удобное решение от Grafana - k6. Я уже когда-то давно рассказывал про него, но тогда не сделал акцент на том, что он удобен в том числе благодаря интеграции с Grafana через хранение метрик в Influxdb. Покажу, как это выглядит на практике.

K6 много чего умеет. Он вообще очень развитый и продвинутый инструмент, где тесты можно писать в том числе на JavaScript. Продукт позиционирует себя как Tests as code. Его легко поднять и начать тестирование, используя готовые примеры. Показываю на практике.

Поднимаем связку Grafana + Influxdb:

# git clone https://github.com/grafana/k6 && cd k6

Там готовый docker-compose.yml. В принципе, можно ничего не менять, конфиг простой, без необходимости указания переменных. Запускаем связку:

# docker compose up -d influxdb grafana

Можно сходить, проверить графану по стандартному урлу и порту: http://server-ip:3000/login. Учётка стандартная - admin / admin. В графане уже должен быть настроен в Data sources myinfluxdb с урлом из соседнего контейнера.

Теперь нужно выбрать Dashboard. Их очень много разных для k6, выбирайте любой. Наиболее функциональный и удобный вот этот, за счёт того, что там есть группировка по тэгам, группам, урлам. Идём в Dashboards ⇨  Import ⇨  ID 13719.

Всё готово для запуска тестов. В репозитории, в директории examples очень много примеров. Эта директория мапится в контейнер с k6 в docker-compose. Тест можно запустить вот так:

# docker compose run k6 run /scripts/stages.js

Данные сразу потекут в Influxdb, так что их сразу можно наблюдать в Grafana. Тест не обязательно запускать на этой же машине. Можно из любого другого места, а передать данные через отдельный параметр. Примерно так:

# k6 run --out influxdb=http://1.2.3.4:8086 stages.js

Вот пример простого конфига для теста в 10 потоков в течении 30 секунд:

import http from 'k6/http';
import { sleep } from 'k6';
export let options = {
 vus: 10,
 duration: '30s',
};
export default function () {
 http.get('https://test.k6.io');
 sleep(1);
}

Соответственно, конфиг легко расширяется дополнительными урлами, тестами, выполняемыми действиями. У продукта хорошая документация и много готовых примеров. Знать JavaScript не обязательно.

⇨  Сайт / Исходники

#нагрузочное_тестирование



tgoop.com/srv_admin/3669
Create:
Last Update:

​​Для нагрузочного тестирования сайтов существует популярное и удобное решение от Grafana - k6. Я уже когда-то давно рассказывал про него, но тогда не сделал акцент на том, что он удобен в том числе благодаря интеграции с Grafana через хранение метрик в Influxdb. Покажу, как это выглядит на практике.

K6 много чего умеет. Он вообще очень развитый и продвинутый инструмент, где тесты можно писать в том числе на JavaScript. Продукт позиционирует себя как Tests as code. Его легко поднять и начать тестирование, используя готовые примеры. Показываю на практике.

Поднимаем связку Grafana + Influxdb:

# git clone https://github.com/grafana/k6 && cd k6

Там готовый docker-compose.yml. В принципе, можно ничего не менять, конфиг простой, без необходимости указания переменных. Запускаем связку:

# docker compose up -d influxdb grafana

Можно сходить, проверить графану по стандартному урлу и порту: http://server-ip:3000/login. Учётка стандартная - admin / admin. В графане уже должен быть настроен в Data sources myinfluxdb с урлом из соседнего контейнера.

Теперь нужно выбрать Dashboard. Их очень много разных для k6, выбирайте любой. Наиболее функциональный и удобный вот этот, за счёт того, что там есть группировка по тэгам, группам, урлам. Идём в Dashboards ⇨  Import ⇨  ID 13719.

Всё готово для запуска тестов. В репозитории, в директории examples очень много примеров. Эта директория мапится в контейнер с k6 в docker-compose. Тест можно запустить вот так:

# docker compose run k6 run /scripts/stages.js

Данные сразу потекут в Influxdb, так что их сразу можно наблюдать в Grafana. Тест не обязательно запускать на этой же машине. Можно из любого другого места, а передать данные через отдельный параметр. Примерно так:

# k6 run --out influxdb=http://1.2.3.4:8086 stages.js

Вот пример простого конфига для теста в 10 потоков в течении 30 секунд:

import http from 'k6/http';
import { sleep } from 'k6';
export let options = {
 vus: 10,
 duration: '30s',
};
export default function () {
 http.get('https://test.k6.io');
 sleep(1);
}

Соответственно, конфиг легко расширяется дополнительными урлами, тестами, выполняемыми действиями. У продукта хорошая документация и много готовых примеров. Знать JavaScript не обязательно.

⇨  Сайт / Исходники

#нагрузочное_тестирование

BY ServerAdmin.ru




Share with your friend now:
tgoop.com/srv_admin/3669

View MORE
Open in Telegram


Telegram News

Date: |

In the “Bear Market Screaming Therapy Group” on Telegram, members are only allowed to post voice notes of themselves screaming. Anything else will result in an instant ban from the group, which currently has about 75 members. Channel login must contain 5-32 characters End-to-end encryption is an important feature in messaging, as it's the first step in protecting users from surveillance. 1What is Telegram Channels? Administrators
from us


Telegram ServerAdmin.ru
FROM American