Сфера мобильного ПО – одна из самых быстроразвивающихся областей по всем ключевым направлениям: от рекламы до бизнес-среды.
Применение данного обеспечения еще в 2014 году сравнялось с количеством использования веб-продуктов на ПК. Это значит, что актуальность тестирования мобильных продуктов становится очень важной составляющей при релизе нового продукта подобной направленности.
Далее поговорим об особенностях нагрузочного тестирования мобильного ПО, а именно о процессе создания тестовых сценариев. Будет использовано сразу несколько вариаций тестов – классическая генерация HTTP-трафика и взаимодействие с реальными гаджетами, которые могут создать настоящую нагрузку с помощью клиента.
Процесс записи трафика
Классическая схема записи трафика выглядит так:
- Выбор гаджета с приложением, функционирование которого следует имитировать;
- Конфигурация прокси-сервиса, в задачи которого будет входить запись и перенаправление клиентских запросов на сервер;
- Подключение гаджета к прокси-серверу;
- Выполнение операций в системе мобильного гаджета, которые необходимо записать.
В качестве ПО был выбран Findler 4.
Первое, что необходимо выполнить, это установить на смартфон сертификат безопасности. SSL сертификат позволит пропускать и расшифровывать весь HTTPS-трафик посредством Findler.
В параметрах Findler нужно выставить настройки на расшифровку HTTPS-трафика и разрешить подключение удаленных компьютеров. Затем следует вручную настроить прокси-подключение на гаджете.
Сертификат можно получить по адресу — http://ipv4.fiddler:номер_порта/. А скачать – посредством браузера.
Работа над созданием скрипта
Открываем приложение и выполняем все необходимые операции для будущего скрипта. Как только будет создан тест-план, коррелируем параметры и тестируем, правильно ли выполняется созданный нами скрипт.
На этой стадии процесс максимально идентичен классической отладке скрипта.
Если запрос (в большей степени POST с выгрузкой файлов) возвращается с ошибкой, его можно повторно перехватить с помощью другого ПО (например, перехватывали трафик в Findler, а потом перешли на использование jMeter), и сравнить, есть ли разница.
Пример нагрузочных тестов на практике
Возьмем, к примеру, Gloopt. Это специальный сервис, чтобы делиться с друзьями видеороликами длительностью до 1 минуты.
При создании тест-плана с помощью подключенных плагинов, а не вручную, все сессии Findler лучше сохранять, так как не все заголовки могут быть корректно перенесены.
Процесс обмена сообщениями между клиентским ПО и сервером проходит таким образом:
- Для начала запрашиваются данные о файле (его размер узнается из ответа);
- Затем программа посылает запрос на любой отрезок файла, к примеру, от нуля. Визуально это выглядит так: «Content-range: bytes был = 0-», и сервер возвращает уже определенный отрезок: «Content-range: bytes был = 0-37895».
Процесс загрузки видео в приложение может быть 2 видов – записать ролик сразу с камеры устройства, либо же добавить уже готовый. При первом случае он все равно сохраняется в систему устройства, а это значит, что с точки зрения тестирования нагрузки, оба эти варианта являются идентичными.
Итак, чтобы загрузить видео нужно было удалить Content-Type из заголовка, написать MIME Type в отправляемом файле, выставить значение в чекбоксах “Use multipart/form data for POST” и “Browser-compatible headers”.
Альтернативный вариант записи трафика в системе Android
Если тестируется приложение под операционной платформой Android, есть альтернативные решения записи его трафика. В таком случае можно воспользоваться услугами популярного инструмента Packet Capture.
Для него не нужно root-прав, оно может расшифровывать HTTPS-трафик и в полной мере автоматизировать создание сертификатов для процесса расшифровки подобного трафика.
Чтобы начать записывать трафик, необходимо разрешить приложению установить сертификат и начать запись, опираясь на предоставленный графический интерфейс программы. Затем можно переключиться на проверяемое приложение и выполнить необходимые действия, пока сама запись будет вестись в фоне.
Как только запись будет завершена, можно вновь переключится на Packet Capture и проанализировать записанные запросы, а также ответы к ним. Главный экран будет отображать все сессии записей. Чтобы ознакомится с запросами, нужно выбрать необходимую сессию.
Будет моментально отображен полный перечень текущих подключений всех приложений, которые выходят в интернет. Переключаемся на нужное приложение и можем ознакомиться с предоставленным трафиком.
При помощи специального функционала можно дешифровать его. Есть возможности сохранения отдельных соединений. Но, к сожалению, нет пакетной обработки, а значит, не получится сохранить всю сессию или все текущие запросы приложения.
Итоги
Перехватить трафик мобильных программ и превратить его в сценарий теста помогает jMeter. Все следующие шаги идентичны проведению нагрузочного тестирования веб-приложений – корреляция данных, редактирование тестовых данных, старт проверок и прочее.
То есть проведение нагрузочного тестирования мобильного программного обеспечения ничем не отличается от тех процессов, что подразумевают под собой работу с традиционными веб-продуктами.
Оставить комментарий