ru:https://highload.today/blogs/testirovanie-ochen-bolshih-nagruzok-na-prilozhenie-podvodnye-kamni-i-poleznye-instrumenty-chast-ii/ ua:https://highload.today/uk/blogs/testirovanie-ochen-bolshih-nagruzok-na-prilozhenie-podvodnye-kamni-i-poleznye-instrumenty-chast-ii/
logo
Highload      24/03/2021

Тестирование очень больших нагрузок на приложение: подводные камни и полезные инструменты (часть II)

Сергей Могилевский BLOG

QA Team Lead и TechLead в NIX

Рассказываем о том, как настроить тестирование производительности приложения через JMeter, и о подводных камнях этого процесса.

Начало истории — в этом посте.

Настройка виртуальных машин

Первичную настройку виртуальных машин DevOps-команда сделала еще в самом начале проекта. На этапе первого распределенного запуска были открыты нужные порты, но после этого появился один неочевидный момент…

Linux-машины по умолчанию имеют лимит на количество процессов. Для рядового пользователя это не так важно, но в случае с симуляцией высокой нагрузки надо учитывать, что каждый виртуальный пользователь — это отдельный поток, который порождает соответствующий процесс в системе.

По умолчанию этот предел выставлен на уровне около 10 000. Если значение не изменить, ваша «виртуалка» просто не сможет генерировать больше виртуальных пользователей.

Информация о максимальном числе процессов хранится в файле /proc/sys/kernel/pid_max, который легко можно просмотреть, используя команду:

cat /proc/sys/kernel/pid_max

Если значение в файле вас не устраивает — меняйте его и перезапускайте тест.

Анализ результатов

«‎‎Вишенка» на торте — результаты. Когда тесты уже «прогнаны‎»‎ и дело вроде бы осталось за малым, гигабайтные файлы логов говорят: «Не тут-то было!‎». Огромные нагрузки генерируют такие же огромные файлы логов. Отсюда проблема: что с ними делать? Как прочитать полученный результат?

Excel не так хорош, как хотелось бы. К сожалению, «‎‎из коробки» Excel вообще не может отобразить таблицу больше 1 млн строк, так что если ваш тест сгенерировал результат в формате CSV длиной больше, чем 1 млн строк, то Excel его целиком обработать не сможет.

Как вариант: сгенерировать pivot tables на основе файла с результатами, которые обрабатываются относительно быстро. Не рекомендую пытаться что-то высчитывать с помощью обычных формул, так как они работают очень медленно по сравнению со сводными таблицами.

Курс QA Manual (Тестування ПЗ мануальне) від Powercode academy.
Навчіться знаходити помилки та контролювати якість сайтів та додатків.
Записатися на курс

Есть специальные инструменты для работы с большими текстовыми файлами. Оказалось, что текстовый файл размером в несколько десятков гигабайт не может открыть ни обычный «Блокнот», ни какой-либо другой текстовый редактор, который был у меня установлен.

Беглый гуглинг помог найти софт, с помощью которого получилось хотя бы заглянуть в этого гиганта. Я использовал EditPad Lite. Он подгружает файл частями и за счет этого позволяет не загружать его целиком в память.

Стандартный HTML-отчет JMeter может работать с большими массивами данных. У JMeter есть встроенная возможность строить HTML-отчеты с графиками и относительно красивым интерфейсом. Удивительно, но как раз эти отчеты генерируются из любого размера файла логов. Главное ограничение — доступная оперативная память.

Если генерация отчета не была включена через параметр generateReports в pom.xml-файле, то его можно все равно сгенерировать вручную двумя способами:

  1. Через интерфейс JMeter. Процесс описан тут.
  2. Путем выполнения консольной команды:

    jmeter -n -t <test JMX file> -l <test log file> -e -o <Path to output folder>

Выводы

  • При планировании performance-тестирования надо всегда заранее выяснять требования и находить подходящие инструменты.
  • Старайтесь «на берегу» продумывать всю работу, которую нужно будет выполнять впоследствии.
  • Курс English For Tech course від Enlgish4IT.
    Лише 7 тижнів по 20-30 хвилин щоденного навчання допоможуть вам подолати комунікативні бар'єри. Отримайте знижку 10% за промокодом ITCENG.
    Дійзнайтеся більше
  • Особенно хорошо, если получается заранее сделать «инвестигейт» и обкатку выбранного инструмента.

 

 

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Курс English For Tech course від Enlgish4IT.
Лише 7 тижнів по 20-30 хвилин щоденного навчання допоможуть вам подолати комунікативні бар'єри. Отримайте знижку 10% за промокодом ITCENG.
Дійзнайтеся більше

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Топ-5 самых популярных блогеров марта

PHP Developer в ScrumLaunch
Всего просмотровВсего просмотров
1898
#1
Всего просмотровВсего просмотров
1898
Founder at Shallwe, Python Software Engineer (Django/React)
Всего просмотровВсего просмотров
111
#2
Всего просмотровВсего просмотров
111
Career Consultant в GoIT
Всего просмотровВсего просмотров
93
#3
Всего просмотровВсего просмотров
93
CEO & Founder в Trustee
Всего просмотровВсего просмотров
92
#4
Всего просмотровВсего просмотров
92
Рейтинг блогеров

Ваша жалоба отправлена модератору

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: