HTML Diff
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>