Использование Appium для получения журнала для симулятора iOS возвращает частичный результат - PullRequest
1 голос
/ 10 марта 2020

Я использую следующую команду для получения журнала устройства для Android и iOS. Для Android я использую «logcat», а для iOS я использую «syslog».

manage().logs().get().getAll()

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

Откуда я это знаю? Используя XCODE для запуска симулятора и установки тестового приложения и просмотра всех соответствующих событий в консоли в XCODE.

Есть ли другой параметр, который мне нужно передать, или другой инструмент, который можно использовать для получения полного журнала симулятора, кажется, у Appium нет решения.

1 Ответ

0 голосов
/ 14 марта 2020

Я предполагаю, что вы пишете автотесты для какого-то приложения iOS, и эти тесты выполняются на симуляторе. Надеюсь, что это может помочь:

Автоматизированное решение

Чтобы прослушать события приложения, вы можете использовать следующую команду:

xcrun simctl spawn booted log stream --debug > your_dump_file.txt

Обратите внимание xcrun simctl spawn booted - это команда только для симулятора, а не для реального устройства. Он запишет поток ВСЕХ событий устройства в ваш файл, который вы можете проанализировать позже, пока не остановите его.

Если вас интересуют определенные журналы из вашего приложения, вы можете «фильтровать» журналы:

xcrun simctl spawn booted log stream --debug --predicate 'subsystem == "com.your-company.AppName"' > your_dump_file.txt

Здесь «предикатом» является тег для os_log, который вы можете создать в своем коде:

static os_log_t customLog = os_log_create("com.your-company.AppName", "com.your-company.AppName");

А затем запишите события, которые вас особенно интересуют:

- (void)logButtonTouchDown:(NSString*)buttonID
{
    os_log(customLog, "Button_%s_TouchDown", buttonID.UTF8String);
}

Если приложение работает в режиме выпуска, вы можете попробовать добавить {public} к значениям времени выполнения, которые «выставлены»:

- (void)logButtonTouchDown:(NSString*)buttonID
{
    os_log(customLog, "Button_%{public}s_TouchDown", buttonID.UTF8String);
}

Затем вы можете как-то обработать your_dump_file.txt и обработать журналы.

Решение вручную

В MacOS вы можете увидеть журнал устройства Console.app. Обратите внимание, что вам также может понадобиться добавить спецификатор {public} в ваши журналы, чтобы увидеть некоторые реальные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...