Реклама в Telegram-каналах DzikPic и dev.by теперь дешевле. Узнать подробности 👨🏻‍💻
Support us

Простая автоматизация заполнения форм для Android QA инженера

Оставить комментарий
Простая автоматизация заполнения форм для Android QA инженера
Здравствуйте, друзья, Статья для тех, кто часто сталкивается с заполнением различных форм регистрации, персональных данных и так далее. Как правило это, инженеры отдела качества и разработчики, которые проверяют работоспособность собственного продукта. Если вы до сих пор делаете это вручную, то вы просто обязаны дочитать до конца :) Исходные данные: Приложение для Android 2.2, имеет 2 формы:
  1. Форма регистрации пользователя (6 полей ввода и кнопка сабмит)
  2. Форма подтверждения регистрации с кнопкой возврата на форму регистрации
Задача: нам нужно протестировать поля ввода, кнопку Submit и возврат со второй формы на первую, за результатом следим самостоятельно. Напишем скрипт, который за нас будет N раз заполнять форму регистрации (bash, Ubuntu 11.04, Android 2.2). При вызове скипта, передается целочисленный параметр N, который определяет количество повторений. Не судите строго, это просто пример того, как можно автоматизировать достаточно нудный и рутинный процесс, цель поста показать как это сделать, а не то, как глубоко можно с этим зайти :)

# author: [email protected] # # User registration form stress test example # Repeats 5 times # adb shell input keyevent 23 - DPAD Center, to focus field # adb shell input keyevent 20 - DPAD Down, to move to the next field # adb shell input keyevent 66 - Enter, to hit the button for (( i=1; i

Если сохранить этот скрипт, как test.sh, то после того, как вы ему дадите права на выполнение (используя chmod), вызвать его можно будет так: ~$ ./test.sh 5 Тестовое приложение, для Android 2.2 можно скачать здесь: git pull https://github.com/ypaulavets/Test-user-registration-form Приложение абсолютно примитивное, исключительно для демонстрации выше изложенного скрипта :) Таблица кодов, которые вы можете использовать в команде "adb shell input keyevent":
Код Значение
0 KEYCODE_UNKNOWN
1 KEYCODE_MENU
2 KEYCODE_SOFT_RIGHT
3 KEYCODE_HOME
4 KEYCODE_BACK
5 KEYCODE_CALL
6 KEYCODE_ENDCALL
7 KEYCODE_0
8 KEYCODE_1
9 KEYCODE_2
10 KEYCODE_3
11 KEYCODE_4
12 KEYCODE_5
13 KEYCODE_6
14 KEYCODE_7
15 KEYCODE_8
16 KEYCODE_9
17 KEYCODE_STAR
18 KEYCODE_POUND
19 KEYCODE_DPAD_UP
20 KEYCODE_DPAD_DOWN
21 KEYCODE_DPAD_LEFT
22 KEYCODE_DPAD_RIGHT
23 KEYCODE_DPAD_CENTER
24 KEYCODE_VOLUME_UP
25 KEYCODE_VOLUME_DOWN
26 KEYCODE_POWER
27 KEYCODE_CAMERA
28 KEYCODE_CLEAR
29 KEYCODE_A
30 KEYCODE_B
31 KEYCODE_C
32 KEYCODE_D
33 KEYCODE_E
34 KEYCODE_F
35 KEYCODE_G
36 KEYCODE_H
37 KEYCODE_I
38 KEYCODE_J
39 KEYCODE_K
40 KEYCODE_L
41 KEYCODE_M
42 KEYCODE_N
43 KEYCODE_O
44 KEYCODE_P
45 KEYCODE_Q
46 KEYCODE_R
47 KEYCODE_S
48 KEYCODE_T
49 KEYCODE_U
50 KEYCODE_V
51 KEYCODE_W
52 KEYCODE_X
53 KEYCODE_Y
54 KEYCODE_Z
55 KEYCODE_COMMA
56 KEYCODE_PERIOD
57 KEYCODE_ALT_LEFT
58 KEYCODE_ALT_RIGHT
59 KEYCODE_SHIFT_LEFT
60 KEYCODE_SHIFT_RIGHT
61 KEYCODE_TAB
62 KEYCODE_SPACE
63 KEYCODE_SYM
64 KEYCODE_EXPLORER
65 KEYCODE_ENVELOPE
66 KEYCODE_ENTER
67 KEYCODE_DEL
68 KEYCODE_GRAVE
69 KEYCODE_MINUS
70 KEYCODE_EQUALS
71 KEYCODE_LEFT_BRACKET
72 KEYCODE_RIGHT_BRACKET
73 KEYCODE_BACKSLASH
74 KEYCODE_SEMICOLON
75 KEYCODE_APOSTROPHE
76 KEYCODE_SLASH
77 KEYCODE_AT
78 KEYCODE_NUM
79 KEYCODE_HEADSETHOOK
80 KEYCODE_FOCUS
81 KEYCODE_PLUS
82 KEYCODE_MENU
83 KEYCODE_NOTIFICATION
84 KEYCODE_SEARCH
85 TAG_LAST_KEYCODE
На заметку: 1. Если вы используете "adb shell input text "bla bla bla", будьте внимательны с использованием пробелов, данная команда вводит текст до первого пробела :) 2. Скрипт также можно полностью параметризировать, например заменить все вводимые значения в ковычках на $2 $3 $4 $5 $6 $7 соответственно, в этом случае, вызов теста будет выглядеть так: ./test.sh 5 "[email protected]" "pass" "MyFirstName" "MyLastName" "+375283334456" "Male" 3. Исходя из пункта #2 можно сделать более серьезную автоматизации, точно так же, как удобный помощник для ввода текста на Андроид устройстве, например прописав скрипт в .bashrc, как alias testRegistration="/home/yahor/test.sh 5 "[email protected]" "pass" "MyFirstName" "MyLastName" "+375283334456" "Male"" и вызывать по мере необходимости будет очень просто и удобно. 4. Если у вас подключенно постоянно несколько устройств, то необходимо добавить в скрипт параметр серийного номера устройства, чере параметр -s: adb -s $2 shell [...] В этом случае вызов скрипта будет таким: ./test.sh 5 emulator-5554 5. Практически аналогичным способом можно оттестировать и более сложные сценарии, симулируя пользовательское нажатие на экран и кнопки устройства, если вам это интересно - сообщите, я напишу еще один пост :) 6. Для устранения большого числа копи паста, разумно одинаковые блоки кода собирать в функции (должны быть объявлены строго в начале файла): function clickNextField { adb shell input keyevent 23 adb shell input keyevent 20 } Тестируйте в радость! (: С уважением, Егор
Новый рекламный формат в наших телеграм-каналах.

Купить 500 символов за $150

Читайте также
Какие курсы по тестированию пройти. Для новичков и специалистов (май, 2023)
Какие курсы по тестированию пройти. Для новичков и специалистов (май, 2023)
Какие курсы по тестированию пройти. Для новичков и специалистов (май, 2023)
Профессия тестировщика стала одной из самых востребованных для входа в IT в последние несколько лет. Поэтому мы собрали эту подборку, чтобы вы знали, где на какие курсы тестировщика пойти в 2023 году и какую образовательную платформу выбрать для обучения.
Google запустила SDK для создания приложений, которые будут работать на разных устройствах и ОС
Google запустила SDK для создания приложений, которые будут работать на разных устройствах и ОС
Google запустила SDK для создания приложений, которые будут работать на разных устройствах и ОС
Стоит ли учиться на QA за $1300+ в год — опыт человека, который ушёл с госслужбы
Стоит ли учиться на QA за $1300+ в год — опыт человека, который ушёл с госслужбы
Стоит ли учиться на QA за $1300+ в год — опыт человека, который ушёл с госслужбы
1 комментарий
Google внезапно выпустила стабильную Android 13
Google внезапно выпустила стабильную Android 13
Google внезапно выпустила стабильную Android 13

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.