📚 ProTestingInfo 🔷 Канал по тестированию 📚 – Telegram
📚 ProTestingInfo 🔷 Канал по тестированию 📚
14.1K subscribers
1.31K photos
200 videos
232 files
1.18K links
📌Информация для начинающих и для коллег в области QA, для личного закрепления знаний.
📌Теория, тесты, практика
Ментор-Консультация - 5тр/час
Курс
@info_course_protestinginfo
https://protestinginfo.ru
Вопросы @nadin_qa
ИП
РКН: https://clck.ru/3FWD9v
Download Telegram
Повторение: какие задания могут быть на API?
Еще одно практическое задание

Коллекция в Swagger, с которой предстоит работать: https://petstore.swagger.io/

🔳Предусловия:
▪️Base URL: https://petstore.swagger.io/
▪️Request URL: https://petstore.swagger.io/v2/pet
▪️Headers: 'Content-Type': 'application/json'
▪️В теле запроса указывать статус питомца: "status": "available"

📝 Задание: создать коллекцию в Postman
В коллекции должны быть следующие запросы:

1. Создание нового питомца (POST /pet)
Заполнить все ключи тела запроса своими примерами значений.
На вкладке Scripts прописать скрипт, который:
- получает из тела ответа id созданного питомца;
- сохраняет id в переменную коллекции.
Совет: в Postman может возникать некорректное поведение при сохранении значения через сниппет pm.collectionVariables.set(...). Чтобы избежать проблем, можно задать id вручную и проверить.

2. Получение и проверка значения tags питомца
Написать скрипт, который:
- извлекает name из tags в теле ответа;
- сохраняет его в переменную коллекции.
Добавить проверку с использованием pm.test, чтобы убедиться, название tags из тела запроса равно названию tags из тела ответа сервера.
📖 Примеры скриптов — см. пост: https://news.1rj.ru/str/info_course_protestinginfo/267

3. Получение информации о питомце по id (GET /pet/{petId})
Использовать переменную id, сохранённую в коллекции ранее.
На вкладке Scripts прописать скрипт, который отправит следующий запрос:
Обновление данных питомца (POST /pet/{petId})
- Изменить значение поля status на "sold"
- Использовать pm.sendRequest.

4. Негативные проверки
Создать отдельные запросы, эмулирующие ошибки:
- Невалидный id при создании питомца
Ожидаемый ответ: 400 Bad Request (bad input)
- Несуществующий id при получении питомца
Ожидаемый ответ: 404 Not Found (Pet not found)
- Неподдерживаемый формат данных при создании питомца
Ожидаемый ответ: 415 Unsupported Media Type
- Серверная ошибка при создании питомца
Добиться, чтобы сервер вернул ошибку 500, например, такую:
{
"code": 500,
"type": "unknown",
"message": "something bad happened"
}

Подумать, какие данные могут вызвать такую ошибку, и протестироватьразные варианты.

📤 Экспортировать коллекцию:
Postman → Export → Export Collection и отправить её на проверку @nadin_qa.

Скоро пришлю ещё одно задание на API — уже из другой документации.
Анонс: в августе планирую провести вебинар — тема пока в выборе. Это может быть либо тестирование интеграций при оплате, либо работа с сертификатами в Postman. Сейчас подбираю подходящие сервисы с возможностью бесплатного использования..
Please open Telegram to view this post
VIEW IN TELEGRAM
164124🆒32
И вот подошёл к концу курс по тестированию бэкенда от Надежды Дудник.
Очень сильный по наполнению, курс даёт возможность в полной мере прочувствовать специфику тестирования тех внутренних процессов, что скрыты от пользователя "под капотом". Ключевой момент, который стоит подчеркнуть, это практическая направленность курса.
В течение курса, с самого его начала, вы будете постоянно на практике взаимодействовать с серверной частью приложения, посредством Postman, DBeaver, Redis, Swagger. Структурируете свои знания в навыках составления коллекции Postman, в проверке работы API на позитивные и негативные сценарии, в анализе работы API с данными в базах PostgreSQL, с кэшированными данными Redis, с логами в БД ClickHouse. Также в курсе учитываются различные нюансы, связанные с кэшированием, согласованностью данных между сервисами или анализом логов, которые часто встречаются на реальных проектах, предлагает варианты их разрешения. В течение курса я прокачала свои навыки составления отчётов по дефектам, тестирования авторизации и регистрации через API, анализа и интерпретации HTTP-статус кодов.

Особо ценю постоянную возможность взаимодействия с автором курса и оперативное получение обратной связи.
Крайне рекомендую данный курс! Рекомендую всем, кто хочет системно освоить backend-тестирование!

Выражаю огромную благодарность Надежде Дудник за такой замечательный курс!
508💘5❤‍🔥2
Всем привет. С 5 августа (или чуть попозже с 20 августа) планирую запустить третий поток по тестированию бэкенда, знакомлю с отзывами:
Читать еще отзывы

Количество мест ограничено.
Новые тарифы и новые доступы, с которыми я ознакомлю позже ближе к запуску, уже на сайте.
У кого есть вопросы уже сейчас, можно написать @nadin_qa
👍102🆒1
Привет всем!
В середине августа планирую провести мощнейший вебинар 🤔 по токенам (авторизация, аутентификация) с уклоном на практику.
Чтобы подготовиться к нему и быть в курсе, ожидайте серию тестов по этой теме — они будут публиковаться на этом канале @protestinginfo до начала вебинара.
Анонс с деталями представлю в начале августа.
Вебинар приурочен к старту новых потоков по тестированию бэкенда и подготовке к собеседованиям.
💻На практике мы разберём различные способы авторизации на разных сервисах — от базовой аутентификации до OAuth 2.0. 💻Также, возможно, затрону тему применения сертификатов при отправке запросов, которые активно используются у меня на работе в финтехе.
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥6514❤‍🔥6👍43🆒1
Изучаем и закрепляем знания перед тестами
Authorization в Postman
▪️Наследование авторизации (Inherit auth from parent), что пригодится при группировке запросов в коллекции и папки для комплексного тестирования нескольких конечных точек одного веб-сервиса с разными HTTP-запросами, чтобы повторно использовать одни учетные данные вместо ввода этих параметров каждый раз при отправке запроса. По умолчанию запросы внутри коллекции или папки наследуют аутентификацию от родителя...
▪️Отсутствие авторизации (No auth), что не предполагает добавления учетных данных к запросу;
▪️Ключ API (API key) – в заголовок или в параметры HTTP-запроса добавляется пара ключ-значение. Чтобы использовать это для тестирования, предварительно нужно получить ключ разработчика API на стороне тестируемого сервера.
▪️Tокен на предъявителя (Bearer token) – это веб-маркер JSON (JWT, JSON Web Token), который представляет собой текстовую строку, включенную в заголовок запроса, надо предварительно получить токен разработчика API от тестируемого сервера.
▪️ JWT-носитель (JWT bearer), что предполагает генерацию носителя JWT прямо в Postman с использованием криптографических алгоритмов с SHA (HMAC, RSASSA-PKCS1-v1_5, ECDSA, RSASSA-PSS), секрета, закрытого ключа и полезной нагрузки для генерируемого JWT-токена в формате JSON.
▪️Базовая аутентификация (Basic auth) — отправка подтвержденного имени пользователя и пароля вместе с HTTP-запросом. Эти учетные данные добавляются в заголовок HTTP-запроса Authorization в кодировке Base 64. Это не самый безопасный способ, т.к. перехваченные данные легко раскодировать.
▪️Дайджест аутентификации (Digest auth), когда клиент отправляет первый запрос к API, а сервер отвечает несколькими деталями, включая одноразовый номер, значение области действия (realm) и HTTP-ответ со статусом 401. На это клиент снова отправляет серверу зашифрованный массив данных, включая имя пользователя и пароль, вместе с данными, полученными от сервера в первом запросе...(читать далее)
▪️Аутентификация Hawk (Hawk authentication) позволяет использовать частичную криптографическую проверку, задав Hawk Auth ID, Hawk Auth Key и алгоритм хеширования для создания кода аутентификации сообщения (MAC).
▪️Подпись AWS (AWS Signature) для запросов к веб-сервисам Amazon. AWS использует для аутентификации специальную схему HTTP, основанную на ключе HMAC (код аутентификации хэш-сообщения) с ключом доступа и секретом.
▪️NTLM-аутентификация (Windows Challenge/Response) — поток аутентификации для операционной системы Windows и автономных систем с указанием домена или хоста.
▪️Akamai EdgeGrid от провайдера веб-услуг Akamai, что включает учетные данные (токен доступа, токен клиента и секрет клиента), полученные при регистрации клиентского приложения в Akamai.
▪️OAuth 1.0 – аутентификация через стороннего провайдера (например, войти через VK, Google, Github и пр.), которая позволяет клиентским приложениям получать доступ к данным, предоставляемым внешним API, не раскрывая имя пользователя и пароль. Протокол OAuth 1.0 иногда называют двусторонним (аутентификация только между клиентом и сервером) . Чтобы запросить пользовательские данные с помощью стороннего сервиса, клиентское приложение запрашивает маркер доступа, используя учетные данные, такие как ключ и секрет...(читать далее)
▪️OAuth 2.0 является развитием предыдущего вида и предполагает получение токена доступа к API, а затем его использование для проверки подлинности запросов. Обычно доступ к данным с помощью OAuth 2.0 отличается у разных провайдеров API, но включает несколько прямых и обратных запросов между клиентским приложением, пользователем и API...(читать далее)
▪️ASAP (Atlassian) - Протокол аутентификации Atlassian S2S (ASAP ) — это токен-носитель JSON Web Token (JWT), который сервер API может использовать для аутентификации запросов от клиента

источник

На вебинаре я планирую разобрать часто используемые в работе: API Key, Basic Auth, Bearer Token, JWT (JSON Web Token), OAuth 2.0 и еще авторизация через куки, используя заголовок Cookie c значением sessionId
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥4111👍8
Приложение просит вас предоставить ему доступ к вашим контактам в Google. Вы соглашаетесь на странице Google, и приложение получает доступ, не зная вашего пароля от Google. Какой механизм здесь используется?
Anonymous Quiz
10%
Basic Auth
25%
API Key
6%
Digest Auth
59%
OAuth 2.0
👍74👨‍💻2👌1
Вы получили JWT-токен. Вы вставили его на сайт jwt.io и смогли прочитать полезную нагрузку (payload), например, ваш user_id. Почему это возможно и безопасно?
Anonymous Quiz
8%
Это небезопасно, токен скомпрометирован
53%
Потому что Payload в JWT не шифруется, а кодируется в Base64
14%
Потому что Header токена содержит флаг public: true
👍7🤣2💅1💘1
GetAnalyst_Тестирование_API_ВТБ_Практическое_руководство_Postman.pdf
15.2 MB
Одним им из первых и важнейших шагов при интеграции с внешней
системой является исследовательское тестирование её API.

Я попробовала и мне понравилось. Рекомендую и вам!
26💘97👍5
Следовать инструкциям файла "Исследование REST API через Postman для интеграции с платежной системой ВТБ"

Интеграция через редирект
- https://sandbox.vtb.ru/sandbox/ru/integration/structure/redirect-integration.html

Тестирование
Тестовые карты

https://sandbox.vtb.ru/sandbox/ru/integration/structure/test-cards.html

Статус платежа - https://sandbox.vtb.ru/sandbox/ru/integration/api/rest.html#payment-status

Полезный опыт, можно и другие ручки протестировать, связанных с оплатой.
6❤‍🔥15🔥8💘1
В данном примере авторизация происходит через тело запроса, а на вебинаре, который я хочу провести в августе, будут использованы на практике 5 разных способов авторизации (мной хорошо ознакомлены и изучены).
Вебинар для тех кто начинает знакомиться с Postman, кто хочет закрепить имеющиеся знания. Анонсы вебинара и курса по подготовке на собеседования, курса по тестированию бэкенда состоится в начале августа. А пока будут тесты и много других рекомендаций.
👍225🫡3🆒1