Пока нет оценок.
Пожалуйста, подождите...

Сфера мобильного ПО – одна из самых быстроразвивающихся областей по всем ключевым направлениям: от рекламы до бизнес-среды.

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

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

Процесс записи трафика

Классическая схема записи трафика выглядит так:

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

В качестве ПО был выбран Findler 4.

Findler

Findler

Первое, что необходимо выполнить, это установить на смартфон сертификат безопасности. 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

Packet Capture

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

Как только запись будет завершена, можно вновь переключится на Packet Capture и проанализировать записанные запросы, а также ответы к ним. Главный экран будет отображать все сессии записей. Чтобы ознакомится с запросами, нужно выбрать необходимую сессию.

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

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

Итоги

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

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

Оставить комментарий