Автоматизатор мобильных PRO [learnqa]

от автора

в

Складчина: Автоматизатор мобильных PRO [learnqa]

X1573.png
Навыки мобильной автоматизации.
Автоматизатор мобильных приложений — одна из наиболее высокооплачиваемых профессий. Пока еще на рынке дефицит кадров, и многие автоматизаторы стоят дороже программистов.

Этот курс дает все необходимые навыки для настройки полного стека автоматизации с нуля. Помимо этого он дает полный обзор инструментов, без которых автоматизатор не обходится ни дня:

  • Git — для правильной организации работы и хранения кода тестов.
  • bash — без знания командной строки невозможно настроить инфраструктуру автотестов правильно!
  • Jenkins — для запуска ваших тестов в CI-системах. Docker — для запуска автотестов изолированно в контейнерах.
  • Внимание — про Docker спрашивают на каждом собеседовании на позицию автоматизатора! Мы учим именно тому, что требуется в работе автоматизатора каждый день.

Вы получите:

  • Понимание того, как внедрить автоматизацию с нуля на проект
  • Портфолио с примерами автотестов на своем GitHub аккаунте для резюме
  • Готовый фреймворк с нужными библиотеками, чтобы сразу использовать его на боевых задачах
  • Все необходимые знания и инструменты для развертывания автоматизации на проекте
  • Комьюнити — мы запускаем этот курс уже более трех лет и выпустили очень много крутых специалистов на рынок. Многие выпускники наших ранних запусков сейчас работают в крупных компаниях и нанимают себе в команду выпускников этого же курса, так как уверены в его качестве.

Вы научитесь:

  • Работать с мобильными платформами – Android и iOS
  • Работать с Mobile Web
  • Выбирать правильные инструменты, подходящие именно под ваши задачи
  • Настраивать среду автоматизации с нуля на различных операционных системах
  • Создавать качественные отчеты с помощью Allure
  • Писать качественные тесты, которые легко поддерживать и расширять

Итоговый проект можно будет добавить в свое портфолио, а созданный на курсе фреймворк переложить на почти любое мобильное приложение в работе.

Программа курса:

Материалы по инструментам bash, Git и Docker доступны с первого дня занятий, так что их сразу можно будет применять для работы с автотестами.
Спойлер: Урок 1 На этом уроке мы скачаем и установим IDE — программу для написания и запуска кода на Java. Создадим проект, в котором разберем основы языка программирования Java. После научимся подключать библиотеки на примере JUnit и напишем первые тесты. Научимся запускать их и писать отчеты об ошибках для них.

В конце этого урока у вас уже будет настроенный проект и несколько работающих тестов на JUnit, выложенных на вашем аккаунте на Github.

  • Установка инструментов разработки IDE
  • Создание проекта в IntelliJ IDEA
  • Основы работы с Java — переменные и типы данных, функции
  • Основы работы с Java — классы, методы класса и объекты
  • Объектно-ориентированное программирование — наследование, инкапсуляция, полиморфизм
  • Модификаторы доступа в Java — public, private, protected
  • Поля класса — переменные внутри классов
  • Статические поля и методы — для чего нужны и как использовать
  • Азы работы с тестовым фреймворком JUnit
  • Создание простых тестов на JUnit
  • Статусы теста — success, skip, failed, error
  • Аннотации и описания к тестам
  • Проверки в тестах — assertTrue/assertFalse, assertEquals и так далее
  • Git и Github — выкладываем наши тесты в свой репозиторий

В качестве домашнего задания вам предстоит самостоятельно разработать несколько тестов на JUnit. Код пройдет ревью наших преподавателей, по результатам которого вы получите обратную связь. Спойлер: Урок 2 На этом уроке мы разберемся с тем, какие инструменты используются для автоматизации тестирования мобильных приложений. Установим эти инструменты на Windows и MacOS. Затем в IDE создадим новый проект для автотестов и напишем первый автотест для Android-приложения.

В конце этого урока на вашем Github-аккаунте появится первый работающий тест на Android. А на ПК будут установлены все необходимые программы для создания и запуска новых тестов.

  • Обзор инструментов мобильной автоматизации
  • Программное обеспечение для тренинга
  • Установка инструментов (Windows)
  • Установка инструментов (MacOS)
  • UIAutomatorViewer и Appium Viewer
  • Настойка тестового приложения
  • Packages and Capabilities
  • Создание нового проекта в IDE, подключение библиотек
  • Запуск первого теста на Android

В качестве домашнего задания вы настроите весь необходимый софт на своем ПК и напишите свой первый тест на Android. Спойлер: Урок 3 На этом уроке мы напишем несколько новых тестов на Android, научимся составлять локаторы для элементов на языке XPath и по ID, а также используем основные методы для взаимодействия с UI нашего приложения. Затем разберем типы ожиданий.

В конце этого урока у Вас будет несколько новых тестов, которые активно взаимодействуют с UI — умеют создавать ожидания для стабильной работы тестов, кликать и тапать по элементам и заполнять формы.

  • Локаторы, виды локаторов — поиск по ID и XPath
  • Простые методы: find_element, click, sendKeys
  • Ожидания (wait) — появление элемента, видимость элементов
  • Дополнительные методы проверок — проверка отсутствия элемента

В качестве домашнего задания вы напишите несколько простых тестов для Android-приложения. Код пройдет ревью наших преподавателей, по результатам которого вы получите обратную связь. Спойлер: Урок 4 На этом уроке разберемся с более сложными методами написания тестов и взаимодействия с UI нашего приложения. Напишем тесты на свайп элементов во все стороны, создадим новые ассерты (проверки), дополняющие методы JUnit, научимся правильно подготавливать эмулятор и приложение перед стартом теста.

В конце этого урока в вашем репозитории станет существенно больше тестов, способных совершать более комплексные проверки работоспособности приложения.

  • Типы свайпов и организация удобных методов для них
  • Ассерты — пишем свои методы для проверки состояния приложения
  • Повороты экрана и правильная подготовка эмулятора перед стартом тестов
  • Background apps — тестируем работоспособность приложения в фоновом режиме

В качестве домашнего задания вы напишите несколько комплексных тестов для Android-приложения. Код пройдет ревью наших преподавателей, по результатам которого вы получите обратную связь. Спойлер: Урок 5 На этом уроке мы изучим самые популярные паттерны проектирования автотестов. Мы создадим PageObject классы для нашего приложения, научимся применять на практике паттерн "фабрика" и вынесем подготовку приложения и запуск эмулятора в конфиг-классы TestBase и TestCore.

В конце этого урока у вас на Github будут выложены тесты, прошедшие тщательный рефакторинг и созданные по всем правилам корпоративной разработки. Эти тесты уже можно будет приложить к резюме или показать на собеседовании. Вы будете понимать каждую строчку, написанную в вашем коде, и сможете грамотно рассказать о своем проекте работодателю.

  • Page object model для организации тестов
  • Создание фабрики PageObject для кроссплатформенных тестов
  • Разбор других паттернов для разработки тестов
  • Подготовка окружения для тестов — класс TestBase и TestCore

В качестве домашнего задания вам предстоит самостоятельно отрефакторить тесты, написанные во время прохождения уроков и выполнения предыдущих домашних заданий. Код пройдет ревью наших преподавателей, по результатам которого вы получите обратную связь. Спойлер: Урок 6 На этом уроке мы начнем писать тесты для iOS-приложения. Для этого мы обновим XCode до последней версии, настроим симуляторы и запустим на них тестовое приложение.
Внимание, для этого урока обязательно нужен MacBook. В конце этого урока у нас будут базовые тесты для iOS-приложения.

  • Установка XCode и iOS-симуляторов
  • Запуск приложения на iOS-симуляторе
  • Appium Viewer для iOS — поиск локаторов
  • Подключение iOS-платформы к тестам
  • Базовые тесты для iOS-приложение

В качестве домашнего задания надо будет настроить весь софт для работы с iOS и написать несколько простых тестов для iOS-приложения. Код пройдет ревью наших преподавателей, по результатам которого вы получите обратную связь. Спойлер: Урок 7 На этом уроке мы "научим" тесты для Android-приложения работать также для iOS-приложения. Для этого создадим новый конфиг-класс Platform и научимся работать с переменными окружения.

Внимание, для этого урока обязательно нужен MacBook.

В конце этого урока у вас на Github уже будет фреймворк, разработанный вами, на котором можно разрабатывать тесты, одновременно покрывающие и Android, и iOS-приложение.

  • Разработка кроссплатформенных тестов для iOS и Android
  • Работа с переменными окружения
  • Создание конфиг-класса Platform
  • Универсальные методы для swipe
  • Skip тестов для платформ

В качестве домашнего задания вы напишите несколько сложных тестов для iOS-приложения. Код пройдет ревью наших преподавателей, по результатам которого вы получите обратную связь. Спойлер: Урок 8 На этом уроке мы научимся работать с версиями подключенных библиотек с помощью Maven. Затем сделаем так, чтобы Appium и эмулятор могли запускаться из консоли, и разработаем bash-скрипт для автоматического запуска всех автотестов.

После мы займемся установкой Jenkins и запуском наших тестов в нем с помощью разработанного bash-скрипта.

В конце этого занятия у вас уже будут сьюты (наборы) тестов, которые будут запускаться из CI-системы Jenkins автоматически. Вы научитесь настраивать билды и сможете применить это в работе.

  • Запуск эмулятора из командной строки
  • Запуск Appium Server из командной строки
  • Установка Maven
  • Импорт проекта в IDEA
  • Установка Jenkins
  • Разработка bash-скриптов для Jenkins
  • Запуск тестов на iOS в Jenkins
  • Запуск тестов на Android в Jenkins
  • Добавление тестов в suite

В качестве домашнего задания вам предстоит настроиться Maven для вашего проекта, собрать все разработанные тесты в сьют и научиться запускать его в Jenkins. Результат работы будет проверен преподавателями курса. Спойлер: Урок 9 На этом уроке мы поработаем с автоматизацией Web-приложений и Selenium. Мы научим наши тесты, которые мы писали для Android и iOS, запускаться еще и для мобильной веб-версии приложения.

В конце этого урока у вас будет фреймворк, на котором можно разрабатывать тесты любой сложности, работающие сразу для Web, Android и iOS-приложений.

  • Запуск Selenium и Chrome Driver
  • Подготовка capabilities для Mobile Web
  • Создание базовых классов для Mobile Web приложения
  • Работа с инспектором Chrome DevTools
  • Подготовка тестов к запуску в Jenkins

В качестве домашнего задания вы "научите" ранее созданные тесты для Android и iOS также запускаться на web-версии тестируемого приложения. Спойлер: Урок 10 На этом уроке мы создадим удобные и информативные отчеты для наших тестов с помощью Allure-2. Мы научимся подключать его через Maven, познакомимся с основными возможностями этого инструмента и создадим свои отчеты для тестов.

В конце этого урока тесты научатся собирать скриншоты и другие ассеты во время прохождения, автоматически генерировать описаний окружения для отчета и многое другое.

  • Установим утилиту allure
  • Добавим Allure Framework с помощью Maven
  • Изучим теги @Step, @Description, @Attachment и другие
  • Научимся собирать скриншоты во время прохождения

В качестве домашнего задания мы расставим все теги по всему боевому коду так, чтобы отчет был максимально полезен именно для вас. Спойлер: Программа Git Введение

  • Что такое система контроля версий
  • Обзор систем контроля версий
  • Почему Git

Создание аккаунта на Github

  • Регистрация
  • Обзор интерфейса
  • Создание собственного репозитория

Настройка локальной работы

  • Установка Git на локальный компьютер
  • git clone

Информационные команды

  • git status
  • git diff
  • git log
  • git show
  • git blame

Работа с удаленной информацией

  • git fetch
  • git pull

Работа с локальными изменениями

  • git commit
  • git push
  • git merge

Буфер данных

  • git stash
  • git pop

Ветки (branch)

  • git branch
  • git branch delete
  • git checkout

Работа с файлами

  • git add
  • git reset
  • git reset —soft
  • git reset —hard
  • git reset HEAD

Конфигурация Git

  • git alias
  • user
  • color
  • .gitignore

Решение конфликтов

  • решение конфликта мержа ветки
  • решение конфликта буфера

GitFlow

  • Разбор типовых flow работы с Git

Разбор популярных сервисов

  • Регистрация на GitLab
  • Регистрация на BitBucket

Спойлер: Программа Docker Вступление

  • Что такое Docker
  • Отличие Docker от Virtual Machine
  • Для чего используют Docker
  • Почему для Windows и MacOS все не так?

Установка Docker

  • Установка Docker на MacOS
  • Установка Docker на Windows
  • Установка Docker на Linux

Первые команды

  • Версия Docker
  • Помощник Docker

Контейнеры (containers)

  • Что такое контейнер
  • Как запустить контейнер
  • Параметры команды run
  • Запускаем контейнер с Ubuntu
  • Detached контейнеры
  • Attach запущенного контейнера
  • Работа с несколькими контейнерами одновременно
  • Работа с файлами внутри контейнера

Тома (volumes)

  • Что такое том
  • Создаем, подключаем и удаляем том

Монтирование (mount)

  • Mount bind — подключение директории хост-системы
  • Mount тома
  • Пример запуска программы на Python с mount
  • Readonly mode
  • Тестирование программы на разных версиях языка программирования на примере Python

Образы (images)

  • Что такое образ
  • Качаем образ
  • Выбираем версии

Docker Hub

  • Регистрируемся на Docker Hub
  • Авторизация Docker из терминала
  • Создаем свой первый образ
  • Заливаем свой образ на Docker Hub

Проксирование портов

  • Запускаем Selenium Server через Docker
  • Запускаем Selenium Server через Docker правильно
  • Создаем Selenium-сессия на запущенном контейнере

Работа с автотестами внутри Docker

  • Разбираемся с настройками docker network
  • Разбираемся с тем, как устроены автотесты на примере Selenium-тестов
  • Скачиваем исходники Selenium-тестов на Java
  • Настраиваем запуск тестов в контейнере на примере Java и Maven
  • Связываем контейнер Selenium и контейнер с запущенными тестами
  • Работа с артефактами автотестов из контейнера

Dockerfile

  • Что такое Dockerfile
  • Основы синтаксиса
  • Пример запуска простой программы на Python
  • Пример создания образа с Selenium-тестами

Docker compose

  • Что такое Docker compose
  • Пример создания сервиса на примере Python-программы
  • Запуск простого сервиса
  • Запуск нескольких сервисов на примере Maven-образа с Selenium-тестами и образе Selenium Server

Обзор решений для оркестрации контейнеров (Docker Swarm и Kubernetes)

  • Docker Swarm — для чего нужен и когда используется
  • Kubernetes — для чего нужен и когда используется

Спойлер: Программа bash Создание, просмотр и удаление файлов и папок

  • pwd
  • cd
  • ls
  • mkdir
  • touch

Работа с файлами и папками

  • mv
  • cp
  • rm

Чтение файлов

  • vi
  • nano
  • cat

Поиск

  • find
  • grep

Перенаправление ввода и вывода

  • |
  • >
  • >>

Процессы

  • ps
  • top
  • kill

Работа с удаленными ресурсами

  • ping
  • scp
  • curl
  • ssh

Утилиты

  • sed
  • xargs
  • awk

Организация работы в консоли

  • alias
  • bashrc
  • source
  • PS[1-2] и другие переменные окружения

Технические требования:
Для полного прохождения курса необходимы:

  • Windows 10 ИЛИ Ubuntu 16.04+ (подойдет только для работы с тестами на Android)
  • Mac OS Catalina или выше (подойдет и для Android, и для iOS)
  • Процессор Intel i-серии (i3, i5, i7)
  • Минимум 8 GB RAM
  • 10 GB на жёстком диске
  • Разрешение экрана минимум 1280 x 800

Внимание, только на Mac OS можно пройти задания для iOS. Если у вас нет Mac OS, мы можем заменить задания для iOS на теоретические.

16 недель обучения
Цена: 35499 р