УЧЕБНАЯ ПРАКТИКА 01. РАЗРАБОТКА МОДУЛЕЙ ПО ДЛЯ КС ПМ 01. РАЗРАБОТКА МОДУЛЕЙ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ КОМПЬЮТЕРНЫХ СИСТЕМ УЧЕБНАЯ ПРАКТИКА Вид выполняемой работы: ТЕСТИРОВАНИЕ МОБИЛЬНОГО ПРИЛОЖЕНИЯ Осваиваемые компетенции: ПК 1.6 Разрабатывать модули программного обеспечения для мобильных платформ Цель выполняемой работы: получить навыки по тестированию мобильного приложения. Время изучения: 3 часа. ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ. Тест центра приложений (прежнее название — Xamarin Test Cloud) — это служба автоматизации тестирования для собственных и гибридных мобильных приложений. Тесты, написанные с использованием поддерживаемых платформ, можно выполнять на сотнях уникальных моделей устройств и операционных систем, размещенных в нашем центре обработки данных. Запускайте тестовые запуски с помощью интерфейса командной строки Центра приложений или общедоступного REST API. Центр приложений хранит результаты тестирования, включая ресурсы мультимедиа, для просмотра в течение шести месяцев. Тестовые запуски выполняются размещенным способом: отправьте двоичные и тестовые файлы приложения для выполнения тестов в нашем центре обработки данных. Созданные ресурсы, такие как снимки экрана и журналы устройств, хранятся для тестовых отчетов. Тестирование в Центре приложений поддерживает шестимесячную политику хранения данных для данных тестового отчета. Все тестовые отчеты старше шести месяцев удаляются. Совет В пользовательском интерфейсе тестирования Центра приложений отображаются только 50 последних тестовых запусков для каждой серии тестов. Вы можете получить доступ к старым тестовых запускам с помощью API Центра приложений. Основные возможности Реальные устройства. Мы используем реальные устройства Android & iOS, которые не рутируются или сняты со снятой защитой, обеспечивая наилучшее приближение среды пользователей. Снимки экрана. Снимки экрана автоматически записываются для каждого тестового шага и могут просматриваться параллельно для всех устройств в тестовом отчете. Журналы — просмотрите журналы устройств в тестовом запуске и трассировках стека для неудачных шагов тестирования. Параллельные запуски — одновременно выполняйте тесты на нескольких устройствах, чтобы ускорить получение результатов. Поддержка популярных платформ o Appium (Java с JUnit) o Эспрессо (только для Android) o Xamarin.UITest o XCUITest (только для iOS) Тестирование в центре приложений в настоящее время не поддерживает следующие функции: Тестирование вручную Моделирование состояния сети Сетевые подключения сотовой связи Виртуальная частная сеть Нагрузочное тестирование УЧЕБНАЯ ПРАКТИКА 01. РАЗРАБОТКА МОДУЛЕЙ ПО ДЛЯ КС Начало работы с помощью тестирования Центра приложений Эти действия необходимо выполнить, прежде чем проект можно будет использовать с тестом Центра приложений. 1. Создание учетной записи Центра приложений Создайте учетную запись Центра приложений на appcenter.ms. 2. Установка интерфейса командной строки Центра приложений Тестовые запуски выполняются с помощью интерфейса командной строки Центра приложений. Если установка еще не установлена, следуйте этим инструкциям . После установки выполните команду appcenter login , чтобы связать учетную запись Центра приложений с помощью средства. 3. Создание приложения в Центре приложений Все тестовые ресурсы и операции находятся в контексте приложения. Создайте проект приложения для тестирования. 4. Обзор основных понятий Понимание основных понятий тестовой службы упрощает использование, навигацию и взаимодействие с поддержкой. 5. Убедитесь, что тесты выполняются локально на физическом устройстве Для тестирования в Центре приложений используются только физические устройства, а не эмуляторы или симуляторы. Для разработчиков Android это может не иметь значения, так как ПАКЕТ APK, предназначенный для эмулятора, как правило, действителен для нацеливания на эквивалентное реальное устройство Android. Однако для разработчиков iOS это может быть сложнее: Приложения, созданные для устройств и симуляторов iOS, несовместимы друг с другом из-за разных архитектур процессоров. Приложения, созданные для устройств iOS, должны быть подготовлены с помощью процесса подписывания Apple. Начальная настройка подготовки iOS может быть сложной, а также обновление позже, когда срок действия профилей истекает или потребуется изменить. Некоторые платформы тестирования, такие как Xamarin.UITest & Calabash, явно несовместимы с публикацией приложений iOS в App Store. Эти платформы добавляют сборки в IPA, которые должны присутствовать только во время разработки. При первом тестировании на физическом устройстве iOS необходимо включить UIAutomation в параметрах устройства. Пропуск локального тестирования возможен, но не рекомендуется. Гораздо сложнее диагностировать проблемы, выполняемые в Центре приложений, если у приложения есть неразрешенные локальные проблемы тестирования. 6. Подготовка проекта к отправке Каждая платформа тестирования имеет разные требования для отправки в тест Центра приложений. Следуйте соответствующим инструкциям по платформе тестирования: Appium Эспрессо XCUITest Xamarin.UITest o Для Xamarin.Android o Для Xamarin.iOS Калабаш (не рекомендуется) ХОД ВЫПОЛНЕНИЯ РАБОТЫ Начало работы с UITest и Xamarin.Forms UITest можно использовать с Xamarin.Forms для написания тестов пользовательского интерфейса, которые будут выполняться в облаке на сотнях устройств. УЧЕБНАЯ ПРАКТИКА 01. РАЗРАБОТКА МОДУЛЕЙ ПО ДЛЯ КС Обзор Служба тестов Центра приложений позволяет разработчикам создавать автоматические тесты пользовательского интерфейса для приложений iOS и Android. После внесения некоторых незначительных изменений приложения Xamarin.Forms можно тестировать с помощью Xamarin.UITest, включая совместное использование одного кода теста. После добавления проекта UITest в решение Xamarin.Forms выполняются действия по написанию и запуску тестов для приложения Xamarin.Forms, аналогичные действиям для приложений Xamarin.Android и Xamarin.iOS. Добавление поддержки UITest в приложения Xamarin.Forms UITest автоматизирует пользовательский интерфейс, активируя элементы управления на экране и предоставляя входные данные в любом месте, где пользователь обычно взаимодействует с приложением. Чтобы включить тесты, которые могут нажимать кнопку или вводить текст в поле, коду теста потребуется способ определения элементов управления на экране. Чтобы код UITest ссылался на элементы управления, каждому элементу управления требуется уникальный идентификатор. В Xamarin.Forms рекомендуется задать этот идентификатор с помощью свойства AutomationId, как показано ниже: C# var b = new Button { Text = "Click me", AutomationId = "MyButton" }; var l = new Label { Text = "Hello, Xamarin.Forms!", AutomationId = "MyLabel" }; Свойство AutomationId можно также задать в XAML: XAML <Button x:Name="b" AutomationId="MyButton" Text="Click me"/> <Label x:Name="l" AutomationId="MyLabel" Text="Hello, Xamarin.Forms!" /> Примечание AutomationId является BindableProperty, поэтому его также можно задать выражением привязки. Уникальное свойство AutomationId следует добавить ко всем элементам управления, необходимым для тестирования (включая кнопки, записи текста и метки, значение которых может запрашиваться). Предупреждение Если InvalidOperationException предпринята попытка задать AutomationId свойство Element объекта несколько раз, будет выдано исключение. Проект приложения Android В отличие от iOS, для проектов Android не требуется специальный код запуска. Сведения о написании тестов пользовательского интерфейса см. в документации по тестам пользовательского интерфейса. Приведенные ниже действия представляют собой сводные данные, конкретным образом описывающие создание демонстрации Xamarin.Forms с использованием теста пользовательского интерфейса UITest. Использование AutomationId в пользовательском интерфейсе Xamarin.Forms Перед написанием тестов пользовательского интерфейса необходимо убедиться, что пользовательский интерфейс Xamarin.Forms поддерживает сценарии. Все элементы управления УЧЕБНАЯ ПРАКТИКА 01. РАЗРАБОТКА МОДУЛЕЙ ПО ДЛЯ КС в пользовательском интерфейсе должны иметь свойство AutomationId, чтобы на них можно было ссылаться в коде теста. Ссылка на AutomationId в тестах пользовательского интерфейса При написании тестов пользовательского интерфейса значение AutomationId по-разному обрабатывается на каждой платформе: в iOS используется поле id; в Android используется поле label. Для написания кроссплатформенных тестов пользовательского интерфейса, которые будут искать AutomationId в iOS и Android, используется запрос теста Marked: C# app.Query(c=>c.Marked("MyButton")) Также работает короткая форма app.Query("MyButton"). Добавление проекта UITest в существующее решение В Visual Studio есть шаблон, позволяющий добавить проект Xamarin.UITest в существующее решение Xamarin.Forms: 1. Щелкните решение правой кнопкой мыши и выберите Файл > Новый проект. 2. В разделе шаблонов Visual C# выберите категорию Тест. Выберите шаблон Кроссплатформенное приложение для > тестирования пользовательского интерфейса : На этом шаге в решение добавляется новый проект с пакетами NuGet NUnit, Xamarin.UITest и NUnitTestAdapter : NUnitTestAdapter — это стороннее средство выполнения тестов, которое позволяет Visual Studio выполнять тесты NUnit из Visual Studio. УЧЕБНАЯ ПРАКТИКА 01. РАЗРАБОТКА МОДУЛЕЙ ПО ДЛЯ КС Новый проект также содержит два класса. AppInitializer содержит код для инициализации и настройки тестов. Другой класс Tests содержит стандартный код для запуска тестов пользовательского интерфейса. 3. Добавьте ссылку на проект из проекта UITest в проект Xamarin.Android: Этот шаг позволяет NUnitTestAdapter запускать UITests для приложения Android из Visual Studio. УЧЕБНАЯ ПРАКТИКА 01. РАЗРАБОТКА МОДУЛЕЙ ПО ДЛЯ КС После добавления Xamarin.UITest в решение Xamarin.Forms можно создать тесты UITest, запустить их локально и отправить в тест Центра приложений. Приложения Xamarin.Forms можно легко тестировать с помощью Xamarin.UITest, используя простой механизм для предоставления AutomationId в качестве уникального идентификатора вида для автоматизации тестирования. После добавления проекта UITest в решение Xamarin.Forms выполняются действия по написанию и запуску тестов для приложения Xamarin.Forms, аналогичные действиям для приложений Xamarin.Android и Xamarin.iOS. ЗАДАНИЕ ДЛЯ САМОСТОЯТЕЛЬНОГО ВЫПОЛНЕНИЯ 1. Выполните тестирование как в вышеописанных примерах. 2. Выполните тестирование своего созданного мобильного приложения. 3. Составить отчет по работе.