День 3

REST API Testing Bootcamp

Ввод в инструмент cURL и его возможностей.
Основные команды и параметры cURL для взаимодействия с API REST.
Практические упражнения с использованием cURL для создания запросов, отправки данных и обработки ответов.

Ввод в инструмент cURL и его возможностей

cURL (полное название – “Client for URLs” или “cURL URL Request Library”) – это мощный инструмент командной строки, предназначенный для работы с URL- адресами. Он позволяет выполнять разнообразные операции, связанные с сетевыми запросами, включая отправку и получение данных через различные протоколы, такие как HTTP, HTTPS, FTP, FTPS, SCP, SFTP, LDAP и другие.

Отправка HTTP-запросов

Можна использовать cURL для отправки HTTP-запросов на сервер, что позволяет взаимодействовать с веб-ресурсами. Например, вы можете отправить GET- или POST-запросы для получения или отправки данных на веб-сервер.

Переадресация

cURL поддерживает автоматическую обработку переадресации HTTP-запросов.

Загрузка и скачивание файлов

cURL позволяет загружать файлы с веб-ресурсов и сохранять их на вашем компьютере.

Отправка файлов

cURL позволяет отправлять файлы на сервер по протоколам FTP, FTPS, SCP, SFTP и другим.

Заголовки

Вы можете просматривать и изменять HTTP-заголовки запросов и ответов.

Ограничение скорости

Вы можете ограничить скорость передачи данных при загрузке или скачивании файлов.

Аутентификация

Вы можете указать учетные данные для HTTP-авторизации (Basic, Digest, NTLM), а также для аутентификации на FTP-серверах.

Опции прокси

cURL поддерживает работу через HTTP-прокси-серверы.

Интеграции с различными сервисами (Integrations)

Поддержка многочисленных протоколов: cURL работает с большим количеством сетевых протоколов, что делает его универсальным инструментом для сетевой работы.

Для чего QA использует cURL?

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

Важно отметить, что curl может быть также использован для демонстрации конкретных проблем и создания баг-репортов. Путем предоставления разработчикам информации о том, какие запросы отправляются и какие ответы ожидаются, мы можем улучшить процесс отладки и устранения ошибок. Этот инструмент помогает нам обеспечивать качество нашего программного обеспечения и улучшать сотрудничество между командами.”

Тестирование API

QA-инженеры могут использовать curl, чтобы отправлять HTTP-запросы к API и проверять, какие данные возвращаются в ответ. Они могут также проверять статус коды ответов, чтобы удостовериться, что API работает правильно.

Автоматизация тестов

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

Тестирование веб-страниц

QA-инженеры могут использовать curl для получения содержимого веб-страницы. Это может быть полезно для проверки, что страницы возвращают правильные данные или для анализа HTML-кода страницы.

Проверка доступности

curl также может использоваться для проверки доступности веб-серверов и служб. QA-инженеры могут отправлять HTTP-запросы к серверам и анализировать ответы, чтобы убедиться, что сервисы доступны и работают без сбоев.

Примеры использования cURL

				
					//Установка заголовков (headers):
curl -H "Authorization: Bearer your_token" -H "Content-Type: application/json" https://api.example.com/resource
				
			
				
					//Аутентификация (Basic Auth):
curl -u username:password https://api.example.com/resource

				
			
				
					//Передача данных в формате JSON:
curl -X POST -H "Content-Type: application/json" -d '{"key": "value"}' https://api.example.com/resource
				
			
				
					//Отправка GET-запроса:
curl https://restful-booker.herokuapp.com/booking
				
			
				
					//Отправка POST-запроса с данными:
curl -X POST -d "param1=value1&param2=value2" https://example.com

				
			
				
					//Загрузка файла:
curl -O https://example.com/file.txt


				
			
				
					//Загрузка файла с ограничением скорости:
curl --limit-rate 100K -O https://example.com/largefile.zip



				
			
				
					//Загрузка файла через FTP:
curl -u username:password -O ftp://ftp.example.com/file.zip



				
			

//Запрос с параметрами (query parameters):
curl “https://api.example.com/resource?param1=value1&param2=value2”

//Посылка файла (например, для загрузки файла на сервер):
curl -X POST -F “file=@localfile.txt” https://api.example.com/upload

//Ограничение скорости передачи данных:
curl –limit-rate 100K -X GET https://api.example.com/resource

//Ожидание определенного HTTP-статуса (например, 201 Created):
curl -X POST -H “Content-Type: application/json” -d ‘{“key”: “value”}’ –write-out ‘%{http_code}’ https://api.example.com/resource

//Установка пользовательского User-Agent:
curl -A “MyUserAgent” https://api.example.com/resource//Определение HTTP-заголовков ответа:
curl -I https://api.example.com/resource

//Установка таймаута:
curl –connect-timeout 10 -m 60 https://api.example.com/resource

//Заголовок с куки (Cookie):
curl -H “Cookie: session=your_session_id” https://api.example.com/resource

Практические упражнения

с использованием cURL для создания запросов, отправки данных и обработки ответов.

Создать запрос через cURL, получивший токен

Для создания запроса в cURLhttps://restful-booker.herokuapp.com/apidoc/index.html#api-Auth-CreateToken, вам следует использовать следующую команду:

curl -X POST -H “Content-Type: application/json” -d ‘{“username”: “admin”, “password”: “password123”}’ https://restful-booker.herokuapp.com/auth

Эта команда отправит запрос на сервер с указанным именем пользователя (“admin”) и паролем (“password123”). Если учетные данные верны, вы получите токен доступа в ответе.

Теперь давайте рассмотрим, как выполнить эту команду на разных операционных системах:

Windows (через Git Bash):

Скачайте Git (https://git-scm.com/downloads) Откройте Git Bash.

Вставьте команду cURL, заменив ваше_имя_пользователя и ваш_пароль на ваши реальные учетные данные, и нажмите Enter.

Linux и macOS:

Откройте терминал.

Вставьте команду cURL, заменив ваше_имя_пользователя и ваш_пароль на ваши реальные учетные данные, и нажмите Enter.

После выполнения команды cURL вы получите ответ с токеном доступа.

Обратите внимание, что для успешного выполнения этой команды вам потребуется установить cURL, если он не установлен. В большинстве дистрибутивов Linux и macOS cURL устанавливается по умолчанию. В Windows вы можете использовать Git Bash, который поставляется с Git, чтобы выполнять команды cURL.

Важно!!! Сервер имеет ограничение на количество запросов, поэтому возможен код 403 Forbidden.

Создания запроса через cURL, который создает бронирование

Для создания запроса cURL, который создает бронирование (booking) https://restful-booker.herokuapp.com/apidoc/index.html#api-Booking-CreateBooking, вы можете использовать следующую команду:

curl -X POST -H “Content-Type: application/json” -d ‘{
“firstname”: “Name”,
“lastname”: “Lastname”,
“totalprice”: 100,
“depositpaid”: true,
“bookingdates”: {
“checkin”: “2023-11-01”,
“checkout”: “2023-11-05”
},
“additionalneeds”: “Addition information”
}’ https://restful-booker.herokuapp.com/booking

В этой команде:

  • -X POST указывает, что это POST-запрос.

  • -H "Content-Type: application/json" устанавливает заголовок Content-Type в application/json, что указывает на то, что данные отправляются в формате JSON.

  • -d '{ ... }' отправляет JSON-данные, описывающие бронирование, в теле запроса. Замените данные в фигурных скобках на свои собственные значения.

  • https://restful-booker.herokuapp.com/booking – URL для создания бронирования.

Эта команда отправит запрос на сервер, и если данные корректны, API создаст бронирование с указанными данными.

Важно!!! Сервер имеет ограничение на количество запросов, поэтому возможен код 403 Forbidden.

Создания запроса через cURL, который редактирует бронирование

Для создания запроса cURL, который изменяет (редактирует) бронирование на https://restful-booker.herokuapp.com/apidoc/index.html#api-Booking-UpdateBooking, вы можете использовать следующую команду. Эта команда выполняет PUT-запрос с обновленными данными для бронирования:

curl –location –request PUT ‘https://restful-booker.herokuapp.com/booking/1’ \
–header ‘Cookie: token=9387edc91b259e5’ \
–header ‘Content-Type: application/json’ \
–data ‘{
“firstname” : “James”,
“lastname” : “Brown”,
“totalprice” : 111,
“depositpaid” : true,
“bookingdates” : {
“checkin” : “2018-01-01”,
“checkout” : “2019-01-01”
},
“additionalneeds” : “Breakfast”
}’

token нужно перегенерить, так как он имеет срок годности.

Важно!!! Сервер имеет ограничение на количество запросов, поэтому возможен код 403 Forbidden.

Больше про cURL?)

Чтобы узнать больше о лекциях, материалах и тестах, перейдите на страницу нашего основного курса “Тестирование REST API”.

Создание запроса через cURL для получения списка бронирований

Для создания запроса cURL, который получает список бронирований с API https://restful-booker.herokuapp.com/apidoc/index.html#api-Booking-GetBookings, вы можете использовать следующую команду:

curl -X GET https://restful-booker.herokuapp.com/booking

В данной команде:

  • -X GET указывает, что это GET-запрос.
  • https://restful-booker.herokuapp.com/booking – URL для получения списка бронирований.

Просто выполните эту команду в командной строке (Windows) или в терминале (Linux и macOS), и она вернет список бронирований с сервера.

Важно!!! Сервер имеет ограничение на количество запросов, поэтому возможен код 403 Forbidden.

Создание запроса через cURL для получения выбранного ID бронирования

Для создания запроса через cURL и получения выбранного ID бронирования на API https://restful-booker.herokuapp.com/apidoc/index.html#api-Booking-GetBookings, вы можете выполнить следующую команду:

curl https://restful-booker.herokuapp.com/booking/{booking_id}

Здесь {booking_id} – это идентификатор бронирования, который вы хотите получить. Замените его на конкретное значение, которое вам интересно.

Пример запроса для получения информации о бронировании с идентификатором 123:

curl https://restful-booker.herokuapp.com/booking/123

Эта команда отправит GET-запрос на сервер для получения информации о бронировании с указанным идентификатором. В ответе вы получите данные о бронировании с выбранным ID.

Важно!!! Сервер имеет ограничение на количество запросов, поэтому возможен код 403 Forbidden.

Сделать и отправить
  1. Ознакомиться с документацией в части cURL https://restful-booker.herokuapp.com/apidoc/index.html
  2. Создайте несколько запросов cURL (позитивных и негативных), получивший токен: Auth-Create token. 
  3. Создайте несколько запросов cURL (позитивных и негативных), создающий бронирование: Booking-Create booking.
  4. Создайте несколько запросов cURL (позитивных и негативных), редактирующий бронирование, отредактируйте его согласно документации: Booking-Update booking. 
  5. Создайте несколько запросов cURL (позитивных и негативных), который частично редактирует бронирование, отредактируйте его согласно  документации: Booking-PartialUpdate booking. 
  6. Создайте несколько запросов cURL (позитивных и негативных), удаляющий бронирование: Booking-Delete booking. 

Вернуться обратно

Поддержка и вопросы

Если вам требуется какая-либо поддержка или у вас возникли дополнительные вопросы, не стесняйтесь связаться с нами – мы готовы быстро оказать вам помощь.

Через чат-бот













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

    Курсы

    Публичная оферта. Авторское право © 2024 Школа подготовки тестировщиков