В мире современных информационных технологий, роль QA Engineer (специалиста по обеспечению качества программного обеспечения) становится все более важной. Однако, чтобы успешно выделяться в этой области и занимать вакансии, необходимо не только освоить основы тестирования, но и овладеть специализированными навыками. Одним из таких ключевых ожиданий со стороны работодателей является знание JSON, REST и типов запросов HTTP. В этой статье мы рассмотрим, почему это важно и какие преимущества это приносит как для специалистов, так и для компаний. JSON (JavaScript Object Notation) - это легкий и удобный формат для обмена данными, который широко используется в веб-разработке. Он представляет собой способ организации данных, который часто применяется для передачи информации между клиентами и серверами. Давайте взглянем на пример JSON: Этот JSON может быть использован для тестирования функциональности оформления заказа в электронном магазине. Тестировщик может проверить, что при оформлении заказа данные о клиенте и заказанных товарах корректно передаются и сохраняются на сервере. Можно также проверить, что расчет общей стоимости заказа выполняется правильно. Причины, по которым тестировщику важно знать о JSON: Чтение и понимание данных: JSON - это способ представления данных в удобном формате. Зная JSON, тестировщик может читать и понимать данные, которые приходят от приложений или отправляются им, что помогает в тестировании. Взаимодействие с веб-Сервисами: Многие веб-сервисы и API используют JSON для обмена данными. Зная JSON, тестировщик может легче взаимодействовать с этими сервисами, отправлять запросы и получать ответы для проверки работоспособности приложений. Поиск проблем: Если что-то идет не так в приложении, знание JSON позволяет тестировщику анализировать данные и находить, где возникли проблемы, чтобы разработчики могли их исправить. Тестирование разных сценариев: JSON часто используется для передачи разных вариантов данных. Тестировщик может использовать разные JSON-данные, чтобы проверить, как приложение реагирует на разные ситуации. REST (Representational State Transfer) - это архитектурный стиль, применяемый при разработке сетевых приложений и веб-сервисов. REST описывает, как должны взаимодействовать различные компоненты системы через HTTP-запросы. Важно знать о REST по следующим причинам: Структурированное взаимодействие: REST предоставляет ясный и организованный способ, как компоненты программной системы могут обмениваться данными. Для тестировщика это означает, что они могут легко предсказать, какие запросы между компонентами будут отправляться и какие ответы они должны получить. Это помогает им более эффективно проверять работу системы. Соблюдение стандартов: REST следует определенным правилам, которые основаны на общепринятых стандартах HTTP. Это делает его понятным и применимым для разработчиков и тестировщиков. Важно, что такой подход также гарантирует, что различные компоненты системы смогут взаимодействовать друг с другом без проблем. Проверка функциональности: Понимание типов HTTP-запросов позволяет тестировщикам более точно проверять, как работает веб-приложение. Например, они могут убедиться, что когда пользователь запрашивает информацию (GET), приложение предоставляет правильные данные, и что когда данные нужно отправить на сервер (POST), приложение корректно их обрабатывает. Это также означает, что они могут удостовериться, что приложение реагирует адекватно на разные сценарии использования, такие как обновление (PUT), удаление (DELETE) и др. Типы запросов HTTP: В веб-разработке существует несколько типов HTTP-запросов, которые определяют, как клиент и сервер должны взаимодействовать. Эти типы запросов включают в себя: GET-запрос: Используется для получения данных с сервера. Это как запрос на чтение данных. Например, когда вы открываете веб-страницу, браузер отправляет GET-запрос, чтобы получить содержимое этой страницы. В тестировании GET-запросов важно проверить, что данные загружаются правильно и отображаются корректно. POST-запрос: Используется для отправки данных на сервер. Это как отправка формы на веб-сайте. QA Engineer должен проверить, что данные, отправляемые через POST-запрос, обрабатываются правильно, и сервер сохраняет их так, как ожидается. PUT-запрос: Используется для обновления существующих данных на сервере. Например, вы можете использовать PUT-запрос, чтобы изменить информацию о пользователе. В тестировании PUT-запросов важно удостовериться, что обновления происходят корректно и без потери данных. DELETE-запрос: Используется для удаления данных на сервере. Если в приложении предусмотрена функция удаления, то QA Engineer должен проверить, что она работает правильно и безопасно. PATCH-запрос: Используется для частичного обновления данных на сервере, изменяя только определенные атрибуты объекта. Это полезно, когда требуется обновить часть информации, не затрагивая остальные данные. Когда вы открываете веб-сайт в браузере, ваш браузер отправляет GET-запрос на сервер, чтобы получить данные, необходимые для отображения страницы. В DevTools вы можете найти этот запрос и посмотреть его параметры и ответ от сервера следующим образом: Откройте инструменты разработчика: В большинстве современных браузеров, таких как Google Chrome, Mozilla Firefox, и других, вы можете открыть DevTools, нажав клавишу F12 или комбинацию клавиш Ctrl+Shift+I (или Cmd+Option+I на macOS). Перейдите во вкладку "Network" (Сеть): В DevTools найдите вкладку "Network" или "Сеть". Эта вкладка отображает все сетевые запросы, отправляемые и получаемые вашим браузером. Обновите страницу: Теперь обновите страницу https://www.wildberries.ru/. При этом ваш браузер отправит GET-запрос на сервер Wildberries, чтобы получить содержимое страницы. Найдите GET-запрос: В разделе "Network" вы увидите список сетевых запросов. Найдите GET-запрос, который был отправлен на сервер Wildberries. Посмотрите параметры запроса и ответа: Здесь вы увидите информацию о запросе, включая URL, заголовки запроса и параметры. Также, перейдя во вкладку "Response" (Ответ), вы увидите данные, которые сервер Wildberries вернул в ответ на этот запрос. Это может быть JSON-данные или другие данные, необходимые для ее отображения.   Анализируйте данные: Теперь вы можете анализировать данные, полученные от сервера. Вы можете проверить статус-код ответа (например, 200 OK), а также посмотреть, какие ресурсы (например, изображения, стили, скрипты) были загружены на страницу.   Краткое объяснение статус-кодов ответа от сервера:1xx (Информационные): Эти коды говорят о том, что сервер получил ваш запрос и что-то о нем сообщает, но пока ничего не ответил. 2xx (Успех): Эти коды говорят, что ваш запрос был успешно выполнен. Все в порядке. 3xx (Перенаправление): Сервер говорит, что нужно сделать еще что-то, чтобы получить ответ. Например, перейти на другую страницу. 4xx (Ошибка клиента): Эти коды означают, что вы что-то сделали неправильно. Например, попытались открыть несуществующую страницу. 5xx (Ошибка сервера): Эти коды означают, что сервер что-то сломал и не может выполнить ваш запрос. И некоторые из наиболее распространенных кодов: 200 OK: Ваш запрос успешно выполнен, и сервер вернул нужные данные. 404 Not Found: Сервер не может найти то, что вы искали. 401 Unauthorized: Для доступа нужна авторизация, но вы не предоставили нужные данные. 403 Forbidden: Доступ запрещен, даже если у вас есть данные для доступа. 500 Internal Server Error: На сервере что-то сломалось, и он не может выполнить ваш запрос. Использование инструментов разработчика в таком контексте позволяет тестировщикам более подробно изучать взаимодействие между клиентом и сервером, что полезно для отладки и анализа производительности веб-сайта. API - как дверь, через которую разные программы могут общаться друг с другом. Это набор правил, который говорит, как одна программа может запрашивать данные или делать что-то с другой программой или сервисом. Тестирование API - это процесс проверки, при котором мы убеждаемся, что программы или сервисы взаимодействуют друг с другом согласно заранее установленным правилам и технической документации. Мы создаем различные сценарии запросов и действий, чтобы убедиться, что API реагирует на них правильно и без ошибок, соблюдая заданные стандарты и требования. Техническая документация служит основой для определения ожидаемого поведения API и обеспечивает точность тестирования. Мы рассмотрим практический пример тестирования API NASA, который предоставляет доступ к разнообразной астрономической информации. Для проведения тестов мы воспользуемся популярным инструментом для тестирования API - Postman. Postman, мощный инструмент для отправки HTTP запросов и анализа ответов. Мы создадим коллекцию запросов и разделы для позитивных и негативных сценариев, чтобы систематизировать наши тесты. API NASA предоставляет доступ к различным астрономическим данным, включая фотографии, информацию о планетах и многое другое. Тестирование помогает убедиться, что мы получаем точные данные, которые нам нужны для наших приложений или исследований. Это также позволяет нам проверить, как API обрабатывает разные виды запросов и какие ошибки может вернуть. Для начала тестирования API NASA, убедитесь, что у вас есть аккаунт на сайте NASA. После регистрации вы получите уникальный API ключ, который будет использоваться для доступа к данным. Мы разработаем несколько тестовых сценариев, чтобы проверить различные аспекты API NASA. Вот некоторые из них: Позитивные тестовые сценарии (Positive Test Scenarios): Запрос информации о картине дня (Astronomy Picture of the Day). Получение данных о Марсе. Получение данных о Земле. Запрос списка фотографий Марса. Запрос картинки астрономического дня на определенную дату. Негативные тестовые сценарии (Negative Test Scenarios): Попытка доступа с недействительным API ключом. Попытка доступа без указания ключа. Запрос с неправильным форматом запроса. Запрос с некорректной датой. Попытка доступа без указания конкретного API endpoint. Создайте коллекцию: В левой части окна Postman найдите раздел "Collections" (Коллекции) и щелкните правой кнопкой мыши по нему. Выберите "Add a New Collection" (Добавить новую коллекцию) и дайте ей название, например, "Тестирование API NASA". Создайте папки: Внутри созданной коллекции создайте две папки: "Позитивные сценарии" и "Негативные сценарии". Эти папки помогут систематизировать ваши тесты. Создайте запросы: Внутри каждой папки (Позитивные и Негативные сценарии) создайте запросы для тестирования. Настройка запросов: Для каждого запроса укажите следующие настройки: Имя запроса: Дайте запросу описательное имя, например, "Запрос на получение картинки астрономического дня". Метод запроса: Выберите метод HTTP (GET, POST и т. д.), соответствующий вашему сценарию.URL: Введите URL-адрес API NASA, который вы хотите протестировать. Например, https://api.nasa.gov/planetary/apod.Параметры запроса: Добавьте параметры запроса, такие как api_key (API ключ), чтобы обеспечить аутентификацию. Отправьте запросы: Нажмите кнопку "Send" (Отправить) рядом с каждым запросом, чтобы отправить их к API NASA. Анализируйте ответы: После отправки каждого запроса, вы увидите ответ от API NASA внизу окна Postman в формате JSON. Анализируйте этот ответ, убеждаясь, что он содержит необходимые данные и не содержит ошибок. Обратите внимание на статус-код ответа, который указывает на успешное выполнение запроса или наличие ошибок. В этой статье мы исследовали основы HTTP запросов, архитектурного стиля REST и формата JSON. Вы научились использовать инструменты разработчика браузера для отправки запросов и анализа ответов от сервера. Более того, мы провели практику тестирования API NASA, используя Postman. Не забывайте, что практика и постоянное обучение - ключи к совершенствованию в этой области. Продолжайте исследовать и улучшать свои навыки, и ваши возможности в мире тестирования программного обеспечения будут бесконечными. P.S. Эта статья получилась достаточно объемной, и если вы дочитали её до конца, то я искренне благодарен за ваше внимание и интерес к теме. Буду рад как положительной обратной связи, так и критике. Ваши комментарии и замечания помогут мне улучшить мои будущие материалы. Надеюсь, что статья была полезной и вдохновила вас на дальнейшее исследование мира тестирования программного обеспечения. Успехов в вашей профессиональной деятельности! #qa #тестирование QA Engineer