gremlins.js è una libreria di monkey testing per app web e Node.js che simula azioni casuali degli utenti per scovare bug.
Uso di base
Avvio tramite CDN
<script src="https://cdn.jsdelivr.net/npm/gremlins/dist/gremlins.js"></script>
<script>
gremlins.createHorde().unleash();
</script>
Personalizzazione dell orda
gremlins.createHorde()
.allGremlins()
.gremlin(function () {
// Azione personalizzata eseguita a intervalli regolari
document.activeElement.blur();
})
.unleash();
Esempio di configurazione completa
gremlins.createHorde()
.gremlin(gremlins.species.formFiller())
.gremlin(gremlins.species.clicker()
.clickTypes(['click'])
.canClick(element => element.tagName !== 'A')
.showAction((x, y) => { /* Indicatore visivo di clic */ }))
.gremlin(gremlins.species.scroller())
.gremlin(gremlins.species.typer())
.mogwai(gremlins.mogwais.alert())
.mogwai(gremlins.mogwais.fps())
.mogwai(gremlins.mogwais.gizmo().maxErrors(2))
.unleash();
Hook del ciclo di vita
Before e After sincroni
gremlins.createHorde()
.before(function () {
this.log('Avvio dell esecuzione del monkey test');
console.profile('gremlins');
})
.after(function () {
this.log('Monkey testing completato');
console.profileEnd();
})
.unleash();
Hook asincroni
gremlins.createHorde()
.before(function (done) {
setTimeout(() => {
this.log('Configurazione asincrona completata');
done();
}, 500);
})
.unleash();
Riferimento delle specie
Gremlin (Gli attaccanti)
- formFiller: Compila elementi di modulo (input, textarea, select) con dati casuali.
- clicker: Clicca casualmente su elementi interattivi nella schermata.
- scroller: Effettua lo scroll della finestra in direzioni casuali.
- typer: Digita tasti a caso negli input attivi.
- toucher: Genera eventi di tocco su schermi touch.
Mogwai (I guardiani)
- alert: Intercetta e registra le chiamate a
window.alert. - fps: Monitora il framerate (FPS) e segnala i cali prestazionali.
- gizmo: Interrompe l esecuzione se gli errori JavaScript non gestiti superano la soglia.