gremlins.js este o bibliotecă de monkey testing pentru aplicații web și Node.js ce simulează acțiuni aleatorii ale utilizatorilor.
Utilizare de bază
Rulare prin CDN
<script src="https://cdn.jsdelivr.net/npm/gremlins/dist/gremlins.js"></script>
<script>
gremlins.createHorde().unleash();
</script>
Personalizarea Hoardei
gremlins.createHorde()
.allGremlins()
.gremlin(function () {
// Acțiune personalizată executată la intervale regulate
document.activeElement.blur();
})
.unleash();
Exemplu complet de configurare
gremlins.createHorde()
.gremlin(gremlins.species.formFiller())
.gremlin(gremlins.species.clicker()
.clickTypes(['click'])
.canClick(element => element.tagName !== 'A')
.showAction((x, y) => { /* Indicator vizual de 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-uri pentru ciclul de viață
Before și After sincrone
gremlins.createHorde()
.before(function () {
this.log('Începerea execuției monkey testing');
console.profile('gremlins');
})
.after(function () {
this.log('Monkey testing finalizat');
console.profileEnd();
})
.unleash();
Hook-uri asincrone
gremlins.createHorde()
.before(function (done) {
setTimeout(() => {
this.log('Configurare asincronă finalizată');
done();
}, 500);
})
.unleash();
Ghidul speciilor
Gremlini (Atacatorii)
- formFiller: Completează formularele (input, textarea, select) cu date aleatorii valide.
- clicker: Face clic aleatoriu pe elementele active de pe ecran.
- scroller: Derulează fereastra în direcții aleatorii.
- typer: Tastează caractere aleatorii în câmpurile active.
- toucher: Generează atingeri pe ecrane tactile.
Mogwai (Păzitorii)
- alert: Interceptează și înregistrează casetele
window.alert. - fps: Monitorizează rata de cadre (FPS) și raportează scăderile.
- gizmo: Oprește execuția dacă numărul erorilor JavaScript depășește limita.