TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #141 1.01K
Автоматизация тестирования производительности приложения

Эффективное тестирование производительности приложения требует не просто генерации нагрузки, а имитации реальных пользовательских сценариев. Такой подход позволяет выявить узкие места и обеспечить стабильную работу под высокой нагрузкой. В этой статье рассмотрим, как создать скрипты для автоматизированного тестирования с использованием популярных инструментов.

Для симуляции пользовательского поведения подходят инструменты, такие как Apache JMeter, Gatling, или k6. Сегодня поговорим про k6 - легковесном и мощном инструменте для нагрузочного тестирования.

1. Создание Скрипта на k6. k6 позволяет описывать сценарии в виде JavaScript-кода, что делает его удобным для разработчиков. Пример Скрипта:


import http from 'k6/http';
import { sleep, check } from 'k6';

export let options = {
stages: [
{ duration: '2m', target: 100 }, // Разогрев
{ duration: '5m', target: 100 }, // Пик нагрузки
{ duration: '2m', target: 0 }, // Спад
],
};

export default function () {
let res = http.get('https://bashtex.com');

check(res, {
'статус 200': (r) => r.status === 200,
'время отклика < 200мс': (r) => r.timings.duration < 200,
});

sleep(1);
}


2. Анализ результатов. После выполнения скрипта k6 выводит подробные метрики:


checks.....................: 100.00% ✓ 1200 ✗ 0
http_req_duration..........: avg=135ms min=100ms med=130ms max=200ms p(95)=180ms
http_reqs..................: 4000 13.333334/s


Эти метрики позволяют оценить производительность приложения и выявить потенциальные проблемы.

3. Автоматизация с CI/CD. Для полной автоматизации можно использовать тесты производительности в CI/CD пайплайн. Например, GitLab CI или Jenkins для запуска тестов при каждом деплое. Пример Конфигурации GitLab CI:


performance_test:
script:
- k6 run loadtest.js
stage: test


Преимущества подхода:

Реалистичные сценарии: Тестирование, основанное на реальном поведении пользователей, дает более точные результаты.
Автоматизация: Экономит время и усилия, минимизирует ручной труд.
Интеграция: Легко встраивается в существующие процессы CI/CD, обеспечивая постоянный контроль за производительностью.


BashTex 📱 #bash
  • 🔥 6
More from @bash_tex
  1. Oct 13, 2026openat2(): как Linux защищает от выхода за пределы каталога Допустим, приложение должно чи…
  2. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  3. Oct 9, 2026BashTex 📱 #мем
  4. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  5. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  6. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →