📚 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
📚 ProTestingInfo 🔷 Канал по тестированию 📚
Ссылка на эфир, встречаемся через час: ❗️ https://kinescope.io/0cp9KJLfzhZEfwXkAiJMUG
https://rest-api-webhook-5obkd6n.gamma.site/ (возможно, открыть через VPN)

Необходимые данные для просмотра вебинара (сейчас можно смотреть)
Сделаю монтаж на днях и добавлю на Youtubе с тайм-кодами и с лекцией на CoreApp

Хочу всем сказать спасибо за просмотр.

Старт нового потока по курсу по подготовке на собеседования - завтра будет подробный пост дополнительно.

Промокод PROMO10 - 10% скидка на все тарифы
Продажи с 15 июня по 29 июня 2025г

Тарифы
Отзывы
19🆒5👍3😎1
Онлайн курс по подготовке к собеседованиям и закреплению знаний.

Этот курс — результат моего опыта и знаний, которые я собрала, чтобы помочь вам разобраться в тестировании и уверенно пройти собеседования.
Предлагаю пройти курс с тестами, вебинарами и практикой!

Что вас ждет на курсе?
Программа курса
▪️Живые вебинары раз в месяц, где мы обсуждаем важные темы и разбираем вопросы, которые вас волнуют.
▪️Доступ к записям вебинаров с темами по собеседованиям, API, документации, SQL, техникам тест-дизайна и другим аспектам тестирования. Добавляю лекции к вебинарам и на этапе обновления презентаций.
▪️Практические задания (в зависимости от выбранного тарифа): ревью баг-репортов, применение тест-дизайна, тестированиеAPI (REST, graphQL, gRPC), SQL и работа с инструментами (Postman, Dbeaver, PostgreSQL).
▪️Проверка и рекомендации по вашему резюме и помощь в составлении (по тарифу).
▪️Поддержка в чате со мной на площадке CoreApp: возможность задавать вопросы, делиться успехами, и я всегда буду рядом, чтобы помочь.
Примечание: это не курс по тестированию с нуля.
Курс подойдет для тех кто прошел уже какие-то курсы по тестированию, для мидлов и для тех просто хочет закрепить и освежить свои знания.

Доступ к курсу от 4-6 месяцев в зависимости от тарифа

💡 Особенные условия:
💙с 15 июня по 23 июня — бонус вебинара - посмотреть!
💙Промокод PROMO10 дает 10% скидки до конца продаж - 29 июня.
📩 Для тех, кто уже учился:
Если вам нужно продлить доступ, напишите мне в Telegram @nadin_qa, указав свою почту. Я подберу для вас условия продления с учетом выполненных заданий.

👉 Узнать больше и выбрать подходящий тариф

Этот курс поможет вам разобраться в сложных темах, отработать знания на практике и подготовиться к собеседованиям так, чтобы чувствовать себя уверенно.

Ознакомиться с отзывами.
Вступить в канал оповещений по курсу: @info_course_protestinginfo

💳 Способы оплаты
Быстрый платеж без ввода данных карты (для карт РФ).
Оплата картами РФ (SberPay, расчетный счет ИП или ООО).
Зарубежные карты (Visa/Mastercard, USD) – цена выше на 15-20% из-за конвертации.
Оплата по частям (РФ):
"Частями от Продамус 3.0" (1,5, 3, 6 месяцев).
Рассрочка для РФ и Казахстана:
Т-банк (3, 4, 6 мес.), ОТП Банк (3, 4 мес.), Сбер (6 мес.), ФридомФинанс (3 мес.).

📜 Сертификат
При успешном выполнении всех заданий вам будет выдан сертификат.

Жду вас на курсе. Буду рада помочь!
Вопросы по курсу - @nadin_qa
9🆒11
📚 ProTestingInfo 🔷 Канал по тестированию 📚 pinned «Онлайн курс по подготовке к собеседованиям и закреплению знаний. Этот курс — результат моего опыта и знаний, которые я собрала, чтобы помочь вам разобраться в тестировании и уверенно пройти собеседования. Предлагаю пройти курс с тестами, вебинарами и практикой!…»
Forwarded from Екатерина Нелюбина
Брала у Надежды самый полный тариф на курсе, осталась очень довольна наполняемостью курса! Надя дает очень много информации,обратной связи и также дополнительных материалов. Продуктивные вебинары,тесты для закрепления знаний, много практики на курсе. Благодаря чему я получила долгожданный оффер. Хочу еще раз сказать спасибо Наде и пожелать успехов в развитии.
50👏107💘421
Всем привет!

Я добавила таймкоды, сделала небольшой монтаж, что видео получилось примерно чуть больше часа 😄.

▶️YouTube
Смотреть Вебинар
00:01 - Введение в тему и план вебинара
00:26 - План вебинара
02:36 - О спикере и её опыте в тестировании
03:50 - Важность теории (интеграция, API) для собеседований
04:25 - Теория: Что такое интеграция и интеграционное тестирование?
06:00 - Способы интеграции между сервисами (API, брокеры, файлы, SDK)
07:28 - Аналогия: Синхронное vs Асинхронное взаимодействие (заказ в ресторане)
08:39- Техническое объяснение синхронной и асинхронной интеграции
10:49 - Основные виды API для интеграции (SOAP, REST, GraphQL, gRPC, WebSocket)
14:35 - Как реализуется асинхронность в REST API (Webhooks, Long Polling, SSE)
15:47 - Основная тема: Что такое веб-хук?
17:54 - Примеры использования веб-хуков в реальной жизни
22:30 - Что важно учитывать при тестировании веб-хуков (URL, Auth, Payload)
23:10 - Практический пример №1: Настройка веб-хуков в CoreApp
34:00 - Демонстрация и разбор дефекта в CoreApp
40:22 - Практический пример №2: Тестирование веб-хуков на сайте Vikunja
41:20 - Безопасность веб-хуков: что такое HMAC-подпись?
43:00 - Обзор интерфейса и OpenAPI документации Vikunja
46:44 - Практика: Настройка веб-хука в Vikunja через UI и создание проекта и задачи в нем через Postman или UI
51:33 - Использование webhook site для просмотра событий
59:07 - Практика: Проверка подлинности сообщения с помощью HMAC-подписи
01:02:15 - Демонстрация срабатывания веб-хука на удаление задачи
01:11:07 - Плюсы и минусы веб-хуков
01:11:53 - Ключевое отличие обычного API от веб-хуков
01:12:44 - Дополнительная литература для изучения
01:13:14 - Заключение и ответы на вопросы

Лекция-урок в текстовом формате на площадке CoreApp с обновленной презентаций, а также изучить платформу в случае выбора курса - перейти к уроку

▶️Смотреть на RuTube
Видео вебинара

Пишите свои отзывы, вопросы, комментарии.
Обратная связь приветствуется.
Please open Telegram to view this post
VIEW IN TELEGRAM
50🔥48👍1311❤‍🔥22💯1🏆1🆒1
Привет, Надя!
Хочу выразить свою благодарность за курс по тестам! Он оказался очень интересным и полезным, даже несмотря на мой опыт в тестировании. Мне было важно проверить свои знания, выявить слабые места и поработать над ними. Особенно понравилось, что в рамках курса разбирались популярные вопросы на собеседованиях и давались рекомендации по тому, как на них лучше отвечать.

Также хочу поблагодарить за предоставленные ссылки на сторонние ресурсы для более глубокого изучения темы и за оперативные ответы на все возникавшие у меня вопросы в процессе обучения. Я очень ценю обратную связь!

Отдельное спасибо за помощь в создании продаваемого резюме — я впервые увидела свое резюме таким впечатляющим! Теперь я чувствую себя гораздо более подготовленной к собеседованиям. Надя, спасибо за твой труд, профессионализм и поддержку!
Успехов тебе!
50🔥64🆒1💘1
Какой способ версионирования REST API является наиболее прозрачным и удобным для мониторинга и логирования?
Anonymous Quiz
15%
Передача версии в теле ответа
13%
Использование query-параметра version=2
65%
Указание версии в URL, например, /v1/resource
8%
Передача версии в cookie
👍86🆒3
Отвечайте на тесты, а потом будет практика с примерами на взаимозаменяемость, версионирование и идемпотентность для закрепления наших знаний!
13👌53👨‍💻2👍1🔥1
📚 ProTestingInfo 🔷 Канал по тестированию 📚
ПРЕЗЕНТАЦИЯ Техники тест-дизайна и их применение на практике Благодарю за просмотр и жду ваших вопросов! Таймкоды Добавлены к вебинару
Вебинар_на_тему_Техники_тест_дизайна_и_их_применение_на_практике.pdf
5.1 MB
Обновленная презентация через gamma.app про техники тест-дизайна на практике. Вебинар актуален для подготовки на собеседования.

Напоминание:
Тест на основы и техники тест-дизайна

t.me/QuizBot?start=C3NLj51e

Кто еще не проходил этот тест, предлагаю повторить свои знания!
(В случае если тест не запускается, почистить историю бота).
50154👍4👌2
📚 ProTestingInfo 🔷 Канал по тестированию 📚
2. Gorest REST API
GET
https://gorest.co.in/public/v2/users

cURL
curl --location 'https://gorest.co.in/public/v2/users' \
--header 'Authorization: Bearer 900aa8a90c6b6.......'

Требования
Get your access token
This API supports only "HTTP Bearer Tokens" and "Query parameter Auth"

Header - "Authorization: Bearer ACCESS-TOKEN"
Я здесь буду использовать API key, а про Bearer Token поговорим чуть позже.

Итак, я показала, как настроить API key в Postman. Теперь можно переходить к практике, копируйте запросы и пробуйте.

Дополнение.
Чтобы упростить работу, можно объявить API key в переменных коллекции во вкладке Variables.
«Authorization» в коллекции:
Key: api_key, Value: {{api_key}} (если используем переменную).
Add to …
Практическое задание на сайте gorest.co.in (придумала для вас):
Для начинающих тестировщиков и тех, кто ранее не работал с данной темой — хорошая возможность ознакомиться с основами.
Для тех, кто уже знаком с темой — возможность закрепить знания.


Предусловия:
1. Зарегистрироваться на сайте gorest.co.in и получить токен доступа.
2. Создать пользователя с помощью запроса:
POST https://gorest.co.in/public/v2/users
В теле запроса указать имя, пол, статус и уникальный email.
3. Получить значение id созданного пользователя, например: id = 123345.

Задания:
▪️1. Взаимозаменяемость
Выполнить GET-запрос, передав идентификатор пользователя (id) разными способами:

как часть пути (path parameter):
GET https://gorest.co.in/public/v2/users/123345


как path variable:
GET https://gorest.co.in/public/v2/users/:id, где id = 123345


как query-параметр:
GET https://gorest.co.in/public/v2/users?id=123345


🔍Обратить внимание: через query-параметр сервер возвращает другой ответ. Сравнить результаты.

Вывод:
Взаимозаменяемость — это способность API обрабатывать параметры, переданные в разных частях запроса (в пути URL, или через path / query на вкладке params в Postman), возвращая одинаковый результат (поддерживается не всеми API).

▪️2. Версионирование
Выполнить GET-запрос с разными версиями API:

API Version 2:
GET https://gorest.co.in/public/v2/users/123345


API Version 1:
GET https://gorest.co.in/public/v1/users/123345


API Version 0 (устаревший путь):
GET https://gorest.co.in/public-api/users/123345


🔍 Обратить внимание на статус-код и тело ответа от сервера. Проанализировать результаты и сравнить с документацией на сайте gorest.co.in.

Вывод:
Версионирование API — это способ управлять изменениями в API без нарушения работы существующих клиентов. Оно позволяет развивать API, внедрять несовместимые изменения, не ломая текущие интеграции. При переходе на новую версию важно прозрачно обозначить устаревание предыдущей и дать время на миграцию.

▪️3. Идемпотентность
Выполнить один и тот же GET-запрос три раза подряд:

GET https://gorest.co.in/public/v2/users/123345


🔍Обратить внимание, что многократное выполнение одного и того же запроса не изменяет состояние ресурса. Ответ сервера должен быть одинаковым.

Вывод:
Идемпотентность — это свойство API (точнее, HTTP-методов как GET, PUT, DELETE), при котором многократное выполнение одного и того же запроса приводит к одному и тому же результату, независимо от количества повторов (точнее, повторные вызовы не изменяют состояние ресурса и возвращают одинаковый результат).

Задания предназначены для ознакомления и закрепления теории на практике.

Если остались вопросы — пишите. Также можно прислать отчёт в Google Docs с описанием шагов и скриншотами: @nadin_qa
Please open Telegram to view this post
VIEW IN TELEGRAM
226🔥2073👌22
Повторение: какие задания могут быть на 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