📚 ProTestingInfo 🔷 Канал по тестированию 📚 pinned Deleted message
Повторение: какие задания могут быть на 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, например, такую:
Подумать, какие данные могут вызвать такую ошибку, и протестироватьразные варианты.
📤 Экспортировать коллекцию:
Postman → Export → Export Collection и отправить её на проверку @nadin_qa.
Скоро пришлю ещё одно задание на API — уже из другой документации.
Анонс: в августе планирую провести вебинар — тема пока в выборе. Это может быть либо тестирование интеграций при оплате, либо работа с сертификатами в Postman. Сейчас подбираю подходящие сервисы с возможностью бесплатного использования..
Еще одно практическое задание
Коллекция в Swagger, с которой предстоит работать: https://petstore.swagger.io/
🔳Предусловия:
▪️Request URL: https://petstore.swagger.io/v2/pet
▪️В теле запроса указывать статус питомца: "status": "available"
📝 Задание: создать коллекцию в Postman
В коллекции должны быть следующие запросы:
1. Создание нового питомца (POST /pet)
Заполнить все ключи тела запроса своими примерами значений.
На вкладке Scripts прописать скрипт, который:
- получает из тела ответа id созданного питомца;
- сохраняет id в переменную коллекции.
Совет: в Postman может возникать некорректное поведение при сохранении значения через сниппет pm.collectionVariables.set(...). Чтобы избежать проблем, можно задать id вручную и проверить.
2. Получение и проверка значения tags питомца
Написать скрипт, который:
- извлекает name из tags в теле ответа;
- сохраняет его в переменную коллекции.
Добавить проверку с использованием pm.test, чтобы убедиться, название tags из тела запроса равно названию tags из тела ответа сервера.
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
Telegram
Оповещения по курсам от protestinginfo
Привет всем.
Я только сейчас заметила, что некоторые объекты в Postman стали Deprecated, а я давала шпаргалку своим менти по написанию некоторых команд.
И сейчас немного изменила шпаргалку и хочу поделиться и с вами.
- Извлечение тела запроса:
var requestBody…
Я только сейчас заметила, что некоторые объекты в Postman стали Deprecated, а я давала шпаргалку своим менти по написанию некоторых команд.
И сейчас немного изменила шпаргалку и хочу поделиться и с вами.
- Извлечение тела запроса:
var requestBody…
164❤12✍4🆒3⚡2
Forwarded from Обучение, менторство и отзывы по онлайн-курсам и менторингу
И вот подошёл к концу курс по тестированию бэкенда от Надежды Дудник.
Очень сильный по наполнению, курс даёт возможность в полной мере прочувствовать специфику тестирования тех внутренних процессов, что скрыты от пользователя "под капотом". Ключевой момент, который стоит подчеркнуть, это практическая направленность курса.
В течение курса, с самого его начала, вы будете постоянно на практике взаимодействовать с серверной частью приложения, посредством Postman, DBeaver, Redis, Swagger. Структурируете свои знания в навыках составления коллекции Postman, в проверке работы API на позитивные и негативные сценарии, в анализе работы API с данными в базах PostgreSQL, с кэшированными данными Redis, с логами в БД ClickHouse. Также в курсе учитываются различные нюансы, связанные с кэшированием, согласованностью данных между сервисами или анализом логов, которые часто встречаются на реальных проектах, предлагает варианты их разрешения. В течение курса я прокачала свои навыки составления отчётов по дефектам, тестирования авторизации и регистрации через API, анализа и интерпретации HTTP-статус кодов.
Особо ценю постоянную возможность взаимодействия с автором курса и оперативное получение обратной связи.
Крайне рекомендую данный курс! Рекомендую всем, кто хочет системно освоить backend-тестирование!
Выражаю огромную благодарность Надежде Дудник за такой замечательный курс!
50❤8💘5❤🔥2
Всем привет. С 5 августа (или чуть попозже с 20 августа) планирую запустить третий поток по тестированию бэкенда, знакомлю с отзывами:
Читать еще отзывы
Количество мест ограничено.
Новые тарифы и новые доступы, с которыми я ознакомлю позже ближе к запуску, уже на сайте.
У кого есть вопросы уже сейчас, можно написать @nadin_qa
Читать еще отзывы
Количество мест ограничено.
Новые тарифы и новые доступы, с которыми я ознакомлю позже ближе к запуску, уже на сайте.
У кого есть вопросы уже сейчас, можно написать @nadin_qa
protestinginfo.ru
Закрепление знаний по тестированию ПО
👍10✍2🆒1
📚 ProTestingInfo 🔷 Канал по тестированию 📚
Коллеги, привет! Внимание ❕ полезный тренажер! Алексей Клименко (QA Engineer / Mentor QA) сделал еще один веб-тренажёр для практики анализа требований, построения диаграммы состояний и переходов (state transition) и функционального тестирования. Тренажер…
Хочу порекомендовать еще полезный тренажёр для QA: практика работы с Chrome DevTools
https://aklimenkoschool.ru/simulators/devtools/
Автор: Алексей Клименко
https://aklimenkoschool.ru/simulators/devtools/
Автор: Алексей Клименко
aklimenkoschool.ru
devtools-practice-arena
Lovable Generated Project
👍21❤7🔥6❤🔥2
Привет всем!
В середине августа планирую провести мощнейший вебинар🤔 по токенам (авторизация, аутентификация) с уклоном на практику.
Чтобы подготовиться к нему и быть в курсе, ожидайте серию тестов по этой теме — они будут публиковаться на этом канале @protestinginfo до начала вебинара.
Анонс с деталями представлю в начале августа.
Вебинар приурочен к старту новых потоков по тестированию бэкенда и подготовке к собеседованиям.
💻 На практике мы разберём различные способы авторизации на разных сервисах — от базовой аутентификации до OAuth 2.0. 💻 Также, возможно, затрону тему применения сертификатов при отправке запросов, которые активно используются у меня на работе в финтехе.
В середине августа планирую провести мощнейший вебинар
Чтобы подготовиться к нему и быть в курсе, ожидайте серию тестов по этой теме — они будут публиковаться на этом канале @protestinginfo до начала вебинара.
Анонс с деталями представлю в начале августа.
Вебинар приурочен к старту новых потоков по тестированию бэкенда и подготовке к собеседованиям.
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥65❤14❤🔥6👍4 3🆒1
Изучаем и закрепляем знания перед тестами
источник
На вебинаре я планирую разобрать часто используемые в работе: API Key, Basic Auth, Bearer Token, JWT (JSON Web Token), OAuth 2.0 и еще авторизация через куки, используя заголовок Cookie c значением sessionId
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🔥41❤11👍8
Как правильно должен выглядеть HTTP-заголовок для отправки Bearer-токена?
Anonymous Quiz
11%
Token: Bearer <значение_токена>
18%
Bearer-Token: <значение_токена>
65%
Authorization: Bearer <значение_токена>
6%
Authentication: <значение_токена>
👍12✍3❤🔥2
Из каких трех частей, разделенных точками, состоит JSON Web Token (JWT)?
Anonymous Quiz
22%
Заголовок (Header), Полезная нагрузка (Payload), Ключ (Key)
27%
Заголовок (Header), Полезная нагрузка (Payload), Подпись (Signature)
20%
Токен доступа (Access Token), Полезная нагрузка (Payload), Подпись (Signature)
32%
Токен доступа (Access Token), Ключ (Key), Подпись (Signature)
👍7👌3 3💯2
Что представляет собой метод авторизации "Basic Auth"?
Anonymous Quiz
16%
Передачу уникального ключа в параметрах запроса
3%
Сложный протокол с перенаправлением пользователя для получения согласия
70%
Отправку логина и пароля, закодированных в формат Base64, в заголовке запроса
11%
Использование краткосрочного токена, полученного в обмен на Refresh-токен
5👍11❤🔥4🆒2
📚 ProTestingInfo 🔷 Канал по тестированию 📚
Видео размещено на YouTube канале моем и @qaroad Смотреть видео Будут вопросы - пишите
Vebinar_na_temu_Kak_dekompozirovat_proverki_dlya_funkcionalnosti.pdf
4.8 MB
Всем привет, обновила презентацию "Как декомпозировать проверки для функциональности и составить тест-кейсы для них" для удобства
Видео на YouTube - https://youtu.be/U0n6Q2ui_u4
Видео на Rutube - https://rutube.ru/video/4a87a4c21666343549bba02c7d326bd3/?r=wd
Видео на YouTube - https://youtu.be/U0n6Q2ui_u4
Видео на Rutube - https://rutube.ru/video/4a87a4c21666343549bba02c7d326bd3/?r=wd
76❤23🆒4❤🔥3✍3😎1
Какую информацию содержит Payload (Полезная нагрузка) в JWT?
Anonymous Quiz
28%
Тип токена и алгоритм подписи.
23%
Секретный ключ для проверки подписи.
42%
"Утверждения" (claims) - информацию о пользователе, например, username.
6%
Путь к файлам сертификатов.
❤5👍1🌚1💯1🆒1
Приложение просит вас предоставить ему доступ к вашим контактам в Google. Вы соглашаетесь на странице Google, и приложение получает доступ, не зная вашего пароля от Google. Какой механизм здесь используется?
Anonymous Quiz
10%
Basic Auth
25%
API Key
6%
Digest Auth
59%
OAuth 2.0
👍7✍4👨💻2👌1
Вы получили JWT-токен. Вы вставили его на сайт jwt.io и смогли прочитать полезную нагрузку (payload), например, ваш user_id. Почему это возможно и безопасно?
Anonymous Quiz
8%
Это небезопасно, токен скомпрометирован
25%
Потому что токен зашифрован, а сайт jwt.io имеет секретные ключи
53%
Потому что Payload в JWT не шифруется, а кодируется в Base64
14%
Потому что Header токена содержит флаг public: true
👍7🤣2💅1💘1
GetAnalyst_Тестирование_API_ВТБ_Практическое_руководство_Postman.pdf
15.2 MB
Одним им из первых и важнейших шагов при интеграции с внешней
системой является исследовательское тестирование её API.
Я попробовала и мне понравилось. Рекомендую и вам!
26💘9❤7👍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
Полезный опыт, можно и другие ручки протестировать, связанных с оплатой.
Интеграция через редирект - 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, кто хочет закрепить имеющиеся знания. Анонсы вебинара и курса по подготовке на собеседования, курса по тестированию бэкенда состоится в начале августа. А пока будут тесты и много других рекомендаций.
Вебинар для тех кто начинает знакомиться с Postman, кто хочет закрепить имеющиеся знания. Анонсы вебинара и курса по подготовке на собеседования, курса по тестированию бэкенда состоится в начале августа. А пока будут тесты и много других рекомендаций.
👍22❤5🫡3🆒1