Зачем мобильному приложению нагрузочное тестирование

# Обеспечение качества
Январь 2017 г
SimbirSoftMobile

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

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

1. Если у приложения сотни тысяч пользователей

Сервер обрабатывает сотни запросов в секунду, причем нагрузка возникает и на сервера, и на базу данных.

2. Если серверная часть написана специально для мобильного приложения

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

3. Быстродействие является основной задачей при разработке приложения

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

Задуматься о работоспособности приложения при больших нагрузках следует уже на этапе планирования. Допустим, мы поняли, что нужно тестирование нагрузки. Что дальше?

4. Анализ требований и сбор информации о системе

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

5. Выбор инструмента для нагрузочного тестирования

QA-специалисты выбирают инструменты исходя из опыта работы с ними. Обычно в качестве инструмента используется Apache JMeter, так как он бесплатный и его легко использовать. С помощью серверных агентов и модулей сбора данных во время тестирования ведется статистика по запросам и собирается информация о нагрузке на систему (по железу – ЦПУ, ОЗУ, ПЗУ, сеть). Для связи с сервером используется API, поэтому также применяется инструмент Яндекс.Танк. У него примерно те же возможности, что и у Apache JMeter, но полученные данные обрабатывать удобнее. Если же пользователь не проходит определенный сценарий, а просто переходит по разным экранам, которые загружают данные, то для проведения нагрузочного тестирования можно использовать инструмент Siege. Этот инструмент позволяет сделать список запросов, которые отправляются на сервер в хаотичном порядке и со случайными задержками. Однако результаты выдаются в виде текста, что затрудняет создание таблиц и графиков результатов.

6. Создание и отладка тестовых скриптов

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

7. Тестирование

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

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

Специалисты по тестированию исследуют графики, таблицы и выделяют запросы, на которых была большая задержка или ошибки в работе.

9. Подготовка, отправка и публикация отчета

После анализа результатов тестирования формируется отчет по общим полученным данным, выявленным ошибкам и слабым местам. Мы делаем отчеты максимально подробными и понятными для клиентов и обсуждаем с ними дальнейший ход работ.

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

SimbirSoftMobile