Skip to content
This repository was archived by the owner on Oct 18, 2018. It is now read-only.

Commit 97dbbdf

Browse files
committed
about mobile autotests
1 parent c39142c commit 97dbbdf

File tree

2 files changed

+45
-20
lines changed

2 files changed

+45
-20
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,6 @@
1616

1717
- [Lesson 11 - Desktop testing intro](shtya16/11-desktop-testing-intro.md)
1818

19-
- [Lesson 12 - Mobile app testing intro](shtya16/12-mobile-app-testing-intro.md)
19+
- [Lesson 12 - Mobile app testing intro](shtya16/12-mobile-app-testing-intro.md)
20+
21+
- [Lesson 13 - Intro to mobile autotests](shtya16/13-intro-to-mobile-autotests.md)

shtya16/13-intro-to-mobile-autotests.md

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,53 @@
66

77
### Практика
88

9-
#### Настраиваем окружение
9+
#### Настраиваем окружение (Ubuntu)
1010

1111
1. Устанавливаем [Ansible](https://www.ansible.com) `sudo apt-get install ansible -y`
1212
2. Скачиваем "playbook" для настройки окружения `wget http://autoschool.github.io/files/install-appium-environment.yml`
1313
3. Выполняем "playbook" `ansible-playbook -i "127.0.0.1," install-appium-environment.yml -k -K`
1414
4. Перезаходим в систему, чтобы обновились значения глобальных переменных системы
1515
5. Устанавливаем [Appium](http://appium.io/) `npm i [email protected]`, появится каталог **node_modules**
1616
6. Проверяем корректность устрановки `node node_modules/appium/bin/appium-doctor.js --android`
17-
6. Запускаем сервер `node node_modules/appium/bin/appium.js`
18-
7. В соседней вкладке выполняем `android avd` и запускаем эмулятор
19-
20-
#### Работаем с инспектором интерфейса приложения
21-
22-
8. Скачиваем тестируемое приложение `wget http://autoschool.github.io/files/ya-metro.apk`
23-
9. Устанавливаем приложение на эмулятор `adb install ya-metro.apk`
24-
10. Запускаем приложения **Яндекс.Метро** на эмуляторе
25-
11. Запускаем инспектор `uiautomatorviewer` и нажимаем в интерфейсе на кнопку "Device Screenshot"
26-
12. Изучаем атрибуты элементов (нам пригодятся **class** и **resource-id**)
17+
7. Запускаем сервер `node node_modules/appium/bin/appium.js`
18+
8. В соседней вкладке выполняем `android avd` и запускаем эмулятор
19+
20+
#### Настраиваем окружение (Windows)
21+
22+
1. Скачиваем и устанавливаем [Android SDK](https://dl.google.com/android/installer_r24.4.1-windows.exe)
23+
2. Установить [Intel HAXM](https://software.intel.com/sites/default/files/managed/dd/21/haxm-windows_v6_0_1.zip)
24+
3. Открываем **Android SDK Manager**, нажимаем **Deselect All** и выбираем "Android SDK Tools",
25+
"Android SDK Platform-tools" и "Android SDK Build-tools"; **Android 4.4.2 (API19)**: Intel x86 Atom System Image, ARM EABI v7a System Image, SDK Platform;
26+
**Extras:** Intel x86 Emulator Accelerator
27+
4. В пункте меню **Tools** выбираем **AVD Manager** и создаем с помощью него новое устройство (Nexus 4, No skin).
28+
Если в пункте 2 HAXM успешно установился, то создаем и запускаем эмулятор с архитектурой x86, иначе arm
29+
5. Скачиваем и запускаем [Appium](https://bitbucket.org/appium/appium.app/downloads/AppiumForWindows_1_4_16_1.zip)
30+
(необходим .NET Framework 4.5)
31+
32+
#### Работаем с инспектором интерфейса приложения (Ubuntu)
33+
34+
1. Скачиваем тестируемое приложение `wget http://autoschool.github.io/files/ya-metro.apk`
35+
2. Устанавливаем приложение на эмулятор `adb install ya-metro.apk`
36+
3. Запускаем приложения **Яндекс.Метро** на эмуляторе
37+
4. Запускаем инспектор `uiautomatorviewer` и нажимаем в интерфейсе на кнопку "Device Screenshot"
38+
5. Изучаем атрибуты элементов (нам пригодятся **class** и **resource-id**)
39+
40+
#### Работаем с инспектором интерфейса приложения (Windows)
41+
42+
1. Скачиваем тестируемое [приложение](http://autoschool.github.io/files/ya-metro.apk)
43+
2. В интерфейсе Appium кликаем на иконку с роботом ставим галку в чекбоксе **Application Path** и выбираем скаченное приложение
44+
3. На том же экране настроек прописываем путь **SDK Path**: C:\Users\username\AppData\Local\Android\android-sdk (или тот что указали при установке)
45+
4. Прописываем любое значение в поле **Device name**
46+
5. Кликаем по иконке с изображением человека и в **Custom Server Flags** прописываем `--command-timeout "20000"`
47+
6. Нажимаем на кнопку запуска и следом на кнопку с "Лупой"
48+
7. Изучаем атрибуты элементов (нам пригодятся **class** и **resource-id**)
2749

2850
#### Дорабатываем имеющийся репозиторий
2951

3052
Работаем с репозиторием [practice2016](https://github.com/autoschool/practice2016/)
3153

32-
13. Создаем новую ветку
33-
14. В **steps-module**, рядом с `ru.qatools.school.rules.WebDriverRule` создаем подобное правило `ru.qatools.school.rules.MobileDriverRule`,
54+
1. Создаем новую ветку
55+
2. В **steps-module**, рядом с `ru.qatools.school.rules.WebDriverRule` создаем подобное правило `ru.qatools.school.rules.MobileDriverRule`,
3456
в котором **driver** будет инициализироваться следующим образом:
3557
```java
3658
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
@@ -41,15 +63,16 @@ desiredCapabilities.setCapability("appWaitActivity", "ru.yandex.metro.MainActivi
4163
driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), desiredCapabilities);
4264
```
4365

44-
15. В **steps-module** cоздаем пакет `ru.qatools.school.screens`, аналогичный `ru.qatools.school.pages`. В нем будут описания двух экранов
66+
3. В **steps-module** cоздаем пакет `ru.qatools.school.screens`, аналогичный `ru.qatools.school.pages`. В нем будут описания двух экранов
4567
приложения: `MainScreen.java` и `SelectStationScreen.java`
46-
16. В **steps-module** в пакете `ru.qatools.school.steps` необходимо создать каталог `mobilesteps`, в котором будет содержаться класс
68+
4. В **steps-module** в пакете `ru.qatools.school.steps` необходимо создать каталог `mobilesteps`, в котором будет содержаться класс
4769
с описанием степов для работы с приложением
48-
17. В **commons-module** создаем пакет `ru.qatools.school.mobiletests`, в котором будет располагаться класс с тестом
70+
5. В **commons-module** создаем пакет `ru.qatools.school.mobiletests`, в котором будет располагаться класс с тестом
4971

5072
#### Пишем тест
5173

52-
Не забудьте про новое правило **MobileDriverRule**, а для поиска элементов экрана используйте селекторы **className** и **id**
74+
Не забудьте про новое правило **MobileDriverRule**, а для поиска элементов экрана используйте селекторы **className** и **id**.
75+
Для того чтобы тест запустился у вас должен быть запущен сервер **Appium** и подключен телефон или эмулятор.
5376

5477
Сценарий.
5578

@@ -63,5 +86,5 @@ driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), desiredCap
6386

6487
#### Сохраняем
6588

66-
18. Закоммитить и запушить все это дело в GitHub
67-
19. Создать пулл-реквест в основной репозиторий из интерфейса GitHub
89+
1. Закоммитить и запушить все это дело в GitHub
90+
2. Создать пулл-реквест в основной репозиторий из интерфейса GitHub

0 commit comments

Comments
 (0)