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

я. Настройка Rest Assured для автоматизации

II. Автоматизация HTTP-методов GET, POST и PUT с использованием Rest Assured

III. Десериализация и сериализация с использованием классов POJO

IV. Как использовать Spec Builder в REST Assured?

v. Как проводить тестирование на основе данных в Postman?

I. Настройка Rest Assured для автоматизации

Здесь мы увидим, как настроить Rest Assured для автоматизации. Мы используем Gradle в качестве инструмента автоматизации сборки. Пожалуйста, найдите шаги ниже:

я. Посетите https://mvnrepository.com/

II. Введите «REST Assured» в поле поиска.

III. Нажмите на первый в списке

IV. Нажмите на 5.3.0 из списка версий.

v. Скопируйте зависимость gradle для REST Assured

ви. Вставьте файл gradle в свой проект и создайте проект.

II. Автоматизация HTTP-методов GET, POST и PUT с использованием Rest Assured

Rest Assured поддерживает хорошо известный синтаксис Given/When/Then от Behavior Driven Development (BDD), который помогает нам писать более удобочитаемые сценарии автоматизации и помогает нам в настройке, выполнении и проверке с помощью всего одной строки кода. Здесь я использовал фрагменты кода из одного из курсов udemy, которые я посещал. Я дал ссылку на курс в разделе ссылок. Пожалуйста, найдите код для метода POST HTTP ниже:

я. HTTP-метод POST

Ниже приведен код HTTP-метода POST. Прокрутите вниз для объяснения того же самого.

Пожалуйста, найдите полезную нагрузку ниже:

Здесь мы нажимаем URL-адрес https://rahulshettyacademy.com с телом, которое вы можете найти выше. Конечная точка REST API — maps/api/place/add/json. Как вы видите, в классе RestAssuredAutomationPostApiCall.java в given мы передаем header и body. В when мы указываем метод HTTP и конечную точку, которую мы пытаемся достичь. И, наконец, мы проверяем, соответствует ли код состояния ответа ожидаемому или нет, и соответствует ли значение ключа ответа тому, что мы ожидаем, и мы извлекаем его в виде строки и выводим на консоль.

Мы анализируем JSON с помощью JsonPath, пытаемся получить значение ключа «place_id» и распечатать его.

II. метод PUT HTTP

Пожалуйста, найдите приведенный ниже код для HTTP-метода PUT. Прокрутите вниз для объяснения того же самого.

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

III. ПОЛУЧИТЬ HTTP-метод

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

Здесь также мы используем данные, когда и затем, как описано в вызове POST, но единственная разница в том, что мы используем get в разделе when. Мы пытаемся получить одно конкретное значение key из ответа, а затем сравниваем это значение, которое мы хотим. Мы также создали повторно используемый метод, поэтому мы можем использовать его в любое время.

III. Сериализация и десериализация с использованием классов POJO

Обычный старый объект Java, также известный как классы POJO, используется в среде автоматизации тестирования для создания полезной нагрузки (сериализация) и получения пар ключ-значение из ответа (десериализация). Здесь мы рассмотрим пример системы управления студенческими записями, в которой есть класс под названием «Студент». Пожалуйста, найдите студенческий класс ниже:

Как вы можете видеть в приведенном выше файле, мы создали класс Student со всеми необходимыми геттерами и сеттерами. Теперь мы будем создавать объект JSON из POJO и наоборот, используя API-интерфейсы Jackson, поэтому для этого обновите файл gradle с зависимостью здесь.

я. Сериализация

В сериализации мы будем преобразовывать объект класса Student в объект JSON. Пожалуйста, найдите код для того же ниже:

II. Десериализация

В десериализации мы будем преобразовывать объект Student JSON в класс Student. Пожалуйста, найдите код для того же ниже:

IV. Как использовать Spec Builder в REST Assured?

Rest Assured Request and Response Specifications используются, чтобы избежать дублирования кода. Пожалуйста, найдите два разных интерфейса, доступных в Rest Assured, которые перечислены ниже:

я. RequestSpecification — может использоваться для объединения и извлечения повторяющихся действий, таких как базовый URL, заголовки, методы HTTP и т. д., которые могут быть идентичными для нескольких вызовов Rest. Это помогает сократить количество строк кода и, следовательно, повышает удобство сопровождения кодовой базы автоматизации.

II. Спецификация ответа. Ее можно использовать для группировки всех различных утверждений, которые мы хотим сделать для любого ответа, полученного на запрос вызова Rest.

Пожалуйста, найдите ниже пример кода, который мы уже видели ранее, но с построителем Spec:

V. Как проводить тестирование на основе данных в Postman?

Postman — очень мощный инструмент, который можно использовать для разработки и тестирования API. Мы также можем использовать его для тестирования на основе данных, что означает, что если мы хотим протестировать конечную точку API с другим набором параметров, который поступает из csv, мы также можем это сделать. Пожалуйста, найдите шаги теста ниже:

я. Запустите почтальона

II. Пожалуйста, используйте конечные точки API, указанные ниже:

а. Конечная точка API — https://reqres.in/api/users

б. Пожалуйста, найдите тело ниже:

{
    "name": "{{name}}",
    "job": "{{job}}"
}

III. Теперь нажмите на вкладку «Тесты» почтальона и вставьте код ниже:

IV. Теперь нажмите «Выполнить папку».

v. Теперь создайте файл «csv», как показано ниже.

ви. Теперь нажмите на выбранный файл и выберите созданный выше csv.

vii. Если вы нажмете на опцию «Предварительный просмотр», вы сможете увидеть детали csv.

VIII. Нажмите кнопку «Запустить блог тестирования API», и вы увидите следующий результат:

На этом я завершаю свой блог о тестировании API. Увидимся в следующем блоге. А пока удачного тестирования 😃 !!

Использованная литература:

я. https://rahulshettyacademy.com/practice-project

II. https://www.udemy.com/course/rest-api-automation-testing-rest-assured/

III. http://makeseleniumeasy.com/

IV. https://www.scaler.com/topics/pojo-class-in-java/