Pull to refresh

Comments 26

UFO just landed and posted this here
UFO just landed and posted this here
Почему на всех телефонах заклеены фронтальные камеры (если это они)?
Просто наклейки с нумерацией устройств, камеры нам нужны рабочие.
> на телефоне стоит версия Андроида, максимально близкая к стоковой
Скажите, почему этот критерий для вас оказался важен? Сталкивался с багами, которые воспроизводились только, например, на самсунгах с TouchWiz
Да, многие любят вносить в андроид изменения. У нас тоже есть различные устройства самых популярных производителей, просто основная масса телефонов у нас всё-таки на стоке. Совсем широкий спектр моделей для автотестов выделить не получается — если какой-то элемент интерфейса используется в автотесте — это означает, что на него нужен свой код. Тесты, в которых мы перемещаемся только по своему приложению — пожалуйста, работают на любом телефоне. Если есть время и ресурс на реализацию автотестов на разных кастомизациях андроида — это здорово, можно брать разные телефоны.
Отличная статья, спасибо! Расскажите как вы измеряете энергопотребление, а именно ток с батарейки? С точки зрения регрессии это важная метрика. Или вы измеряете ее косвенно?
Насчет точного измерения не скажу, но при прогоне можно банально собирать batterystats (и отображать в отчетах, как здесь), большую проблему точно не пропустите.
Спасибо большое за статью!
А на чем у вас базируются сами тесты? Appium или что-то еще пробовали?
Не сталкивались ли с тем, что через USB хаб тесты работают нестабильно, а телефоны периодически отваливаются?
Robotium, UiAutomator (1,2), Espresso.

У нас телефоны в свое время отваливались по многим причинам. Вы пробовали выяснить в чем проблема? У вас может умирать adb, могут сами девайсы «плохо» себя вести, может «плохо» себя вести usb. Как минимум, в статье я описываю как запустить контейнер, в каждом контейнере свой инстанс adb, так что если проблема в нем, то будет проще ее локализовать и все телефоны сразу не отвалятся. На тему ошибок usb — попробуйте почитать системные логи (/var/log/syslog/, dmesg, etc), там обязательно что-то будет. Если проблема в телефоне — пишите во время теста непрерывно logcat, поможет разобраться.
У меня даже один телефон воткнутый в комп через USB хаб (недешевый, кстати) отваливается периодически — это выглядит, как будто телефон вытащили и воткнули обратно. ADB, естественно, при этом отваливается. Напрямую в комп тот же телефон работает нормально. Контейнеры мы тоже будем использовать, я вот буквально на этой неделе собирал похожий на ваш контейнер =)
Если сразу возвращается — похоже на power saving для портов. А без хаба повторяется?
Без хаба все ок. Power saving можно как-то продиагностировать по логам?
В логах не видел, можно его просто отключить через udev ATTR{power/control} или любой другой power management в системе, независимо от OS. Ну и, в конце концов, шнур подергать можно или хаб другой попробовать :) У нас был плохой провод, если его кто-то касался — девайс тоже реконнектился, долго проблему искали.
Если телефон периодически отваливается, то может быть проблема в кабеле. У меня такое иногда возникает на новых длинных проводах от самсунга. Попробуйте подключить более короткий и более толстый кабель и посмотреть, будет ли проблема повторяться.
А как хост рулит телефонами? Нужен какой-то специальный софт? А какой?
Ну конкретно в статье я предлагаю в контейнер поставить агента системы интеграции (jenkins, bamboo), он и должен рулить. Если у вас мало тестов и только один хост — можно просто написать скрипт, который будет тесты на телефонах запускать, тогда никакого дополнительного софта не понадобится.
Appium, jenkins, bamboo – это, так понимаю, для хоста. А на телефон что-то нужно устанавливать?
Appium сам зальет на телефон агента.
Спасибо за хорошую статью!
Псевдослучайный MAC-адрес у Wi-Fi-модуля после перезагрузки телефона.
Кто-нибудь может объяснить, зачем так делать? Есть у меня один такой девайс, прям бесит! }:C
У большинства современных смартфонов MAC адреса Wi-Fi и BT хранятся в отдельном разделе флеш-памяти(eMMC). У разных производителей, даже на одном SOC методы хранения (раздел, формат) отличаются. Адреса читаются либо при инициализации HAL, либо инит скриптами. В случае ошибки при чтении, в большенстве реализаций генирируется псевдослучайный MAC, что бы Wi-Fi и BT могли работать. Поэтому вариантов почему адреса случайные два:
1. Програмные ошибки в реализации чтения MAC адресов.
2. Адресов нет, там где должны быть. Не записали на заводе или затерли при перепрошивках.
Бедой с мак адресами например страдают дешевые USB ethernet карты.
у меня по 3$ штуки, пришлось мак адреса менять в rc.local :) UDEV не понравилось начал находить после перезагрузки как новые карты поправил конфиги все тип топ=)

Возможно это защита. Я помню как-то Эпл широко рекламировала, что при рассылке широковещательных пакетов они начали использовать случайные МАК-адреса. Может и тут из той же оперы.

Sign up to leave a comment.