Веб-приложение Fuzz test (framework)?
Существуют ли фреймворки, которые могут выполнять fuzztesting на веб-приложениях? я знаю это Selenium
а также WebDriver
используются для создания тестов для веб-приложений, но мне особенно интересны библиотеки, фреймворки или проекты, в которые встроено fuzz-тестирование, поэтому мне не нужно заново изобретать колесо.
Например, я мог бы воспользоваться этими функциями:
- случайное нажатие на ссылку
- заполнение рандомизированной формы
- "назад" и "вперед" нажав
- случайное движение мыши и щелчок
- поддержка JavaScript
Кто-нибудь знает о проекте, который реализует эти функции? (желательно Java:))
4 ответа
Мне также было любопытно, так как мы использовали Selenium/Java здесь, в моем офисе, и немного покопались. Я нашел несколько ссылок, которые могут быть полезны для вас:
Fuzz Testing - IBM - Я подозреваю, что вы, возможно, уже нашли эту ссылку.
Обезьяна Fuzz Тестирование - я знаю, я знаю... это.NET. НО, это может дать вам несколько хороших идей относительно того, как реализовать это с вашей стороны.
Блог Стивена Колдебурна - Это было отличное чтение; стоит вашего времени.
В качестве поста с тегом "javascript" я добавляю сюда Gremlins.js, который представляет собой среду тестирования / фаззинга, написанную для Node и браузеров. Удивлен, никто еще не упомянул это.
Существуют некоторые новые модули NPM для тестирования JS Fuzz. К сожалению, многие из них не используются широко, поэтому ожидайте, что они нуждаются в некоторой полировке или TLC.
К сожалению, (сейчас = сентябрь 2013 г.) практически нет универсального инструмента тестирования Fuzz с использованием Selenium. Но, к счастью, вы могли бы реализовать свой собственный специализированный инструмент Fuzz.
Требования:
- Знание Selenium RC/WebDriver
- Некоторые навыки программирования на языке, который поддерживает Webdriver
- Хорошая структура ваших элементов HTML, так что вы можете легко сфокусировать ваше размытие. Хорошей практикой, независимо от старой (грязной?) Структуры ваших HTML-страниц, является добавление определенного идентификатора, например, selenium-id, к вашему HTML-элементу, чтобы (1) упростить формирование XPath, (2) ускорить разрешение XPath и (3) чтобы избежать проблем с переводом. При выборе значения для этого недавно добавленного селена-идентификатора вы можете свободно выполнять итерации при фаззировании, используя (a) использование последовательных чисел, (b) использование имен, образующих согласованность.
Я написал более подробно об этом тесте Fuzz Selenium здесь