TGViewer
Валерий | AQA Engineer | Автотестирование на Python | REST, gRPC, GraphQL Валерий | AQA Engineer | Автотестирование на Python | REST, gRPC, GraphQL @aqa_engineer · 1.52K subscribers
Post #355 973
Fuzzing тестирование API

В этом канале мы с вами рассматриваем преимущественно темы автоматизации тестирования API.

У меня все никак не доходили руки рассказать про инструмент, который вы возможно даже использовали и который занимается fuzzing тестированием.

🔍 Что такое фаззинг-тестирование?

Фаззинг (fuzzing) — это метод автоматического тестирования, при котором программа проверяется на уязвимости и ошибки с помощью передачи случайных или полу-случайных данных на вход. Цель — найти краш, утечку памяти, неожиданное поведение или уязвимости безопасности.

🧩 Виды фаззинга:

- Мутационный фаззинг — изменяет существующие входные данные (например, искажая корректный JSON).

- Генеративный фаззинг —
создает данные с нуля на основе спецификации (например, OpenAPI/Swagger).


А теперь собственно про сам инструмент.

⚡️
Schemathesis — фаззер для API

Schemathesis —
это инструмент для тестирования API, основанный на OpenAPI/Swagger-схеме сервиса. Он автоматически генерирует тестовые сценарии и "обстреливает" ваш API некорректными или неожиданными данными, чтобы выявить:

- Ошибки сервера (500 Internal Server Error)
- Уязвимости (SQL-инъекции, XSS)
- Проблемы валидации
- Неожиданное поведение

🚀 Как работает?

1. Берет схему OpenAPI/Swagger.

2. Генерирует корректные и некорректные запросы на основе property based testing.

3. Отправляет их в API и анализирует ответы.


🔧 Пример использования:

pip install schemathesis  
schemathesis run https://example.com/openapi.json


Или с кастомными параметрами:
schemathesis run --checks all --max-response-time 5000 http://api.example.com/schema.json


💡 Зачем это нужно?


- Находить баги до продакшена.
- Улучшать отказоустойчивость API.
- Автоматизировать тестирование безопасности.

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

Инструмент безумно простой в использовании и очень эффективный, в целом можно внедрить отдельной не блокирующей гитлаб джобой с заделом на будущее. Кстати недавно обнаружил, что он еще умеет в GraphQL

Думаю добавлю урок с этим инструментом в курс Advanced, лишним не будет)

——————————-

📱 TG-сообщество

📱 Обучение

📱 Отзывы
  • 💩 53
  • 🔥 14
  • 👍 9
More from @aqa_engineer
  1. Sep 2, 2026💙💙💙💙💙 Маленькое напоминание о большой дате: где стоит провести День программиста⬆️ Ар…
  2. Sep 2, 2026Привет, давно меня не было пригар по работе, что совсем не успеваю ничего. За что прошу пр…
  3. Jul 16, 2026👩‍💻 В мае-июне я проходила курс «Автоматизация тестирования Rest API Advanced (Python)»…
  4. Jun 10, 2026Привет! Уже на следующей неделе у меня стартуют. Автоматизация тестирования брокеров сообщ…
  5. Jun 8, 2026Несколько месяцев назад я спросил, какой технический тренинг вам был бы действительно инте…
  6. Jun 6, 2026Материалы для тех, кто в теме. Одна из самых больших проблем при развитии в IT - это возмо…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →