6
6
7
7
### Практика
8
8
9
- #### Настраиваем окружение
9
+ #### Настраиваем окружение (Ubuntu)
10
10
11
11
1 . Устанавливаем [ Ansible] ( https://www.ansible.com ) ` sudo apt-get install ansible -y `
12
12
2 . Скачиваем "playbook" для настройки окружения ` wget http://autoschool.github.io/files/install-appium-environment.yml `
13
13
3 . Выполняем "playbook" ` ansible-playbook -i "127.0.0.1," install-appium-environment.yml -k -K `
14
14
4 . Перезаходим в систему, чтобы обновились значения глобальных переменных системы
15
15
5 . Устанавливаем
[ Appium
] ( http://appium.io/ ) ` npm i [email protected] ` , появится каталог
** node_modules
**
16
16
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** )
27
49
28
50
#### Дорабатываем имеющийся репозиторий
29
51
30
52
Работаем с репозиторием [ practice2016] ( https://github.com/autoschool/practice2016/ )
31
53
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 ` ,
34
56
в котором ** driver** будет инициализироваться следующим образом:
35
57
``` java
36
58
DesiredCapabilities desiredCapabilities = new DesiredCapabilities ();
@@ -41,15 +63,16 @@ desiredCapabilities.setCapability("appWaitActivity", "ru.yandex.metro.MainActivi
41
63
driver = new RemoteWebDriver (new URL (" http://127.0.0.1:4723/wd/hub" ), desiredCapabilities);
42
64
```
43
65
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 ` . В нем будут описания двух экранов
45
67
приложения: ` MainScreen.java ` и ` SelectStationScreen.java `
46
- 16 . В ** steps-module** в пакете ` ru.qatools.school.steps ` необходимо создать каталог ` mobilesteps ` , в котором будет содержаться класс
68
+ 4 . В ** steps-module** в пакете ` ru.qatools.school.steps ` необходимо создать каталог ` mobilesteps ` , в котором будет содержаться класс
47
69
с описанием степов для работы с приложением
48
- 17 . В ** commons-module** создаем пакет ` ru.qatools.school.mobiletests ` , в котором будет располагаться класс с тестом
70
+ 5 . В ** commons-module** создаем пакет ` ru.qatools.school.mobiletests ` , в котором будет располагаться класс с тестом
49
71
50
72
#### Пишем тест
51
73
52
- Не забудьте про новое правило ** MobileDriverRule** , а для поиска элементов экрана используйте селекторы ** className** и ** id**
74
+ Не забудьте про новое правило ** MobileDriverRule** , а для поиска элементов экрана используйте селекторы ** className** и ** id** .
75
+ Для того чтобы тест запустился у вас должен быть запущен сервер ** Appium** и подключен телефон или эмулятор.
53
76
54
77
Сценарий.
55
78
@@ -63,5 +86,5 @@ driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), desiredCap
63
86
64
87
#### Сохраняем
65
88
66
- 18 . Закоммитить и запушить все это дело в GitHub
67
- 19 . Создать пулл-реквест в основной репозиторий из интерфейса GitHub
89
+ 1 . Закоммитить и запушить все это дело в GitHub
90
+ 2 . Создать пулл-реквест в основной репозиторий из интерфейса GitHub
0 commit comments