Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CodeFest 2018. Глеб Головин (2ГИС) — Ферма iOS девайсов. Наш опыт без прикрас

CodeFest 2018. Глеб Головин (2ГИС) — Ферма iOS девайсов. Наш опыт без прикрас

Посмотрите выступление Глеба:
https://2018.codefest.ru/lecture/1317/

Когда твоя команда поддерживает ферму Android-девайсов под прогон UI/Unit/Benchmark тестов, рано или поздно приходит начальника и говорит — «а давайте так же, только под iOS». В докладе расскажу с какими проблемами столкнулись, какие смогли починить, а какие нет и чем всё закончилось.

Уровень
Тестировщики, разработчики и devOps — все, кто связан с разработкой и тестированием мобильных приложений под iOS.

CodeFest

April 09, 2018
Tweet

More Decks by CodeFest

Other Decks in Programming

Transcript

  1. MacOS и файлы подкачки (swap) 1. Отключать swap нельзя 2.

    Количество файлов подкачки не ограничено
  2. MacOS и файлы подкачки (swap) 1. Отключать swap нельзя 2.

    Количество файлов подкачки не ограничено 3. Перезагрузка - способ очистить swap
  3. Ошибка в ios-deploy Original error: Could not install app: 'Command

    'ios-deploy --id <UDID> --uninstall --bundle <TEMP_APP_PATH>' exited with code 253'
  4. Удаляем и стопаем под рутом sudo killall -SIGKILL node ||

    true sudo killall -SIGKILL tail || true sudo rm -rf /var/folders/* 2> /dev/null || true
  5. Написали prepare_device Запускается в начале каждой сборки: 1. ждет ответ

    с таймаутом ideviceinstaller --udid ${UDID} --list-apps -o list_all
  6. Написали prepare_device Запускается в начале каждой сборки: 1. ждет ответ

    с таймаутом ideviceinstaller --udid ${UDID} --list-apps -o list_all 2. если ответа нет или пустой, значит девайс требует починки
  7. Написали prepare_device Запускается в начале каждой сборки: 1. ждет ответ

    с таймаутом ideviceinstaller --udid ${UDID} --list-apps -o list_all 2. если ответа нет или пустой, значит девайс требует починки 3. перезагружает девайс idevicediagnostics --udid ${UDID} restart
  8. Написали prepare_device Запускается в начале каждой сборки: 1. ждет ответ

    с таймаутом ideviceinstaller --udid ${UDID} --list-apps -o list_all 2. если ответа нет или пустой, значит девайс требует починки 3. перезагружает девайс idevicediagnostics --udid ${UDID} restart 4. вновь запрос списка приложений и либо ОК либо НЕТ
  9. Точечная очистка До разделения на пользователей: sudo killall -SIGKILL node

    || true sudo killall -SIGKILL tail || true sudo rm -rf /var/folders/* 2> /dev/null || true
  10. Точечная очистка После разделения на пользователей: PID=$(cat appium.pid) sudo kill

    -9 ${PID} || true sudo rm -rf /tmp/appium_${DEVICE_UDID}/* 2> /dev/null || true sudo rm -rf ${VAR_FOLDERS_DIR}/* 2> /dev/null || true