Thursday, August 30, 2012

Google Chrome Remote Debugging для тестирования производительности мобильного веб-приложения

Недавно на проекте возникла интересная задача. Разрабатываем мы мобильное веб-приложение. Нужно было измерить время загрузки отдельных элементов страницы (*.js, *.css, *.png файлы) для разных типов подключений: WiFi, Edge, 3G.

После не очень длительного исследования существующих решений, мой выбор пал на относительно новую возможность Google Chrome - Remote Debugging. Для того чтобы воспользоваться данным решением вам необходимо работать с версией Android 4.0 и выше (мобильная версия Google Chrome доступна только для сэндвича).

Настройте тестовую среду, выполнив следующие шаги:
1. Убедитесь, что у вас установлены: Android SDK и Chrome; ваше мобильное устройство настроено для разработки.

2. Подключите мобильное устройство к компьютеру по USB кабелю. Для коммуникации с устройством нам нужен Android Debug Bridge (adb), который включен в Platform Tools (Android SDK).

3. Для удобства добавьте Platform Tools (<sdk>/platform-tools/) к переменной окружения PATH.

4. В командной строке запустите команду adb devices. После запуска команды убедитесь, что ваше устройство появилось в отображенном списке. Если нет - убедитесь, что на вашем телефоне разрешена USB-отладка. Список выглядит примерно так:


5. На мобильном устройстве запустите браузер Chrome. Откройте Настройки -> Инструменты разработчика и выберите галочку Включить веб-отладку через USB.

6. Запустите в консоли следующую команду для того, чтобы активировать передачу через порт:

adb forward tcp:9222 localabstract:chrome_devtools_remote 

7. Откройте Google Chrome браузер и загрузите страницу: localhost:9222

8. Вы увидите набор эскизов страниц, которые открыты в вашем мобильном браузере в данный момент. Выберите страницу, которую вы собираетесь отлаживать. Вот пример того, что вы должны увидеть в браузере:

  
9.  Теперь вы можете начать отладку мобильного контента на своем рабочем компьютере в Developer Tools. Вы можете измерить время загрузки каждого элемента веб-страницы:



Остается только обратить ваше внимание на то, что при проведении измерений нужно учитывать кеширование страницы. Чтобы полностью исключить кеширование советую:
    - Проводить отладку в инкогнито режиме мобильного браузера;
    - Выключить кеширование в Developer Tools (шестеренка в правом нижнем углу):

Ну вот и все, удачной охоты на багов! :)

Tuesday, August 21, 2012

Ukrainian Testing Days #1, Odessa



Побывала на первой всеукраинской конференции Ukrainian Testing Days. Солнечная Одесса, 200 участников из многих городов Украины, России и Беларуси. Конференция проводилась в гостинице "Бристоль". Что удивило - на всеукраинской конференции половина докладчиков были из других стран СНГ (и даже Германии). В общем-то я и не против, а очень даже за.

К сожалению, поприсутствовать на всех докладах не удалось, так как конференция разделялась на две секции. Из посещенных выступлений очень понравились доклады Артема Кошелева и Николая Алименкова. Николай рассказывал об автоматизации тестирования пользовательского интерфейса веб-приложений. Тема доклада Артема: "Качество кода автотестов". После выступления Артема захотелось встать и пойти рефакторить тесты (кстати, он же и был награжден за лучший доклад).

После конференции все отправились на After Party - берег Черного моря, вечер, закат, вечно голодные чайки и толпа ИТ-шников - что может быть лучше? Но для многих на этом дело не закончилось, и After Party плавно перешла в After ... After  Party =)

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

Одним словом, конференция понравилась, я получила от нее то, что хотела, а именно - энтузиазм и задор на исполнение всех идей.