<style>.lazy{display:none}</style>Вопросы на собеседовании по API

Вопросы на собеседовании по API

В этой статье мы собрали наиболее часто встречающиеся вопросы на собеседовании по API для специалистов в области QA.

БОЛЬШЕ ВОПРОСОВ С СОБЕСЕДОВАНИЙ В НАШЕМ ТЕЛЕГРАМ КАНАЛЕ QASOBES

Что такое API?

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

REST (Representational State Transfer) и SOAP (Simple Object Access Protocol) – распространенные архитектурные стили для API.

Что такое API

Что такое HTTP и HTTPS?

HTTP (Hypertext Transfer Protocol) расшифровывается как протокол передачи гипертекста, а HTTPS (Hypertext Transfer Protocol Secure) – как безопасный протокол передачи гипертекста.

Другими словами, HTTP и HTTPS – это протоколы, используемые для связи между клиентом (например, веб-браузером) и сервером через Интернет. Они определяют, как передаются данные и как они форматируются во время обмена информацией. Основные различия между HTTP и HTTPS связаны с безопасностью. HTTPS добавляет уровень шифрования, что делает его более безопасным.

Что такое HTTP
Источник: https://developer.mozilla.org/en-US/docs/Web/HTTP/Messages

Как проводить тестирование API?

В тестировании API можно выделить следующие три шага:

  1. Анализ API документации
  2. Отправка запросов
  3. Проверка ответов (проверка кодов состояния и тел ответов, если применимо).

В чем разница между SOAP API и REST API?

SOAP (Simple Object Access Protocol) и REST (Representational State Transfer) – это два разных архитектурных стиля для проектирования веб-сервисов.

– SOAP использует XML в качестве формата сообщений, в то время как REST может использовать различные форматы, но чаще всего применяется JSON.

– SOAP может быть более подходящим для сценариев, где важны строгие стандарты и безопасность, в то время как REST часто предпочитают за его простоту, гибкость и эффективность для веб- и мобильных приложений.

Какие методы API вы знаете?

GET: считывает данные
POST: сохраняет данные
PUT: редактирует данные
DELETE: удаляет данные
– – – – –
PATCH: может использоваться для частичного обновления указанных данных
OPTIONS: запрос информации от эндпоинта
HEAD: получение только заголовков без тела ответа
CONNECT: устанавливает сетевое соединение с ресурсом, обычно используется для туннелирования SSL/TLS
TRACE: веб-сервер будет отвечать на запросы, использующие метод TRACE, повторяя в своем ответе точный запрос, который был получен в целях диагностики.

В чем разница между PUT и PATCH?

PUT означает замену всего ресурса заданными данными, а PATCH – замену только указанных полей.

Какие коды состояния вы знаете?

1xx – Информационный ответ. Информационные ответы используются для указания на то, что задание находится в процессе выполнения.
2xx – Успех.
3xx – Перенаправление.
4xx – Ошибка клиента.
5xx – Ошибка сервера. Клиентом был сделан корректный запрос, но сервер не смог выполнить задачу.

Например:
200 – OK
201 – Создано
404 – Не найдено
403 – Запрещено.

Как работает аутентификация в API?

Основная аутентификация:  Клиент включает имя пользователя и пароль в заголовки запроса с помощью заголовка “Authorization”, при этом учетные данные кодируются в base64.

Аутентификация на основе токенов:  Пользователи аутентифицируются на сервере для получения токена. Затем токен включается в заголовки запросов для последующих вызовов API. Например, токен Bearer и OAuth (открытая авторизация).

Аутентификация на основе сертификата:  Клиенты предъявляют цифровой сертификат в процессе аутентификации. Сервер проверяет сертификат, чтобы удостовериться в подлинности клиента.

Что такое параметр запроса в API?

Параметры запроса – это пары ключ-значение, которые мы можем включить в наш запрос, чтобы передать данные серверу. Они добавляются в конец URL после символа ? и разделяются &.

Например:
https://grademe.com/student?id=123
https://grademe.com/student?id=123&status=active
https://www.google.com/search?q=cat.

В чем разница между параметром path и параметром запроса?

Параметр path является частью самого URL.

Например:
https://grademe.com/student/123.

Параметры запроса – это пары ключ-значение, которые мы можем включить в наш запрос, чтобы передать данные серверу. Они добавляются в конец URL после символа ? и разделяются &.

Например:
https://grademe.com/student?id=123
https://grademe.com/student?id=123&status=active

Что такое тело запроса?

Тело запроса, также известное как полезная нагрузка, – это часть запроса API, в которой данные отправляются от клиента к серверу. Распространенными форматами являются JSON и XML.

Как работает библиотека RestAssured? Приведите пример.

RestAssured – это популярная Java-библиотека, предназначенная для упрощения тестирования REST API. Она предоставляет основанный на поведении стиль (behavioral-driven style) для построения понятных тестов API. Один из примеров, который можно привести:

package api;

import io.restassured.http.ContentType;
import io.restassured.http.Header;
import io.restassured.response.Response;
import org.junit.Assert;
import org.junit.Test;

import static io.restassured.RestAssured.given;

public class RestAssuredTest {
    @Test
    public void testGetStudent() {
        Header header = new Header("Authorization", "Bearer asumeValidToken");
        Response response = given()
                .accept(ContentType.JSON)
                .header(header)
                .when()
                .get("http://grademe.us-east-1.elasticbeanstalk.com/student/get");
        Assert.assertEquals(200, response.getStatusCode());
        Assert.assertEquals(6688, (int) response.body().jsonPath().get("id"));
        System.out.println(response.asString());
    }
}

Перевод статьи «Top API Interview Questions for SDET».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *