Рубрики
Без рубрики

Wordhrough: автоматизация тестирования Windows Notepad с Node.js

Эта статья демонстрирует, как создать скрипт автоматизации для блокнота Windows 10, используя Node.js и cucumber.js. Вы также узнаете, как создавать объектную модель для вашего приложения Windows, и как использовать API для автоматизации Windows в Cuketest, чтобы написать сценарий.

Автор оригинала: CukeTest.

Эта статья демонстрирует, как создать скрипт автоматизации для блокнота Windows 10, используя Node.js и cucumber.js. Вы также узнаете, как создавать объектную модель для вашего приложения Windows, и как использовать API для автоматизации Windows в Cuketest, чтобы написать сценарий.

В этом прохождении мы будем:

  • Создайте сценарии BDD, которые описывают шаги автоматизации
  • Spy Botepad контролирует и добавьте тестовые объекты для объектной модели
  • Внедрить код автоматизации
  • Отладить и запустить скрипт, чтобы получить отчет

Мы создали видео о том, как это сделать, посмотреть его на YouTube

Чтобы сделать это пошаговое сами, пожалуйста, сначала установите Node.js и Cuketest как инструменты разработки.

1. Создать проект

  1. Открыть Cuketest, нажмите «Файл» -> «Новый проект»

  2. Установите «NOOPADTESTTING» как имя проекта, и выберите шаблон проекта «Windows», также укажите путь проекта, а затем нажмите «Создать», чтобы создать проект.

newproject.png.png.

2. Написать сценарии

Чтобы написать сценарию автоматизации поведения, который всегда начинается с написания тестовых случаев, которые вы хотите автоматизировать в виде файлов функций. Открыть Функция1.feature Файл, на «Visual» View, введите содержимое в соответствии со следующей картинкой.

функция

В «Text» View вы найдете содержимое файла функций:

Feature: Notepad Application Automation
Automate Windows 10 Notepad application for testing

Scenario: Edit content and save
   Given Notepad application is opened
   When input text "hello world" in the Notepad
   And select [File] -> [Save] to show the file save dialog
   And enter the file name "helloworld.txt" and click [OK]
   Then the file should be saved successfully

Scenario: Change Notepad font
   Given Notepad application is opened
   When select [format] -> [font] to open font dialog
   And select [Arial] font from the Font dropdown box
   Then Click [OK] button to dismiss the Font dialog

С созданными сценариями теперь очень ясно, что нужно реализовать.

3. Шпионские элементы управления

При автоматизации приложения Windows «тестовые объекты» используются для определения элементов управления Windows. Каждый тестовый объект содержит набор свойств и правил, используемых для поиска элемента управления. Информация о тестировании объекта хранится в файле объекта модели (или в аббревиатуре, «Модельный файл»), который заканчивается «.tmodel». Model Manager в Cuketest используется для создания и менеджера файла модели. Вот быстрая инструкция о том, как шпионить и добавлять объекты в модель:

Нажмите кнопку «Добавить объект», чтобы запустить шпионар элемента, щелкните элемент управления, который вы хотите добавить, если элемент управления успешно держется, он показывает, что элементы управления вы хотите добавить и его свойства. Затем вы нажимаете кнопку «Добавить в модель», чтобы добавить ее в объект модели.

Addobj.png.png.
add.png.png

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

  1. Нажмите step_definitions \ model1.tmodel Файл, чтобы открыть его в Model Manager.

  2. Откройте блокнот, шпим для следующего списка элементов управления и добавьте их в модель, также дайте им имена в виде столбца «Имя объекта» ниже:

    “Файл”
    “Сохранить”
    “Формат”
    “Шрифт…”
    “”

    Один совет о шпионаже, чтобы сделать кнопку «Сохранить», сначала нажмите клавишу Ctrl. Когда щелкните «Файл», чтобы этот щелчок не запускает шпионскую диалог, чтобы появиться, а затем отпустите клавишу Ctrl при нажатии «Сохранить».

  3. Откройте диалог «шрифт», нажав «Формат» -> «Font …» меню, шпион и добавьте следующий список элементов управления и добавьте их в модель.

    “Arial”
    “ОК”
  4. Откройте диалоговое окно «Сохранить файл», SPY и добавьте следующий список элементов управления и добавьте их в модель

    “”
    “ОК”

    После добавления всех этих элементов ваша модель должна выглядеть следующим образом:

4. Начните реализацию сценариев

  1. Открыть step_definations \ определения1.js Файл, щелкните серые кнопки на каждом шаге, чтобы сгенерировать заглушку кода определения шага.

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

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

    Теперь вы можете открыть Model1.tmodel Файл, выберите объект из дерева модели, выберите вкладку «Действия/свойства», а затем скопируйте метод из списка и добавьте их в сценарий.

  2. Чтобы реализовать определения шага, сначала реализовать шаг « Удача Блокнот приложений открывается», вы можете использовать API «util.launchprocess» для запуска процесса блокнота:

  3. После написания кода вы можете проверить его, щелкнув правой кнопкой мыши на шаге, и нажмите кнопку «Запускать этот шаг» на панели инструментов STEP:

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

  4. Перед внедрением шагов остальных мы должны добавить функции крючка, чтобы минимизировать окно Cuketest, когда сценарий запускается, и восстановить окно Cuketest, когда запущен заканчивается, мы можем достичь этого в BeForall и Послеобеда крючки. Для получения дополнительной информации о крючках вы можете прочитать BDD Web Automation 04: крючки и тайм-аут Отказ Добавьте файл “Поддержка/hooks.js” и поместите следующий контент:

    В Cooks.js мы устанавливаем шаг тайм-аута, чтобы быть на 20 секунд вместо по умолчанию 5 секунд, что немного коротко для скрипта автоматизации Windows. Также в BeForall Мы минимизируем окно Cuketest, прежде чем запускать какие-либо сценарии, подождите 1 секунду, пока минимизация фактически не вступает в силу, так что она не будет вмешиваться в тестируемое пользовательское интерфейс приложения при выполнении Automatino.

5. Реализуйте все шаги автоматизации

  1. Теперь мы можем реализовать второй шаг:

    В этом этапе определение функции Sub, измените имя параметра, чтобы быть «Text», и перетащите объект «Text Editor» из Model Manager к функции, выберите Установить Метод и заполните параметр «Текст» в нем, код является следующим:

    Предположим, вы открыли блокнот, теперь вы можете щелкнуть правой кнопкой мыши текст шага, и выберите «Запустите этот шаг», как вы сделали для первого шага, он минимизирует Cuketest, установить содержимое блокнота «Hello World», а затем Восстановить окно Cuketest. Если этот шаг успешно работает, вы можете добавить шаги отдыха аналогично.

  2. Чтобы сохранить абзац, я вставю все определения1.js код ниже:

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

6. Продолжительность

Нажмите кнопку «Выполнить», она запускает эти два сценария, а затем откройте тестовый отчет, как следующее:

отчет .png.png
Report1.png.png.png.png

Резюме

В этой статье мы успешно создали скрипт BDD, который может автоматизировать блокнот и генерировать отчет о тестировании. С помощью модели теста, которая управляет тестовыми объектами, код упрощается и проще для обслуживания. Cuketest обеспечивает возможность отладки, которые могут запускать сценарий пошаговой.

В следующей статье мы расскажем о том, как организовать объектные модели в модельном менеджере, чтобы они были более организованными. Кроме того, мы расскажем о том, как обновить свойства в тестовом объекте, чтобы он мог работать между Windows с другим языком отображения.

Некоторые другие показания о автоматизации Windows с использованием Node.js:

  • Автоматизация Windows 01 – Начало работы с Calculator Automation
  • Автоматизация приложений Windows 02: Отправить почту с почтовым клиентом