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

Далее вы узнаете про:

  • Основы тестирования API

  • Rest API

  • Какой запрос быстрее?

API

API (Application Programming Interface) - это набор инструкций и протоколов, которые позволяют программам взаимодействовать между собой. API используются для обмена данными между разными приложениями, веб-сервисами и серверами.

Ниже представлена инструкция, которая поможет вам начать тестирование API:

  1. Ознакомьтесь с документацией API: для каждого API обычно есть документация, которая описывает доступные методы и параметры, а также примеры запросов и ответов. Эта документация поможет вам понять, как использовать API и какие данные можно получить.

  2. Используйте инструменты для тестирования API: существует множество инструментов для тестирования API, таких как Postman, SoapUI, Swagger и др. Они позволяют отправлять запросы к API и просматривать ответы. Использование этих инструментов поможет вам быстро протестировать API и проверить его работоспособность.

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

  4. Проверка форматов данных: API может возвращать данные в различных форматах, таких как JSON, XML или CSV. При тестировании API необходимо проверить, что данные возвращаются в корректном формате и соответствуют ожидаемой структуре.

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

  6. Автоматизация тестирования API: автоматизация тестирования API позволяет быстро и эффективно тестировать API, особенно при большом количестве методов и параметров. Для автоматизации тестирования API можно использовать языки программирования, такие как Python, Java или JavaScript, или инструменты автоматизации тестирования, такие как Postman или SoapUI.

REST API

REST API (Representational State Transfer Application Programming Interface) - это стандарт архитектуры для создания web-сервисов, которые могут быть вызваны клиентами с использованием протокола HTTP. RESTful API использует HTTP-методы (GET, POST, PUT, DELETE) для работы с ресурсами и предоставляет данные в формате JSON или XML.

Основные принципы REST API:

  1. Каждый ресурс имеет уникальный идентификатор URI (Uniform Resource Identifier).

  2. Клиент отправляет запросы на сервер с использованием методов HTTP (GET, POST, PUT, DELETE), чтобы получить или изменить ресурс.

  3. Сервер возвращает ответы в формате JSON или XML, в зависимости от запроса.

  4. REST API не хранит состояние сеанса на сервере между запросами. Каждый запрос является отдельным запросом к серверу.

  5. REST API использует кэширование, чтобы уменьшить нагрузку на сервер.

Тестирование REST API является важной частью тестирования веб-приложений и может быть выполнено с использованием различных инструментов, таких как Postman, SoapUI, JMeter и других.

Примеры запросов:

  1. GET запрос. Используются для получения информации от сервера. Например, запрос к API, чтобы получить список всех пользователей в формате JSON: GET https://api.example.com/users

  2. POST запросы используются для отправки данных на сервер. Например, запрос к API, чтобы создать нового пользователя: POST https://api.example.com/users

    {

        "name": "John Doe",

        "email": "john.doe@example.com",

        "password": "password123"

    }

  3. PUT запросы используются для обновления данных на сервере. Например, запрос к API, чтобы обновить информацию о пользователе с идентификатором 123: PUT https://api.example.com/users/123

    {

        "name": "Jane Doe",

        "email": "jane.doe@example.com",

        "password": "newpassword123"

    }

  4. DELETE запросы используются для удаления данных на сервере. Например, запрос к API, чтобы удалить пользователя с идентификатором 123: DELETE https://api.example.com/users/123

  5. Query параметры позволяют передавать дополнительные параметры в запросе. Например, запрос к API, чтобы получить список пользователей, отсортированных по имени в алфавитном порядке: GET https://api.example.com/users?sort=name

  6. Path параметры используются для передачи переменных в URL. Например, запрос к API, чтобы получить информацию о пользователе с идентификатором 123: GET https://api.example.com/users/123

  7. Header параметры позволяют передавать дополнительные параметры в заголовке запроса. Например, запрос к API, чтобы передать авторизационный токен: GET https://api.example.com/users

    Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Какой запрос быстрее?

GET-запросы обычно работают быстрее, чем запросы POST, PUT и DELETE, потому что они не требуют передачи данных в теле запроса.

Между PUT и PATCH запросами скорость зависит от того, как реализована логика сервера. В целом, PATCH-запросы могут быть быстрее, так как они могут передавать только измененные поля объекта.

Между PATCH и DELETE запросами скорость также зависит от логики сервера и конкретной ситуации. Оба запроса могут работать быстро, если используются оптимальные методы обработки данных на сервере.

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

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

Василий Волгин

Full stack тестировщик

Комментарии (8)


  1. teror4uks
    13.05.2023 22:23
    +6

    Хм какая то "хромая" аналитика какой сферический запрос в вакууме будет быстрее делая заключение есть тело в запрсе или нет. Вообще то http это текстовый протокол и стандартом не запрещено передавать тело запроса при использовании get метода, апи эластика так делает.


    1. TyVik
      13.05.2023 22:23
      +2

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


    1. VasiliiV Автор
      13.05.2023 22:23

      Спасибо за ваш комментарии. Я учту ваше мнение и внесу правки.


    1. Ilusha
      13.05.2023 22:23
      -1

      Стандартом не запрещено, но сложившаяся практика не рекомендует. Например axios не разрешает get с body.

      В целом, какой вообще смысл тогда разделять get и post?

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


  1. dopusteam
    13.05.2023 22:23
    +2

    Зачем сравнивать скорость GET запроса и POST, если это, в принципе, разные запросы?

    Это не говоря про полное непонимание чего бы то ни было у автора:

    Ниже представлены основы API, которые помогут вам начать тестирование API:

    Ознакомьтесь с документацией API и Проверка форматов данных - это не основы API. Это к вопросу про качество статьи.

    Клиент отправляет запросы на сервер с использованием методов HTTP (GET, POST, PUT, DELETE), чтобы получить или изменить ресурс.

    Это не специфика REST, это HTTP протокол.

    Сервер возвращает ответы в формате JSON или XML

    REST прям ограничивает нас этими форматами?

    Ну и аналитика сильная, конечно, в конце статьи, снимаю шляпу


    1. VasiliiV Автор
      13.05.2023 22:23
      -2

      Спасибо за ваш комментарии. Я учту ваше мнение и внесу правки.


  1. T1murgar88
    13.05.2023 22:23
    +4

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


    1. VasiliiV Автор
      13.05.2023 22:23
      -2

      Спасибо за ваш комментарии. Обязательно его учту.