Сделаю из тебя крутого AQA инженера на Python.
• Преподаю лучшие тренинги по автоматизации тестирования API
• Senior Python developer | AQA lead, 7 лет в IT
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 и анализирует ответы.
🔧 Пример использования:
Или с кастомными параметрами:
💡 Зачем это нужно?
- Находить баги до продакшена.
- Улучшать отказоустойчивость API.
- Автоматизировать тестирование безопасности.
На практике имеет смысл использовать скорее если вы вылизываете свое API и у вас есть ресурсы, чтобы упороться, кривые схемы будут порождать огромное количество ошибок которые с высокой долей вероятности никто не будет править.
Инструмент безумно простой в использовании и очень эффективный, в целом можно внедрить отдельной не блокирующей гитлаб джобой с заделом на будущее. Кстати недавно обнаружил, что он еще умеет в GraphQL
Думаю добавлю урок с этим инструментом в курс Advanced, лишним не будет)
——————————-
📱 TG-сообщество
📱 Обучение
📱 Отзывы
В этом канале мы с вами рассматриваем преимущественно темы автоматизации тестирования 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











