Во время этого прохождения вы создадите скрипт автоматизации BDD с Node.js и cucumber.js, а скрипт используется для тестирования служб API reзов.
В этом прохождении мы будем:
- Создайте сценарий BDD и внедрить сценарий
- Макет сервера API
- Запустите автоматический скрипт и просмотр отчета о тестировании
- Сделать тестовые данные
API, которые мы планируем в Mock и Test – это API для управления пользователями, с помощью этого API вы можете получить имя пользователя с помощью метода «Get», а также обновить имя с помощью метода «PUT».
Чтобы создать сценарий API, вы можете скачать Cuketest в качестве редактора, который находится в Cuketest.com Отказ
Вот шаги:
1. Создать проект
- Нажмите кнопку «Новый проект», открывается диалоговое окно «Новый проект».
- Введите «Apitesting» в качестве имени проекта, выберите «API Service» в качестве шаблона и выберите путь проекта.
- Нажмите кнопку «Создать», чтобы создать проект.
2. Загрузить зависимости
Node.js Scripts обычно требуют некоторых зависимостей NPM. Зависимости, используемые в этом проекте теста API, являются:
- JSON-MOCK : API Mock Server
- получил : библиотека, которая называет API
- @ Типы/Получены : Набор данных библиотеки Get, которая предоставляет автозаполнение в редакторе
Эти пакеты были предварительно настроены в Package.json на шаблоне проекта. Чтобы загрузить зависимости, откройте командную строку, нажав кнопку «Открыть командную строку» с панели инструментов, а затем введите NPM установить
Команда для установки этих пакетов.
Примечание : У вас должен быть установлен Node.js для использования команды NPM. Перейдите в веб-сайт Node.js (https://nodejs.org), чтобы узнать больше деталей.
3. Реализировать скрипт
У него есть две части: функция и код:
- Файл функции Создайте новый файл функций в папке «Особенности», имя файла может быть «API_TESTING.FEATURE» или тот, который вам нравится, отредактируйте содержимое как следующее:
Текст функции следующий:
Feature: API Testing Exercise Call API to change user name Scenario: Change user name When send PUT request to "http://127.0.0.1:3000/users/1", the data is """ { "name":"Susan" } """ Then send GET request to "http://127.0.0.1:3000/users/1", user name should be "Susan"
Вы можете удалить файл функции по умолчанию «Функция1.feature» и соответствующие определения шага в файле «Определение1.js».
На функту «API_TESTING.FEATURE» нажмите на каждую серую кнопку на правой стороне каждого шага, чтобы создать кодовые заглушки для них. Код генерируется в файле «Определение1.js». Обратите внимание, что серая кнопка поворачивается оранжевым, когда генерируются заглушки на этапе определения.
Дополнительно реализуйте код как следующее:
const { Given, When, Then } = require('cucumber'); const got = require('got'); const assert = require('assert'); //// Your Step Definitions ///// When(/^send PUT request to "([^"]*)", the data is$/, async function (url, docString) { var data = { headers: { 'Content-Type': 'application/json' }, json: true, body: JSON.parse(docString) }; await got.put(url, data); }); Then(/^send GET request to "([^"]*)", user name should be "([^"]*)"$/, async function (url, name) { let res = await got.get(url); let json = JSON.parse(res.body); return assert.equal(json.name, name); });
Самосвязка, в шаге «Отправить …», он создает запрос JSON и отправляет запрос на URL-адрес, используя Поставить
Способ, в шаге «Отправить Get …», извлеките данные JSON, используя Получить
Метод, затем проверьте его имя – это то же имя, которое мы устанавливаем на предыдущем шаге.
Обратите внимание, что кнопки рядом с текстом шага становятся зелеными, как только вы реализовали код.
Если вы реализуете код, копируя часть кода из статьи в свой редактор, убедитесь, что имена переменных совпадают с созданным по умолчанию, например, генерируемые параметрами по умолчанию являются «arg1», «arg2» и т. Д., Пожалуйста, обновите их соответствовать контенту.
4. Найдите шаги и определения шага
Вы можете перемещаться между шагами и определениями шагов со следующими действиями:
- Нажмите на зеленую кнопку За шагом текста, чтобы открыть код определения шага, который соответствует шагу.
- Если вы находитесь в функции определения шага, и хотите найти, какой текст шага в файле функций, который соответствует его, вы можете щелкнуть правой кнопкой мыши функцию определения шага и выберите «Найдите текст шага», то соответствующий текст шага в файле функций будет показано и выделено.
5. Запустите проект
Чтобы запустить этот проект, нам нужна служба API, которая может быть проверена, с JSON-MOCK
Пакет, мы можем издеваться над сервером API, приведены ниже шаги:
Мы начнем Mock Server первым. Щелкните правой кнопкой мыши белое пространство области проводника проекта и выберите «Показать в окне CMD», или просто нажмите кнопку «Открыть командную строку» на панели инструментов, оба могут запускать окно CMD. Введите команду
NPM Run Json-Mock
он должен начать услугу Mock. Командное окно похоже на следующее:Проверка MOCK Server работает путем навигации на «http://localhost: 3000/» в вашем браузере, которое должно показать веб-страницу с сообщением «Поздравляю!» Вы успешно работаете JSON Server. “
С Mock Server запустился, теперь вы можете запустить проект. На Cuketest нажмите кнопку «Выполнить проект», чтобы запустить проект, он начнет работать и генерировать отчет о тесте после запуска.
Вы можете видеть, что в отчете содержится как сводная часть, так и детальная часть.
6. Действия по тестовым отчете
Когда тестовый отчет генерируется и показан, вы можете выполнить несколько дополнительных действий в отчете с панелью инструментов выше отчета. Например, вы можете экспортировать отчет в файл PDF или отправить отчет как вложение электронной почты. Ниже приведены действия, которые могут быть выполнены:
- Нажмите «Сохранить» Кнопка, чтобы сохранить отчет в виде файла PDF.
- Нажмите «Открыть файловую папку» Кнопка, чтобы открыть папку в Explorer, где находится отчет.
- Нажмите «Показать в браузере» Кнопка, чтобы открыть отчет в браузере по умолчанию.
- Нажмите «Тема отчета HTML» Кнопка, чтобы выбрать другую тему для рендера отчета.
- Нажмите «Email» Кнопка, она откроет новое окно редактирования электронной почты в Outlook и прикрепите отчет как вложение. (Только для Windows)
7. Сделайте тестовые данные
Многие тесты API необходимо пройти разные тестовые параметры для API, чтобы убедиться, что он работает со всеми этими параметрами. Таким образом, мы можем сделать этот тестовый данные, чтобы сделать его управляемыми данными, мы можем преобразовать его в Сценарий наброски первый. Вот шаги:
Щелкните правой кнопкой мыши заголовок сценария, выберите «Изменить тип сценария» => «Сценарий наброски»:
Он преобразует ваш сценарий на контур сценариев, с параметрами, извлеченными в пример таблицы:
Теперь мы обновляем контур сценариев и таблица Пример, чтобы иметь имя и данные правильного параметра:
а. Измените «Param1» на «URL» в обоих шаговом тексте, так и в заголовке таблицы.
б. Измените «Param2» на «first_name» в обоих шаговом тексте и заголовок таблицы. Вы также должны заменить «Сьюзан» в DocString, чтобы быть «
». Автоматическое преобразование не заменяет содержимое DOCSTRING для вас, поэтому вам нужно сделать это самостоятельно. с. Добавьте дополнительные строки данных на примерную таблицу. Вы можете дважды щелкнуть корпус стола, нажмите вкладки, пока не перейду на новую строку, а затем заполните некоторые новые данные, сделайте его и с помощью первой строки данных, только изменяйте идентификатор и часть имени. После редактирования весь ваш сценарий похож на следующее:
После завершения проведения тестового проекта вы увидите, что отчет теперь содержит 3 сценария. Для каждой строки в примере он будет запускать контур сценариев один раз с заполненными данными строки. Эта возможность предоставляется огурцом. Вы можете увидеть, что в отчете первые два сценария преуспевают, пока третий не удается.
Откройте файл «Data.json» в папке проекта, вы также можете увидеть, что первые 2 записи JSON имеют имя, обновляемое для «Сьюзан» и «Джейсон». Таким образом, мы узнали о проблеме, это потому, что у Mock Server имеет только 2 записи, и когда мы пытаемся обновить 3-й записи, MOCK Server возвращает ошибку «Не найден». Для того, чтобы сделать тестовый пропуск, вам нужно добавить еще несколько записей. Так что скопируйте следующие данные в массив «Пользователей» в файле data.json и сохраните его:
Примечание : Вам нужно перезапустить на MOCK Server, чтобы изменить эффект.
Затем снова запустите тест, вы должны увидеть, что в отчете все три сценария прошли. Также открывает файл «Data.json» и обратите внимание, что объект 3RD JSON также был обновлен сценарием автоматизации, чтобы иметь имя «John».
Резюме
В этом проходе мы издевались на службу Restful API, которые управляют пользователями, а затем тестируйте эту услугу с помощью сценария тестирования BDD, внесите изменения в имя пользователя, а затем убедитесь, что имя действительно модифицировано.