0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Тестирование API - интеграционное тестирование для выявления ошибок взаимодействия между модулями системы или между системами. Для его проведения тестировщики часто прибегают к специальным инструментам с функциями отправки входных данных в запросе и проверки точности выходных данных.</p>
1
<p>Тестирование API - интеграционное тестирование для выявления ошибок взаимодействия между модулями системы или между системами. Для его проведения тестировщики часто прибегают к специальным инструментам с функциями отправки входных данных в запросе и проверки точности выходных данных.</p>
2
<h2>Содержание</h2>
2
<h2>Содержание</h2>
3
<ul><li><a>Что входит в тестирование API</a></li>
3
<ul><li><a>Что входит в тестирование API</a></li>
4
<li><a>Принципы тестирования API</a></li>
4
<li><a>Принципы тестирования API</a></li>
5
<li><a>Инструменты тестирования API</a></li>
5
<li><a>Инструменты тестирования API</a></li>
6
<li><a>Как тестировать API</a></li>
6
<li><a>Как тестировать API</a></li>
7
</ul><h2>Что входит в тестирование API</h2>
7
</ul><h2>Что входит в тестирование API</h2>
8
<p>Для каждого запроса API необходимо проверять следующие пункты:</p>
8
<p>Для каждого запроса API необходимо проверять следующие пункты:</p>
9
<ol><li>Правильность кода состояния HTTP через возврат соответствующего ответа на любое действие. Это может быть ответ 201 Created в случае создания ресурса или 403 Forbidden для отправки запрещенных запросов.</li>
9
<ol><li>Правильность кода состояния HTTP через возврат соответствующего ответа на любое действие. Это может быть ответ 201 Created в случае создания ресурса или 403 Forbidden для отправки запрещенных запросов.</li>
10
<li>Корректность тела JSON, типов, значений и имен полей ответа, включая ответы на ошибочные запросы.</li>
10
<li>Корректность тела JSON, типов, значений и имен полей ответа, включая ответы на ошибочные запросы.</li>
11
<li>Оценка заголовков ответа HTTP-сервера. Они влияют на безопасность и производительность системы.</li>
11
<li>Оценка заголовков ответа HTTP-сервера. Они влияют на безопасность и производительность системы.</li>
12
<li>Правильность состояния приложения при ручном тестировании и/или самостоятельной проверке пользовательского или иного интерфейса.</li>
12
<li>Правильность состояния приложения при ручном тестировании и/или самостоятельной проверке пользовательского или иного интерфейса.</li>
13
<li>Базовую работоспособность и время завершения операции. Если действие занимает слишком много времени, тест считается не пройденным.</li>
13
<li>Базовую работоспособность и время завершения операции. Если действие занимает слишком много времени, тест считается не пройденным.</li>
14
</ol><h2>Принципы тестирования API</h2>
14
</ol><h2>Принципы тестирования API</h2>
15
<p>Тестирование API базируется на следующих принципах:</p>
15
<p>Тестирование API базируется на следующих принципах:</p>
16
<ul><li>Использование разнообразных данных. В проверке могут участвовать некорректные данные, граничные значения и данные разного типа для исследования всех возможных сценариев.</li>
16
<ul><li>Использование разнообразных данных. В проверке могут участвовать некорректные данные, граничные значения и данные разного типа для исследования всех возможных сценариев.</li>
17
<li>Автоматизация тестирования или тех его частей, где это возможно - обработка ошибок или тестирование отдельных функций.</li>
17
<li>Автоматизация тестирования или тех его частей, где это возможно - обработка ошибок или тестирование отдельных функций.</li>
18
<li>Непрерывность тестирования и интеграция в него процессов CI/CD при их наличии, для регулярной оценки работоспособности системы и быстрого получения обратной связи о возникших проблемах.</li>
18
<li>Непрерывность тестирования и интеграция в него процессов CI/CD при их наличии, для регулярной оценки работоспособности системы и быстрого получения обратной связи о возникших проблемах.</li>
19
<li>Безопасность и проверка уязвимости системы и механизмов аутентификации для лучшей защиты от потенциальных угроз и атак.</li>
19
<li>Безопасность и проверка уязвимости системы и механизмов аутентификации для лучшей защиты от потенциальных угроз и атак.</li>
20
</ul><h2>Инструменты тестирования API</h2>
20
</ul><h2>Инструменты тестирования API</h2>
21
<p>Чаще всего тестировщики пользуются этими инструментами:</p>
21
<p>Чаще всего тестировщики пользуются этими инструментами:</p>
22
<ul><li><a>Postman</a>для создания, HTTP-запросов и автоматизированных тестов, их отправки и получения ответов от API.</li>
22
<ul><li><a>Postman</a>для создания, HTTP-запросов и автоматизированных тестов, их отправки и получения ответов от API.</li>
23
<li><a>SoapUI</a>для тестирования и отладки SOAP и REST API.</li>
23
<li><a>SoapUI</a>для тестирования и отладки SOAP и REST API.</li>
24
<li><a>JMeter</a>для проведения нагрузочного тестирования API, его производительности и масштабируемости.</li>
24
<li><a>JMeter</a>для проведения нагрузочного тестирования API, его производительности и масштабируемости.</li>
25
<li><a>REST-assured</a>для тестирования REST API с использованием DSL-синтаксиса.</li>
25
<li><a>REST-assured</a>для тестирования REST API с использованием DSL-синтаксиса.</li>
26
</ul><h2>Как тестировать API</h2>
26
</ul><h2>Как тестировать API</h2>
27
<p>Рассмотрим реальный пример тестирования RESTful API для системы управления постами со следующими методами:</p>
27
<p>Рассмотрим реальный пример тестирования RESTful API для системы управления постами со следующими методами:</p>
28
<ul><li>GET /posts - получить список всех постов;</li>
28
<ul><li>GET /posts - получить список всех постов;</li>
29
<li>GET /posts/{id} - получить данные о конкретном посте;</li>
29
<li>GET /posts/{id} - получить данные о конкретном посте;</li>
30
<li>POST /posts - создать новый пост;</li>
30
<li>POST /posts - создать новый пост;</li>
31
<li>PUT /posts/{id} - обновить данные о посте;</li>
31
<li>PUT /posts/{id} - обновить данные о посте;</li>
32
<li>DELETE /posts/{id} - удалить пост.</li>
32
<li>DELETE /posts/{id} - удалить пост.</li>
33
</ul><p>Тестирование API можно провести в несколько этапов.</p>
33
</ul><p>Тестирование API можно провести в несколько этапов.</p>
34
<h3>1. Определение требований</h3>
34
<h3>1. Определение требований</h3>
35
<p>Документация API содержит информацию о структуре поста и его полях, процессе его создания и обновления, кодах состояния и структурой ответов.</p>
35
<p>Документация API содержит информацию о структуре поста и его полях, процессе его создания и обновления, кодах состояния и структурой ответов.</p>
36
<h3>2. Разработка тестовых случаев</h3>
36
<h3>2. Разработка тестовых случаев</h3>
37
<ul><li>GET /posts для тестирования случая отправки GET-запроса на /posts для получения списка постов в ответе.</li>
37
<ul><li>GET /posts для тестирования случая отправки GET-запроса на /posts для получения списка постов в ответе.</li>
38
<li>GET /posts/{id} для тестирования получения поста по его идентификатору. Отправка GET-запроса на '/posts/{id}' для проверки корректности идентификатора и возвращаемой информации о посте.</li>
38
<li>GET /posts/{id} для тестирования получения поста по его идентификатору. Отправка GET-запроса на '/posts/{id}' для проверки корректности идентификатора и возвращаемой информации о посте.</li>
39
<li>POST /posts для отправки POST-запроса на /posts с тестовыми данными для создания нового поста и получения правильного кода состояния (201 Created), если пост создан успешно.</li>
39
<li>POST /posts для отправки POST-запроса на /posts с тестовыми данными для создания нового поста и получения правильного кода состояния (201 Created), если пост создан успешно.</li>
40
<li>PUT /posts/{id} для отправки PUT-запроса на /posts/{id} с обновленными данными. В случае успешного обновления поста API вернет правильный код состояния - 200 OK.</li>
40
<li>PUT /posts/{id} для отправки PUT-запроса на /posts/{id} с обновленными данными. В случае успешного обновления поста API вернет правильный код состояния - 200 OK.</li>
41
</ul><h3>3. Настройка окружения</h3>
41
</ul><h3>3. Настройка окружения</h3>
42
<p>Выбор инструмента тестирования API в зависимости от задач проверки и его установка.</p>
42
<p>Выбор инструмента тестирования API в зависимости от задач проверки и его установка.</p>
43
<h3>4. Отправка запросов</h3>
43
<h3>4. Отправка запросов</h3>
44
<p>Передача запросов из тестовых случаев к API с помощью выбранного инструмента.</p>
44
<p>Передача запросов из тестовых случаев к API с помощью выбранного инструмента.</p>
45
<h3>5. Проверка ответов</h3>
45
<h3>5. Проверка ответов</h3>
46
<p>Сравнение ответов API с ожидаемыми результатами, указанными в тестовых случаях. Тестировщики оценивают корректность возвращаемого кода состояния, соответствие структуры ответа ожидаемой модели и правильность значения полей.</p>
46
<p>Сравнение ответов API с ожидаемыми результатами, указанными в тестовых случаях. Тестировщики оценивают корректность возвращаемого кода состояния, соответствие структуры ответа ожидаемой модели и правильность значения полей.</p>
47
<h3>6. Работа над ошибками</h3>
47
<h3>6. Работа над ошибками</h3>
48
<p>Оценка процесса обработки ошибок API при отправке некорректных запросов. Специалистам необходимо убедиться, что API возвращает соответствующие коды и описание ошибок.</p>
48
<p>Оценка процесса обработки ошибок API при отправке некорректных запросов. Специалистам необходимо убедиться, что API возвращает соответствующие коды и описание ошибок.</p>
49
<h3>7. Генерация отчетов</h3>
49
<h3>7. Генерация отчетов</h3>
50
<p>Отчет о результатах проверки создается после каждого теста. В отчет входит информация об успешных и неудачных тестах, ошибках, кодах состояния, ответах и другие данные.</p>
50
<p>Отчет о результатах проверки создается после каждого теста. В отчет входит информация об успешных и неудачных тестах, ошибках, кодах состояния, ответах и другие данные.</p>
51
<h3>8. Регулярное проведение повторного тестирования</h3>
51
<h3>8. Регулярное проведение повторного тестирования</h3>
52
<p>Проверка необходима после внесения изменений в код API и/или его окружение, при обнаружении ошибок и для подтверждения работоспособности API.</p>
52
<p>Проверка необходима после внесения изменений в код API и/или его окружение, при обнаружении ошибок и для подтверждения работоспособности API.</p>
53
<p>На курсе<a>"Инженер по тестированию"</a>вы научитесь работать с API и проводить его тестирование с использованием соответствующих инструментов.</p>
53
<p>На курсе<a>"Инженер по тестированию"</a>вы научитесь работать с API и проводить его тестирование с использованием соответствующих инструментов.</p>