a fuzzy input creator for tests
A fuzzer for testing. This implements mutation fuzzing, in which an expect input is mutated (changed) many times in order to trigger unexpected behavior or crashes.
npm install fuzzer
Generate a mutated version of an object. This does not modify the object directly, but returns a modified copy. This mutation will increment and decrement numbers, randomize arrays, remove properties, and more.
Generate a mutated version of a string, with reversed, removed, and added characters.
Seed the random number generator
random-js that determines mutations.
By calling this function with the same number, you can generate the same
If you install this globally it provides a single cli utility called
npm install -g fuzzer fuzz-get "./bin/fuzz-get "http://localhost:8889/foo/bar/your/rest/api"
This will run mutated requests against your server continously - it will mutate the path requested into other incorrect requests, and log in the form:
So you can pipe into
| grep "HTTP500" if you wish.
var test = require'tap'testfuzzer = require'fuzzer';fuzzerseed0;test'something'var generator = fuzzermutateobjectyourTestingInput;for var i = 0; i < 1000; i++tdoesNotThrowyourLibrarygenerator;;;