РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID

Автоматизированное тестирование Android с использованием NodeJS

В этом посте мы изучим автоматическое тестирование Android с помощью Appium с NodeJs. Appium — свободно распространяемый фреймворк с открытым исходным кодом для тестирования пользовательского интерфейса мобильных приложений. Appium поддерживает все языки с клиентскими библиотеками Selenium, такие как Java, Objective-C, JavaScript с node.js, PHP, Ruby, Python, C# и т. д.

Необходимые условия для использования Appium:

  1. Android SDK (Android Studio с пакетом SDK).
  2. JDK (Java Development Kit).
  3. Appium Client для Windows (клиент).
  4. Выбранная среда IDE и среда тестирования. В нашем случае мы будем использовать node.js и mochaтестирование фреймворков, поэтому нам нужно установить js. Несмотря на то, что клиент Appium поставляется в комплекте с «Node.exe» и NPM (менеджером пакетов узлов), мы установим их вручную, чтобы получить последнюю версию.

Установка Appium в Windows< /p>

Шаг 1. Загрузите и установите JDK. После установки вам нужно будет установить переменную среды «JAVA_HOME». Выполните следующие действия (в Windows 10):

  • Перейдите в раздел «Настройки» → «Система» → «О программе».
  • Нажмите «Информация о системе»

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID

  • Нажмите «Дополнительные параметры системы»

НАЧИНАЮЩИЕ РУКОВОДСТВО ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID» /></p>
</p>
<ul>
<li>Нажмите кнопку «Переменные среды».
<li>В разделе «Системные переменные» нажмите кнопку «Создать…», назовите переменную как «JAVA_HOME», установите значение, указывающее на каталог установки jdk, например, «C:Program FilesJavajdk1.8.0_144» (без кавычек) и нажмите «ОК».
<li>Найдите переменную «Путь» среди «Системных переменных», выберите ее и нажмите «Изменить…». Нажмите «Создать…» и добавьте следующую строку в конце «%JAVA_HOME%bin» (без кавычек).
<li>Чтобы убедиться, что все настроено правильно, запустите командную строку (Win + R, введите «cmd» и нажмите Enter) и введите «java -version» (без кавычек). Если все в порядке, вы должны увидеть изображение ниже, если нет, повторите шаги еще раз.</ul>
<p><p><img decoding=

Шаг 2. Загрузите и установите Android SDK. После установки вам нужно будет установить переменную среды ANDROID_HOME. Процесс идентичен описанному выше, за некоторыми исключениями:

2.1. При установке значения для переменной «ANDROID_HOME» вы должны установить ее так, чтобы она указывала на вашу папку Android SDK, например «C:UserszelriAppDataLocalAndroidsdk1» (без кавычек). Если вы не можете найти папку «AppData» в папке пользователя, вам может потребоваться включить параметр «Показать скрытые папки». В Windows 10 перейдите на вкладку «Вид» в пользовательской папке и установите флажок «Скрытые элементы».

2.2. При изменении переменной «Путь» вы должны добавить следующее «%ANDROID_HOME%platform-tools» (без кавычек), чтобы указать на Android SDK.

Шаг 3. Загрузите и установить узел.js. Просто следуйте инструкциям по установке, и все. Node.js должен устанавливать необходимые переменные среды без вашей помощи, поэтому ввод «node –v» и «npm –v» в командной строке должен предоставить вам текущие версии node.js и NPM:

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID

В случае ошибок установки вам может потребоваться установить его самостоятельно и указать папку установки, например, «C:Program Filesnodejs» (без кавычек).

Шаг 4. Установите клиент Appium. Просто следуйте инструкциям по установке, и все.

Шаг 5. Запустите клиент Appium от имени администратора. Вы должны увидеть следующее

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID

Шаг 6. Мы запустим сервер Appium на локальном хосте (введите «localhost» в «Host» с портом по умолчанию

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ANDROID

Поздравляем, теперь наш сервер Appium запущен и работает!

Теперь давайте приступим к настройке тестовой среды для запуска наших тестов.

Настройка устройства для запуска тестов

Шаг 1. Запустите выбранный эмулятор Android или подключите реальное устройство через USB-кабель.

Самый удобный способ запустить эмулятор — запустить Android Studio, а затем перейти в «Инструменты» → «Android». → «AVD Manager» и настройте нужное устройство.

Шаг 2.Откройте командную строку и перейдите в каталог ANDROID_HOME, например «cd C:UserszelriAppDataLocalAndroidsdk1platform-tools» (без кавычек).

Шаг 3. Запустите «adb devices», чтобы увидеть список подключенных устройств, как реальных, так и эмулированных.

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ANDROID

Шаг 4.В текущем каталоге запустите android-debugging-bridge (adb), введя и выполнив команду «adb start-server»

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ANDROID

Затем разрешите отладку по USB на вашем устройстве.

Шаг 5. Запустите команду «npm install appium-doctor –g», чтобы установить инструмент командной строки под названием «appium-doctor» для проверки установки Appium для конкретной платформы. Эта команда установит этот инструмент через NPM и сделает его доступным для использования везде.

Шаг 6. Запустите команду «appium-doctor –android», чтобы убедиться, что все готово к Работа. Вы должны увидеть приведенный ниже вывод

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ANDROID

Шаг 7.Теперь мы хотим установить наше тестируемое приложение (AUT) на устройство. Для этого нам нужно нажать кнопку «Начать новый сеанс» в нашем работающем клиенте Appium

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ANDROID

Шаг 6. Чтобы установить желаемое приложение на устройство, нам нужно заполнить форму на вкладке «Желаемые возможности» с правильной информацией, например:

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ANDROID

Здесь:

  • название_платформы — Android или iOS. В нашем случае это Android;
  • версия платформы– версия ОС на нашем устройстве. Для эмуляторов вы должны установить их версию в соответствии со столбцом «Цель» AVD Manager. Для реальных устройств проверьте их версию, зайдя в «Настройки» → «О телефоне» → «Версия Android»;
  • deviceName — название вашего устройства. Несмотря на то, что эта опция технически отсутствует в текущей версии Appium (1.6.5), она необходима для запуска сеанса. Используйте соответствующий из результатов команд «adb devices».
  • app — путь к приложению, которое мы хотим установить. В моем случае я использовал полный путь к .apk-файлу калькулятора CALCU для этого руководства.
  • fullReset — эта опция указывает, когда мы хотим или не хотим откатывать все действия, которые были выполнены после завершения сеанса. Установите «false», потому что мы хотим установить приложение и использовать его после завершения сеанса.

Шаг 7. Нажмите кнопку «Начать сеанс». Вы должны увидеть активность запуска вашего приложения на экране вашего устройства. В случае CALCU у меня вот что:

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID

И теперь вы должны увидеть инспектор Appium для вашего приложения

 РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ANDROID

Написание тестов

Теперь наша среда настроена и готова к дальнейшим манипуляциям и тестам. Начнем с настройки проекта.

Шаг 1.Создайте новую папку и назовите ее «CALCU node.js android test».

Шаг 2. Перейдите к своей папке в командной строке или запустите ее непосредственно в папке.

< p>Шаг 3. Выполните команду «npm init» в папке. Следуйте процессу установки в командной строке, чтобы настроить файл package.json вашего проекта.

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID

Шаг 4. После базовой настройки нам нужно добавить несколько зависимостей, чтобы наши тесты заработали. Мы будем использовать mocha в качестве основы для тестирования с chai для утверждений. Также нам потребуется утилита тестирования webdriverio, улучшающая взаимодействие с мобильным вебом, нативными и гибридными приложениями. Итак, выполните следующие команды:

  • npm install appium-uiautomator2-driver
  • npm install mocha
  • npm install chai
  • npm install chai-as-promised
  • npm install wd
  • npm install wdio-appium-service –D (параметр –D здесь означает установку этой зависимости только для разработчиков)
  • npm install webdriverio –D
  • npm install wdio-mocha-framework –D

Шаг 5.Создайте подпапку и назовите ее «помощники». В «помощниках» создайте файл с расширением .js и назовите его «желаемые возможности». В этом файле мы укажем все необходимые детали для нашего скрипта, такие как приложение, которое мы хотим запустить, и устройство, которое мы хотим использовать для тестирования. Вот завершенное содержимое файла, которое соответствует нашим предыдущим шагам:

BEGINNERS

Примечания, которые следует помнить:

  1. automationName – имя драйвера автоматизации, важный параметр для работы локаторов webdriverios.
  2. appPackage — это пакет вашего приложения. Если вы тестируете приложение из файла .apk без поддержки разработчиков, вы можете получить идентификатор пакета следующим образом:
  • в командной строке перейдите в папку «build-tools» в домашнем каталоге Android SDK. В моем случае я запускаю «cd C:UserszelriAppDataLocalAndroidsdk1build-tools25.0.3»
  • мы будем использовать AAPT (Android Asset Packaging Tool) для получения параметров appPackage и appActivity из существующего .apk. Запустите «aapt dump badging path/to/your.apk». Если это не сработало, попробуйте «./aapt dump badging path/to/your.apk». Вот пакет приложения:

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID

А вот и appActivity:

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID

Теперь наши желаемые возможности настроены, и тест знает, что делать при запуске.

Шаг 6. Вернитесь в папку проекта и создайте файл «webriverio-calcu.js». . Это будет наш скрипт для запуска. Для поиска элементов мы будем использовать мобильные селекторы, предоставляемые webdriverio., например:

1

client.click('android=new UiSelector().resourceId(“com.candl.athena:id/digit5”)')

Этот ресурс специфичен для приложения CALCU. Чтобы получить идентификатор ресурса элемента или любой другой доступный идентификатор, мы будем использовать Appium Inspector. Просто щелкните элемент в моде «Выбор», чтобы открыть панель свойств и выбрать наиболее подходящий атрибут или идентификатор. Дополнительные примеры использования класса UiSelector доступны здесь

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОЕ ТЕСТИРОВАНИЕ ПРИЛОЖЕНИЙ ДЛЯ ANDROID

Шаг 7.После этого мы готовы приступить к написанию сценария. Как я уже говорил ранее, мы будем использовать webdriverio для написания нашего теста, поэтому рассмотрите возможность просмотра их документации для получения дополнительной информации.

7.1. Давайте импортируем все необходимые компоненты и создадим клиент — основной объект взаимодействия и действий:

1234

var webdriverio = require('webdriverio');var expect = require('chai').expect;var config = require('./helpers/desiredCapabilities').options;var client = webdriverio.remote( конфиг);

7.2. Теперь создайте основную функцию, используя ключевое слово describe и передайте «CALCU Testing» в качестве первого параметра. Эта функция завершит наши тесты и объявит before и afterEach .крючки. Они будут выполняться перед нашим набором тестов и после каждого метода соответственно. tab-size:4;-webkit-tab-size:4;tab-size:4;font-size:12px!important;line-height:15px!important>describe('CALCU Testing', функция () { before(function () { this.timeout(50000); return client.init(); }); afterEach(function(){ this.timeout(5000); return client.click('android= новый UiSelector().resourceId("com.candl.athena:id/clear")'); });

1234567891011

description('CALCU Testing', function () {     before(function () {        this.timeout(50000);        return client.init();    });     afterEach(function(){        this.timeout(5000);        return client. click('android=new UiSelector().resourceId(“com.candl.athena:id/clear”)');    });

7.3. Создайте вложенный с помощью ключевого слова describe и назовите его «Добавление теста CALCU». Установите тайм-аут для выполнения тестов этого набора и напишите тесты с использованием этого.ключевое слово.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647

//дополнительное тестирование    describe(“Проверить добавление CALCU”, function () {        this.timeout(15000);        it(“test-close-startup-screen”, function(){            return client.click('android=new UiSelector( ).resourceId(“com.candl.athena:id/btn_close”)');        });                it(“test-two-positive-addition”, function(){           return client.click('android=new UiSelector() .resourceId(“com.candl.athena:id/digit5”)')           .click('android=new UiSelector().resourceId(“com.candl.athena:id/plus”)')           .click('android= new UiSelector().resourceId(“com.candl.athena:id/digit2”)')           .click('android=new UiSelector().resourceId(“com.candl.athena:id/equal”)')           .element ('android=new UiSelector().resourceId(“com.candl.athena:id/display”).childSelector(new UiSelector().className(“android.widget.TextView”))')           .getText()           .then (function (text){               console.log(“Текст, который мы получили на выходе: “,text);               expect(text).to.equal('7');            }); }); it(“test-negative-positive-addition”, function(){           return client.click('android=new UiSelector().resourceId(“com.candl.athena:id/minus”)')           .click('android =new UiSelector().resourceId(“com.candl.athena:id/digit5”)')           .click('android=new UiSelector().resourceId(“com.candl.athena:id/plus”)')           . click('android=new UiSelector().resourceId(“com.candl.athena:id/digit2”)')           .click('android=new UiSelector().resourceId(“com.candl.athena:id/equal” )')           .element('android=new UiSelector().resourceId(“com.candl.athena:id/display”).childSelector(new UiSelector().className(“android.widget.TextView”))')           . getText()           .then(function (function (text){               console.log(“Текст, который мы получили на выходе: “,text);               expect(text).to.equal('-3');            });        }); it(“test-negative-addition”, function(){           return client.click('android=new UiSelector().resourceId(“com.candl.athena:id/minus”)')           .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit5”)')          .click('android=new UiSelector().resourceId(“com.candl.athena:id/plus”)')           .click( 'android=new UiSelector().resourceId(“com.candl.athena:id/minus”)')           .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit2”)' )           .click('android=new UiSelector().resourceId(“com.candl.athena:id/equal”)')           .element('android=new UiSelector().resourceId(“com.candl.athena:id/display»). ,текст);              expect(text).to.equal('-7');            });        }); });

7.4. Добавьте тестовую группу, чтобы охватить функциональность умножения.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455

//проверка умножения    describe(“Проверить умножение CALCU”, function () {        this.timeout(15000);        it(“test-positive-multiplication”, function () {            return client.click('android=new UiSelector(). resourceId(“com.candl.athena:id/digit5”)')            .click('android=new UiSelector().resourceId(“com.candl.athena:id/mul”)')                   .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit2”)')            .click('android=new UiSelector().resourceId(“com.candl.athena:id/equal”)')            .element( 'android=new UiSelector().resourceId(“com.candl.athena:id/display”).childSelector(new UiSelector().className(“android.widget.TextView”))')            .getText()            . then( function (text){                console.log(“Текст, который мы получили из вывода: “,text);                expect(text).to.equal('10');            });        });        it(“test-positive- отрицательное умножение”, function(){            return client.click('android=new UiSelector().resourceI d(“com.candl.athena:id/minus”)')            .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit5”)')                   .click('android=new UiSelector().resourceId(“com.candl.athena:id/mul”)')            .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit2”)')            .click( 'android=new UiSelector().resourceId(“com.candl.athena:id/equal”)')            .element('android=new UiSelector().resourceId(“com.candl.athena:id/display”). childSelector(new UiSelector().className(“android.widget.TextView”))')            .getText()            .then(function(text){                          console.log(“Текст, который мы получили на выходе: “, text); ожидать(текст).to.equal('-10'); }); }); it(“test-negative-multiplication”, function(){            return client.click('android=new UiSelector().resourceId(“com.candl.athena:id/minus”)')                   .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit5”)')            .click('android=new UiSelector().resourceId(“com.candl.athena:id/mul”)')            .click( 'android=new UiSelector().resourceId(“com.candl.athena:id/minus”)')            .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit2”)' )            .click('android=new UiSelector().resourceId(“com.candl.athena:id/equal”)')            .element('android=new UiSelector().resourceId(“com.candl.athena:id/display»). ,text);               expect(text).to.equal('10');            });        }); it(“test-zero-multiplication”, function(){            return client.click('android=new UiSelector().resourceId(“com.candl.athena:id/digit5”)')                   .click('android=new UiSelector().resourceId(“com.candl.athena:id/mul”)')            .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit0”)')            .click( 'android=new UiSelector().resourceId(“com.candl.athena:id/equal”)')            .element('android=new UiSelector().resourceId(“com.candl.athena:id/display”). childSelector(new UiSelector().className(“android.widget.TextView”))')            .getText()            .then(function(text){                          console.log(“Текст, который мы получили на выходе: “, text); expect(text).to.equal('0');            });        }); });

7.5. Добавьте тестовую группу для проверки операций деления.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

//тестирование деления    describe(“Проверка деления CALCU”, function () {        this.timeout(15000);        it(“test-divide-even”, function(){            return client.click('android=new UiSelector(). resourceId(“com.candl.athena:id/digit6”)')               .click('android=new UiSelector().resourceId(“com.candl.athena:id/div”)')                        .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit2”)')                       .click('android=new UiSelector().resourceId(“com.candl.athena:id/equal”)')                 .element( 'android=new UiSelector().resourceId(“com.candl.athena:id/display”).childSelector(new UiSelector().className(“android.widget.TextView”))')                                 .getText()                 . then( function (text){                console.log(“Текст, который мы получили из вывода: “,text);                expect(text).to.equal('3');            });        });        it(“test-divide- нечетный”, function(){           return client.click('android=new UiSelector().resourceId(“com.candl.athena:id/digit 7”)')               .click('android=new UiSelector().resourceId(“com.candl.athena:id/div”)')              .click('android=new UiSelector().resourceId(“com.candl. athena:id/digit3”)')               .click('android=new UiSelector().resourceId(“com.candl.athena:id/equal”)')               .element('android=new UiSelector().resourceId(” com.candl.athena:id/display”).childSelector(new UiSelector().className(“android.widget.TextView”))')               .getText()               .then(function (text){              console.log(“Text получаем на выходе: “,text); ожидать(текст).to.include('2.333'); }); }); it(“test-divide-positive-negative”, function(){           return client.click('android=new UiSelector().resourceId(“com.candl.athena:id/digit6”)')                       .click('android =new UiSelector().resourceId(“com.candl.athena:id/div”)')               .click('android=new UiSelector().resourceId(“com.candl.athena:id/minus”)')               . click('android=new UiSelector().resourceId(“com.candl.athena:id/digit3”)')               .click('android=new UiSelector().resourceId(“com.candl.athena:id/equal” )')               .element('android=new UiSelector().resourceId(“com.candl.athena:id/display”).childSelector(new UiSelector().className(“android.widget.TextView”))')               . getText()               .then(function (text){               console.log(“Текст, который мы получили на выходе: “,text);               expect(text).to.equal('-2');            });        }); it(“test-divide-negative”,function(){           return client.click('android=new UiSelector().resourceId(“com.candl.athena:id/minus”)')               .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit6”)')               .click('android=new UiSelector().resourceId(“com.candl.athena:id/div”)')               .click( 'android=new UiSelector().resourceId(“com.candl.athena:id/minus”)')               .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit3”)' )               .click('android=new UiSelector().resourceId(“com.candl.athena:id/equal”)')               .element('android=new UiSelector().resourceId(“com.candl.athena:id/display»). ,текст);              expect(text).to.equal('2');            });        }); it(“test-divide-by-zero”,function(){            return client.click('android=new UiSelector().resourceId(“com.candl.athena:id/digit5”)')                .click('android =new UiSelector().resourceId(“com.candl.athena:id/div”)')                        .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit0”)')                 . click('android=new UiSelector().resourceId(“com.candl.athena:id/equal”)')                .click('android=new UiSelector().resourceId(“com.candl.athena:id/equal” )')                .element('android=new UiSelector().resourceId(“com.candl.athena:id/display”).childSelector(new UiSelector().className(“android.widget.TextView”))')                . getText()                .then(function (text){                console.log(“Текст, который мы получили на выходе: “,text);                       expect(text).to.equal('Error');             });        }); });

7.6. Добавьте еще один расширенный тест, который включает, например, действие смахивания.

Вот пример:

12345678910111213141516171819

//расширенное тестирование    describe(“Test CALCU advanced”, function(){        this.timeout(90000);        it(“test-“,function(){            return client                        .swipeDown('android=new UiSelector().resourceId(” com.candl.athena:id/pullview_root”)',100,3)                .click('android=new UiSelector().resourceId(“com.candl.athena:id/custom_key_0”)')               .click('android= new UiSelector().resourceId(“com.candl.athena:id/btn_trig_units”)')                .click('android=new UiSelector().resourceId(“com.candl.athena:id/digit9”)')                .click ('android=new UiSelector().resourceId(“com.candl.athena:id/digit0”)')                .click('android=new UiSelector().resourceId(“com.candl.athena:id/equal”) ')                .element('android=new UiSelector().resourceId(“com.candl.athena:id/display”).childSelector(new UiSelector().className(“android.widget.TextView”))')                .getText ()                .then(function (text){                console.log(“Текст, полученный из вывод: “,текст); ожидать(текст).to.equal('1'); }); }); })

7.7. В области действия функции-оболочки добавьте после хук, который закроет соединение, а также AUT.

1234

after( function() {        return client.end();    });});

Шаг 8.Откройте «package.json» и в разделе «Скрипты» добавьте точно такую ​​же строку: «webdriverio-calcu»: «mocha webdriverio-calcu.js». Это позволит нам запустить наш тест с помощью «npm run webriverio-calcu».

Шаг 9. Наконец, ваша папка «CALCU node.js android test» должна выглядеть так:

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID

И ваша папка «помощники» должна быть такой:

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID

Шаг 10. Закройте инспектор Appium, нажав кнопку «Выйти из сеанса и закрыть инспектор» на верхней центральной панели.

Шаг 11. Запустите скрипт, выполнив «npm run webdriverio-calcu» в папке вашего проекта. Вы должны увидеть процесс выполнения на вашем устройстве, а также журнал mocha в консоли:

РУКОВОДСТВО ДЛЯ НАЧИНАЮЩИХ ПО ИСПОЛЬЗОВАНИЮ APPIUM С NODEJS ДЛЯ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ ПРИЛОЖЕНИЙ ДЛЯ ANDROID

Вот и все. Надеюсь, что этот пост об автоматическом тестировании Android с использованием Appium с NodeJs будет вам полезен. Теперь вы можете запускать скрипты node.js (поддерживаемые webdriverio, mocha и chai) через Appium для тестирования своих мобильных приложений.

Об авторе:

Компания TestMatick предлагает услуги по автоматическому тестированию. для веб и мобильных приложений. С TestMatick вы также можете использовать все преимущества непрерывной интеграции. Он включает в себя настройку среды, которая автоматически интегрирует все части проекта и выполняет тесты каждый раз, когда кто-то делает фиксацию в системе управления версиями. Мы предоставляем услуги по автоматизации контроля качества с использованием следующих инструментов автоматизации:

– Selenium WebDriver
– Appium
– Automated QA TestComplete
– HP/Mercury QTP
– Segue SilkTest
– Ranorex
– Роботиум
TAG: qa

От QA genius

Adblock
detector