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

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

Из пирамиды видно, что выполнять тесты низкого уровня намного быстрее и дешевле, чем тесты высокого уровня. Итак, если мы хотим сэкономить время и деньги, мы должны инвестировать в низкоуровневые тесты. Количество тестов должно уменьшиться, как только мы перейдем к верхним уровням пирамиды.

Интеграционные тесты (как следует из названия) нацелены на интеграцию изолированных частей системы. Практическим примером этого типа испытаний является испытание «дверь и замок», когда требуется, чтобы замок запирал дверь. Модульные тесты изолированных компонентов прошли, но когда они были интегрированы, они не соответствовали требованиям, потому что выбранный тип замков не запирает раздвижные двери. Таким образом, с помощью интеграционных тестов мы можем проверить, соответствует ли каждый компонент, который был разработан изолированно, после интеграции, требованиям бизнеса или нет.

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

Чтобы продолжить установку, сначала вы должны установить node.js на предполагаемую машину, для этого вам нужно только загрузить файл «.exe» в вашу операционную систему.

Затем через командную строку войдите в папку, в которой вы хотите сохранить тесты, и выполните следующие команды:
npm init - для инициализации использования npm и определите некоторую информацию о тестах / проекте, а именно шаг, на котором мы определяем, какая команда будет запускать тесты, в данном случае был выбран «test». После выполнения этой команды у нас будет в выбранной папке файл с именем «package.json», который используется для хранения некоторых настроек, таких как сценарии выполнения команд, пути к каталогам, в которых сохраняются выходные результаты тестов, зависимости и т. Д .;
npm install jest supertest - для установки пакетов jest и supertest. После выполнения этой команды у нас будет папка с именем «node_modules», в которой хранятся установленные пакеты. Кроме того, файлы «package.json» и «package-lock.json» изменены, чтобы включить информацию о вновь установленных пакетах.

После выполнения двух предыдущих команд, и если нам нужно разместить тестовый репозиторий на другом компьютере, нам просто нужно сделать:
npm install ou npm i - чтобы установить npm, пакеты зависимостей и настройки, которые находятся в файле «package.json».
Файл «package.json» должен иметь такие же конфигурации, как показано ниже:

После завершения установки мы готовы приступить к написанию тестов. Для этого нам понадобится текстовый редактор. Мы можем работать даже с блокнотом, который поставляется с операционной системой Windows, но есть и другие инструменты, более подходящие для программирования, например, код Visual Studio, который я обычно использую.

Внутри редактора мы начнем писать файл. Во-первых, мы должны импортировать пакет супертеста в константу (потому что он будет повторно использоваться во всех тестах для доступа к его методам).
Затем мы передадим URL-адрес API (например, http: // localhost: 8080 ) и определите запрос:
• если это .GET / .POST / .PUT / .DELETE
• если нам нужно назначить заголовки через метод .set
• если нам нужно передать какой-либо запрос через метод .query; < br /> • и определите ожидаемый код состояния с помощью метода .expect.
Есть и другие методы, которые мы можем использовать, чтобы узнать о них больше, обратитесь к документации супертеста .
Поскольку иногда нам также необходимо проверять тело ответов, мы можем использовать .then для анализа возврат ответа и выполнение ожидания (но это ожидание отличается от кода статуса супертеста, потому что это от JEST). Наряду с этими мы можем использовать другие методы, которые помогут нам улучшить валидацию. Чтобы узнать о них больше, обратитесь к документации JEST.

В JEST есть еще несколько методов, которые можно использовать при написании тестов, например:

  • описать: это похоже на набор тестов, в описании может быть набор тестов. В описаниях мы также можем разместить другие описания с другими наборами тестов, как показано в «Сводке» на рисунке ниже;
    it или test: они являются нашими собственными тестами, каждое «оно» является тестом, поэтому описать собирает набор «своих»;
    beforeAll / beforeEach: эти два метода могут выполнять что-то перед всеми тестами (beforeAll) или перед каждым тестом (beforeEach). Практическими примерами этих двух типов могут быть:
    ›В beforeAll запускать соединение с базой данных;
    › В beforeEach инициализировать выполнение скрипта вставки любых данных БД, которые нам понадобятся в тестах; < br /> • afterAll / afterEach: эти два метода (противоположные приведенным выше) могут выполнять что-либо после всех тестов (afterAll) или после каждого теста (afterEach). Практическими примерами двух случаев могут быть:
    ›В afterAll закрыть соединение с базой данных;
    › В afterEach выполнение скрипта для удаления данных БД, которые использовались только в тестах.

После того, как мы автоматизируем все тесты, нам нужно проверить, работают ли они, для этого нам нужно их запустить.

Чтобы запустить эти тесты, нам просто нужно выполнить команду «npm test» на терминале. Почему эта команда? Потому что это был тот, который мы определили на этапе установки, когда выполняли «npm init». Но для подтверждения мы можем получить доступ к файлу package.json, в котором есть команда test, определенная в разделе scripts. Эта команда вызовет нашу программу запуска тестов, JEST, которая включает все файлы с номенклатурой «‹name› .test.js», и запустит все тесты в них. Как видно на следующем изображении.

Наконец, для любого развертывания (общий процесс развертывания состоит из нескольких взаимосвязанных действий с возможными переходами между ними) необходимо только выполнить следующие команды внутри папки, в которой находится пакет .json файл находится.

  • npm i
  • тест npm

Вы можете проверить мой репозиторий GitHub с некоторыми примерами этих тестов.

📌 https://github.com/sofiatrindade/APITesting_JEST_SUPERTEST 📌