Руководство для начинающих по нагрузочному тестированию

Содержание:

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

Руководство для начинающих по нагрузочному тестированию

Что это вообще за зверь — нагрузочное тестирование

На английском языке это сочетание слов звучит как Load testing. Имеется в виду тестирование производительности. То есть тестировщики проверяют, будет ли приложение давать сбои, если им станут пользоваться пять человек, десять или тысяча одновременно.

Проверяется нагрузка на серверы, базы данных и другие компоненты, с которыми взаимодействует веб-страница. Оценивается производительность веб-приложения. Проводится нагрузочное тестирование перед тем, как приложение запустить для использования конечным потребителем.

Чтобы провести нагрузочное тестирование сайта, используют специальные инструменты. Давайте посмотрим, какие они и что собой представляют.

Какие инструменты используют тестировщики

Следующие инструменты для нагрузочного тестирования помогают тестировщикам добиваться поставленных целей и получать на выходе идеальное приложение, которое работает без сбоев:

Руководство для начинающих по нагрузочному тестированию

  • Apache JMeter. Этот довольно известный в широких кругах опытных разработчиков инструмент появился в 2003 году. Со временем его доработали, и он стал многофункциональным. Этот инструмент поддерживает работу с протоколами HTTP, FTP, SOAP и многими другими. Преимуществами Апач Джейметр являются удобный интерфейс, кэширование данных, анализ и визуализация полученной информации, динамический ввод. Из недостатков тестировщики отмечают: нет поддержки языка JavaScript, трудности с нагрузочным тестированием сложных веб-приложений. Работает с протоколами HTTP, XML, SOAP, FTP. Распространяется бесплатно. Это отличное предложение для больших и маленьких компаний;
  • Яндекс Танк. Этот инструмент является своеобразным, как и все, что делает компания Яндекс. Появился он в 2006 году. Написан на языке Питон. Работает с теми же протоколами, что и Апач Джейметр. Из плюсов разработчики выделяют автоматическую остановку текста, встроенный анализ и проверку серверов, полную интеграцию с Graphite. Тестировщики жалуются на следующие минусы: нет кроссплатформенности, начинающему программисту не подходит, так как требуется разбираться и настраивать многие модули;
  • Gatting. Этот инструмент также известен многим разработчикам. Распространяется с открытым исходным кодом. Подходит для тех, кто использует Scala. Из преимуществ выделяют множество официальных и неофициальных плагинов. Из недостатков отмечают трудность создания скриптов, невозможность запуска из коробки. Если нет опыта в Scala, разработчик должен иметь хорошее образование в отношении понимания тестирования;
  • Blaze Meter. Посредством Blaze Meter проводят непрерывное тестирование. Опытные программисты могут создавать статически нагрузочные тесты, а также использовать сценарии от инструмента Apach JMeter. Из положительных сторон отмечают интеграцию с ведущими инструментами API и Cl. Есть возможность имитации тестирования на смартфонах, способность запускаться из облака или локально. Из минусов выделяют недетализированные отчеты, за ее использование приходится дорого платить, если в тестировании участвует более 1000 человек.

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

Тесты для проверки отказоустойчивости

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

Чтобы тестирование дало результаты, разработчики делают следующие шаги:

  1. Запускают приложение, когда оборудование работает отлично и в случае отказа одного из серверов.
  2. Смотрят, как следующий сервер, который рабочий, перехватывает информацию и начинает работать вместо отказавшего.
  3. Проверяют, без ошибок ли проходит перехват информации. Смотрят, как проходит отправка информации на другой канал.

Следующая схема является примером нагрузочного тестирования, которое состоит из трех основных этапов: Подготовка — Тест — Отчет.

Руководство для начинающих по нагрузочному тестированию

Давайте посмотрим, что включает в себя этап подготовки. Обычно это подготовка тест-плана и задание метрик. Затем в облаке устанавливается виртуальная машина, которая подходит по указанным требованиям. Устанавливают операционную систему и подготавливают среду для проведения нагрузки. Когда клиент готов, переходят ко второму этапу действий.

Во время проведения тестирования запускают клиента, который нагружает систему по заданным параметрам. При тестировании собирают логи, которые еще не отредактированы. Уже в это время намечается определенная динамика работы приложения.

Когда заканчивается тестирование, наступает этап отчетов. Сырые данные превращаются в понятные человеческому глазу элементы. Далее производится публикация полученной информации в читаемом виде на внешнем сервере.

Многие начинающие разработчики часто интересуются, какое «железо» необходимо для проведения тестирования. Советуют следующее:

  • восьмиядерный процессор;
  • ОЗУ — 4 Гб минимум;
  • SSD — 60 Гб минимум.

Сетевую карту лучше всего использовать с пропускной способностью в 1 Гб/с.

Заключение

Теперь вы познакомились с небольшой теорией о нагрузочном тестировании. Чтобы полностью изучить эту серьезную и тяжелую тему, потребуется время. Курсы по программированию от DevEducation помогут вам в этом.

Присоединяйся к DevEducation — стань востребованным специалистом и построй карьеру в IT!