ago in a galaxy far, far away...." • Android проект: телефоны + планшет • Частое обновления билдов • Минимум 6 девайсов для теста • Сборки на ftp, доступ через браузер WTF!!! Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
Что может ADB: • Узнать какие устройства подключены • Удалить приложение • Установить .apk файл Что еще надо: • Указать какое приложение установить • Скачать .apk файл Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
скрипта • Проверить перед скачиванием что есть новая сборка • Проверить что сборка на девайсе устарела Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
подключенного девайса • Скриншот сохраняется на девайсе Что надо сделать: • Снять скриншот • Скачать файл с девайса на машину • Удалить файл с девайса Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
имя файла: • На каком девайсе сделан скриншот • Запущенный пакет и активность • Текущее время HTC-One_5-0-2_com-my_app-dev_TaskDetailActivity_2018-02-08_13-56-12.png Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
zsh-autosuggestions • Кастомизация имени файла • Выбор девайса из подключенных (опционально) Минусы: • Сбои adb • Landscape скриншоты приходится переворачивать вручную… или не приходится Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
экрана подключенного девайса • Видео сохраняется на девайсе Что надо сделать: • Начать запись видео • Прервать запись видео • Скачать файл с девайса на машину • Удалить файл с девайса Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
Данные про активность не нужны • Выкусываем название пакета: "'" • Получаем текущее время • Комбинируем данные в название файла • Стартуем запись видео: "" • Прерываем запись видео: ” " • Скачиваем видео "" • Удаляем видео с девайса "" Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage adb shell getprop | egrep "ro.product.model|ro.build.version.release adb shell dumpsys window windows | grep -E 'mCurrentFocus adb shell screenrecord --verbose <filepath> Ctrl + C adb pull <filepath> <destination> adb shell rm <filepath>
с системой • Есть libimobiledevice: – Делает скриншот и сразу сохраняет на машину в формате tiff – Обращение к девайсу по UDID Что надо сделать: • Узнать UDID подключенного девайса • Сделать скриншот • Сконвертировать скриншот из tiff в png • Удалить tiff файл Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
Узнаем какие девайсы подключены в данный момент: "" • Если девайса нет в списке, узнаем его имя и предлагаем добавить: "" Узнаем версию ос: "" • Получаем текущее время • Комбинируем данные в название файла • Делаем скриншот: "" • Конвертируем файл из tiff в png • Удаляем tiff файл Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage device_id –l idevicename -u <udid> ideviceinfo -u <udid> | grep 'ProductVersion' idevicescreenshot -u <udid> <filepath>.tiff
Выбор девайса из подключенных Минусы: • Landscape скриншоты приходится переворачивать вручную • Developer disk image Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
синтаксис PyCharm Развитое комьюнити Много библиотек, легкая (обычно) установка Скрипты запускаются быстро Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
работа с JSON • pyjq – выполнение jq команд (JSON) • subprocess – выполнение shell команд • argparse – парсинг аргументов • tabulate – красивый вывод данных в консоль Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
команды • Через shell легко искать папки и чистить их Что надо сделать: • MVP • Итеративное усложнение функционала Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
2. Подтверждение чистки 3. Возможность почистить все папки 4. Возможность почистить все папки кроме перечисленных 5. Возможность задать локацию для поиска 6. Возможность чистить без подтверждения Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
– Флаг для удаления без подтверждения • Делаем поиск путей содержащих директорию "DerivedData", сортируем по размеру: ” ” • Узнаем у пользователя какие папки чистить • Запрашиваем подтверждения действия, если нет флага • Для каждой папки выполняем команду на удаление файлов: "" Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage find '<directory>' -type d -name 'DerivedData’ | gxargs -d \'\n\' du -sh | gsort -hr rm -rf "<folder_path>"/*
чистить папки руками • Возможность посмотреть сколько места отжирает DerivedData Минусы: • Деструктивное действие Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage
данные • Сгенерировать баркод • Проверить урлы • Проверить валидность данных Автоматизация рутинных задач для тестирования мобильных приложений @ddr3ams #testingstage