gremlins.js är ett monkey-testningsbibliotek för webbappar och Node.js som simulerar slumpmässiga användarinteraktioner.
Grundläggande användning
Körning via CDN
<script src="https://cdn.jsdelivr.net/npm/gremlins/dist/gremlins.js"></script>
<script>
gremlins.createHorde().unleash();
</script>
Anpassa horden
gremlins.createHorde()
.allGremlins()
.gremlin(function () {
// Anpassad åtgärd som körs med jämna mellanrum
document.activeElement.blur();
})
.unleash();
Fullständigt konfigurationsexempel
gremlins.createHorde()
.gremlin(gremlins.species.formFiller())
.gremlin(gremlins.species.clicker()
.clickTypes(['click'])
.canClick(element => element.tagName !== 'A')
.showAction((x, y) => { /* Visuell klickindikator */ }))
.gremlin(gremlins.species.scroller())
.gremlin(gremlins.species.typer())
.mogwai(gremlins.mogwais.alert())
.mogwai(gremlins.mogwais.fps())
.mogwai(gremlins.mogwais.gizmo().maxErrors(2))
.unleash();
Livscykel-hooks
Synkrona Before och After
gremlins.createHorde()
.before(function () {
this.log('Startar körning av monkey-test');
console.profile('gremlins');
})
.after(function () {
this.log('Monkey-testning slutförd');
console.profileEnd();
})
.unleash();
Asynkrona hooks
gremlins.createHorde()
.before(function (done) {
setTimeout(() => {
this.log('Asynkron konfiguration slutförd');
done();
}, 500);
})
.unleash();
Artreferens (Species Reference)
Gremlins (Angripare)
- formFiller: Fyller formulärfält (input, textarea, select) med slumpmässig giltig data.
- clicker: Klickar slumpmässigt på aktiva element i visningsytan.
- scroller: Rullar fönstret i slumpmässiga riktningar.
- typer: Skriver slumpmässiga tangenter i fokuserade fält.
- toucher: Genererar touch-gester på pekskärmar.
Mogwais (Vakter)
- alert: Fångar och loggar anrop till
window.alert. - fps: Övervakar bildfrekvensen (FPS) och loggar kraftiga fall.
- gizmo: Stoppar körningen när antalet ohanterade JavaScript-fel överskrider gränsen.