Привет! Сегодня начинается наша четвертая встреча для тестировщиков, общение по обеспечению качества.
Воспользоваться им еще можно до 18:00 по московскому времени.
регистр .
А пока мы начинаем публиковать отчеты с предыдущей встречи, и начиная с Ольги, старшего QA-инженера red_mad_robot. Давайте поговорим о мобильных устройствах и об удалении логов с этих мобильных устройств, прочитаем их и разберемся, как с ними вообще работать.
Что такое журналы мобильных устройств? Журналы — это записи или сообщения в текстовой форме.
В этом тексте мы записываем все действия пользователя или то, как система реагирует на действия пользователя, соответственно вся информация, что вы делаете, где нажимаете на само устройство, в приложении - все это записывается в логи.
Какие логи существуют в принципе? Разделим их на две группы.
Первый — Crash logs, они подразумевают отдельный файл, куда заливается только информация об аварийном завершении работы программы.
А второй вариант — это просто логи, файл, представляющий собой журнал событий; в нем хранятся все системные записи и реакции устройства на действия пользователя.
Уровни журналирования
Хочу отметить, что эти уровни ведения журнала больше предназначены для журналов Android, поскольку именно разделение на Error, Warn, Info, Debug и Verbose вы в основном видите в журналах Android. Плюс одна и та же информация чаще всего будет в логах вашего сервера, изучить их в принципе будет весьма полезно.Что примечательно, каждый уровень включает в себя предыдущий.
Если мы возьмем Verbose и отфильтруем по нему, например, то мы получим логи всех предыдущих уровней, то есть абсолютно все логи.
Давайте рассмотрим каждый подробно.
Первый из них — Ошибка.
Ошибки уровня ошибок — это ошибки, указывающие на работу системы; на них нужно реагировать очень быстро и всегда сообщать разработчикам.
Например, SpannableStringBuilder — это ошибка приложения, которая сообщает нам, что текстовое поле, то есть Span, наш элемент, не может быть нулевым или пустым.
Второй вариант – системная ошибка ZeroHung. Данная ошибка говорит о том, что у нас утечка памяти, это может быть как от какого-то действия с приложением, так и от самого приложения.
Следующий вариант — «Предупреждение».
Это также ошибки, которые указывают на какое-то неожиданное поведение, требующее внимания, но они не так важны, как ошибки.
Например, ошибка со стороны приложения: пытаемся декодировать видео в нужное нам качество, в нужный формат и получаем ошибку.
Второй вариант, например, BroadcastQueue. Это системная ошибка, ошибка в работе какого-то виджета на вашем устройстве.
У меня это был Android Huawei, система постоянно выдает такие ошибки.
Следующий уровень – Информация.
Это уровень журнала, на котором мы получаем чисто информационные записи о работе системы.
Например, на этот уровень будут приходить ваши запросы, отправляющие приложения на сервер.
То есть это будет выглядеть так: http start, здесь вы увидите какие заголовки отправляются, какое тело отправляется, если есть, а также вы получите ответ от сервера в таком формате: json, key, value, key , значение и т. д. Это закончится как http end. Далее системная версия ошибки или системная версия журнала о том, что мы теперь намерены отключить экран.
То есть эта запись появляется, когда мы просто блокируем экран телефона и он гаснет. Это попадает в нашу информацию.
Далее уровень отладки.
Это уровень сообщений, который передает информацию о процессах отладки или шагах некоторых крупных процессов, на что разработчики хотели обратить пристальное внимание.
Например, мы просто нажали качельку громкости.
Внутри этого лога, конечно, будет подробнее — если вы его поймаете, то увидите, что именно произошло: мы увеличили звук, уменьшили звук и на сколько.
И второй вариант, например, ваше приложение работает через WebSocket, и вам нужно понять, подключены вы вообще или нет. Соответственно, это сообщение о том, что соединение произошло (на экране «b$b:WebSocket Connected»).
Следующий уровень Подробности.
Это самый низкий уровень приоритета, там будут появляться все логи, будет какая-то дополнительная информация, не вошедшая в Info, например.
Например, всплывает окно, мы его закрываем, у нас есть WindowManager и тут мы видим, добавилось ли что-то или все удалилось.
Далее вся информация о геолокации.
Например, у нас есть LocationProvider. В более продвинутой версии ваша геолокация будет написана там полностью, вплоть до долготы и широты.
И третий пример, тоже связанный со звуком, то есть какой у нас звук и насколько он громкий.
То есть, например, громкость 10 — это наш максимальный звук, и мы увеличили ее до этой опции (на экране «AudioManager:getStreamVolumestreamType:3 Volume:10»).
Очень похоже на Инфо, но я бы сказал, что в него передается более подробная информация.
Как удалить логи?
Андроид
Первый инструмент — Android Studio, а именно утилита Logcat. Что нужно, чтобы начать записывать логи с помощью Android Studio? Сначала, конечно, нужно перевести устройство в режим разработчика.
В настройках ищите номер вашей сборки или операционной системы, в зависимости от того, на каком устройстве вы собираетесь смотреть, он варьируется от производителя к производителю.
Нажмите на эту информацию около 10 раз, и вы увидите сообщение «Хотите ли вы перевести свое устройство в режим разработчикаЭ» Нажмите «ОК», и ваш телефон уже не такой обычный.
Далее вам необходимо подключить это устройство через USB к компьютеру, естественно на сам компьютер установить Android Studio, его можно установить как на Windows, так и на MacOS, здесь проблем нет.
Открыв Android Studio, выберите вкладку Logcat. Под цифрой 1 находится то, где найти это секретное слово.
Нажав на нее, мы переходим к сообщениям в реальном времени.
Под номером 2 находится окно, где выбираем телефон, с которого будем брать логи.
Соответственно, если ничего не подключено или не виден ваш телефон, вы не сможете здесь ничего выбрать.
Под номером 3 есть интересный момент: если вы хотите полностью удалить все логи (системные и из всех приложений, которые у вас есть), ничего здесь не выбирайте.
Если вы выберете конкретное приложение, которое находится в режиме отладки, вы увидите журналы исключительно для него.
Рядом с цифрой 3 вы видите слово Verbose — это уровень журнала, который вы хотите видеть.
То есть если выбрать Ошибка, будут только Ошибки.
И под цифрой 4 у вас есть поле поиска.
Это поле, где можно фильтровать результаты по приложению, по уровню, по какой-то нужной вам утилите, соответственно, для нас это регулярное выражение, и все достаточно просто ищется по совпадению.
Второй вариант скриншота — я уже выбрал конкретную сборку, и мы видим, что у нас есть логи по этой сборке.
Перейдем к следующему варианту.
Это стрелять через терминал с помощью того же Logcat. Нам нужно, чтобы устройство находилось в режиме разработчика, подключаем это устройство через USB к компьютеру и на компьютер необходимо установить Android Debug Bridge. Открываем терминал и пишем две команды: первая — «adb devices», которая показывает какие устройства подключены и какой adb видит устройства, второй командой говорим: «Запустите утилиту Logcat для конкретного устройства».
То есть первой командой вы увидите как называется ваше устройство, второй командой вы просто добавите к нему.
Как это выглядит: вот мой терминал, я вижу, что мое устройство называется 7BKDU., оно подключено по USB, и мой Mac его видит. Ввожу команду adb –s «имя устройства» Logcat.
Тогда в вашем терминале, почти так же, как и в Android Studio, будут появляться логи в режиме реального времени.
Давайте разберемся, как их читать.
Под цифрой 1 будет дата и время поступления записи.
Под цифрой 2 находится небольшой столбик, где вы видите буквы В, Д, Е, И и так далее.
Это те же уровни нашего журнала отладки, подробного описания, предупреждений или информации.
В графе 3 - названия - инструменты, утилиты или части ОС, откуда приходит сообщение, и соответственно его расшифровка - что именно у нас происходит. Конечно, похоже, что в Android всё гораздо удобнее и приятнее, можно легко фильтровать.
В Терминале фильтрация будет сложнее; вам нужно будет изменить саму команду, добавить ключи, которые будут фильтровать вывод по уровню или по отдельному приложению.
Третий вариант, который вы можете использовать для удаления журналов, — это инструменты платформы SDK. Для этого нам необходимо перевести устройство в режим разработчика и подключить его к компьютеру через USB, загрузить на компьютер папку SDK Platform Tools, она доступна для разных операционных систем.
Затем откройте папку в терминале, чтобы открылась папка SDK Platform Tools. Затем пишем команду «adb logcat — d — v time > .
log.txt», в которой указывается, что именно и в какой версии мы хотим видеть в этих логах (то есть время, приоритеты, разные теги) и говорим, что мы мы хотим сохранить эти журналы в log.txt. Итак мы прописали команды и начинаем выполнять действия на нашем устройстве, то есть нажимать на различные компоненты или воспроизводить баг, который вас беспокоит и вы хотите удалить с него логи.
Далее прерываем выполнение этой команды (на Mac это ctrl+C), и этот лог добавляется в нашу папку (android — debug.log).
Открываем его, как видим, информация аналогична той, что в Терминале, единственное, вы остановили команду, этот файл больше не обновляется, пока вы не повторите эту команду еще раз.
Опять же в таблице 1 мы видим дату и время поступления сообщения, таблица 2 — уровень наших логов, в таблице 3 мы видим из какой части системы мы получаем данные, лог и его расшифровку.
iOS
Конечно, первое, о чем хотелось бы рассказать, — это xCode и его встроенный симулятор.
К сожалению, xCode — программа только для MacOS. Чтобы удалить логи из симулятора, вам нужно установить xCode, зайти в меню, открыть Инструменты разработчика и симулятор.
Симулятор – это дополнительная программа, позволяющая воспроизвести работу системы, если у вас нет физического устройства.
В этом симуляторе мы устанавливаем нужное нам приложение, выбираем какой конкретно Айфон, его размер, разрешение и операционную систему.
И уже в симуляторе выбираем пункт «Отладка» и «Открыть журнал системы».
Выглядит это так: в самом симуляторе выбираю папку Debug и подвкладку Open System Log. В реальном времени работает точно так же, но они (логи) отображаются по-другому, не так, как на Андроиде.
Видим, что уровня логирования больше нет, есть дата и время.
Номер 2 — это сообщение о том, что мы обычно видим.
Видим, с какого устройства была взята информация.
В моем случае это имя моего Mac. Мы видим дополнительную запись о том, от какого элемента системы пришло это сообщение и его расшифровку.
Например, вам придется копаться в журналах IOS глубже, чем в Android.
Второй инструмент также связан с xCode, но идет по другому пути.
Это Устройства и Симулятор.
Устанавливаем xCode, подключаем устройство по USB, здесь важно, чтобы было настоящее устройство.
В самом xCode откройте вкладку «Окно», там выберите подвкладку «Устройства и симулятор».
Нажмите на устройство «Открыть консоль».
На панели мы видим название нашего устройства, какая у него операционная система, модель и справа от этой кнопки нас интересует «Открыть консоль».
Под номером 1 мы видим все приложения, которые дополнительно установлены на наши устройства, в графе под номером 2 - версию этого устройства, которую указывает разработчик.
Третий — URL-адрес нашего устройства.
То есть, например, у вашего разработчика, вашей компании, вашего приложения есть свой URL-адрес, по которому оно переходит. Соответственно, здесь это отражено.
Как это все выглядит: отслеживать, как сыпятся бревна, довольно удобно.
Они тоже текут в реальном времени, и если их никак не фильтровать, то они будут постоянно падать, но здесь все удобно смотреть.
У нас есть время этого сообщения, процесс — это из какой части системы, приложения пришло сообщение.
В графе «Сообщение» мы видим подробное описание того, что происходит, что не так, а также всю служебную системную информацию.
Интересно, что именно в «Устройствах и Симуляторе» есть поиск, позволяющий фильтровать результаты.
То есть справа вверху мы можем написать название нашего приложения, и все будет фильтроваться по процессам.
Также мы можем приостановить вывод с помощью кнопки, и тогда логи перестанут идти хаотично и бессистемно (чтобы было удобнее искать то, что вы хотите найти на устройстве).
Как удалить логи с iOS на Windows
Существует приложение iMazing, которое устанавливается на Windows и MacOS. Подключите устройство через USB и выберите в меню «показать консоль устройства».
В целом это приложение платное, однако снимать логи с устройства можно и с помощью триальной версии, она ничем не ограничена.
Нам открывается следующее окно: видим какое устройство мы подключили, видим аккаунт, а в меню видим просто «показать консоль устройства».
Если мы нажмем на нее, то увидим следующее.
Первый квадрат — это дата и время, когда мы получили это сообщение, второй пункт — от кого, с какого устройства, поскольку это уже реальное устройство, мы называем его «IP-040».
Далее пишется, из какой части системы пришло сообщение и его описание.
Под цифрой 3 мы видим поле поиска.
Мы можем отфильтровать этот вывод, можем остановить поток входящих логов с помощью кнопки «пауза» и отфильтровать его в поле поиска.
Это поможет вам сосредоточиться на конкретном приложении, которое вы используете.
iMazing также может сохранять эти журналы с помощью соответствующей кнопки.
Теги: #iOS #Android #разработка iOS #разработка Android #qa #обеспечение качества #тестирование #Тестирование мобильных приложений #Тестирование ИТ-систем
-
Побег От Скуки — Etl-Процессы
19 Oct, 24 -
Или, Может Быть, Ты Сейчас Спишь?
19 Oct, 24 -
Япония Поддерживает Авторское Право
19 Oct, 24 -
Стать Потребителем Лицензионной Продукции
19 Oct, 24 -
Конкурс Разработчиков Rails-Ninja
19 Oct, 24 -
Управляем Дюймовыми Жалюзи Недорого
19 Oct, 24 -
Конференция По Струнным Алгоритмам
19 Oct, 24