gremlins.js is een monkey-testing-bibliotheek voor webapps en Node.js die willekeurige gebruikersinteracties simuleert.
Basisgebruik
Uitvoeren via CDN
<script src="https://cdn.jsdelivr.net/npm/gremlins/dist/gremlins.js"></script>
<script>
gremlins.createHorde().unleash();
</script>
De Horde Aanpassen
gremlins.createHorde()
.allGremlins()
.gremlin(function () {
// Aangepaste actie uitgevoerd op gezette tijden
document.activeElement.blur();
})
.unleash();
Volledig Configuratievoorbeeld
gremlins.createHorde()
.gremlin(gremlins.species.formFiller())
.gremlin(gremlins.species.clicker()
.clickTypes(['click'])
.canClick(element => element.tagName !== 'A')
.showAction((x, y) => { /* Visuele klikindicator */ }))
.gremlin(gremlins.species.scroller())
.gremlin(gremlins.species.typer())
.mogwai(gremlins.mogwais.alert())
.mogwai(gremlins.mogwais.fps())
.mogwai(gremlins.mogwais.gizmo().maxErrors(2))
.unleash();
Lifecycle-hooks
Synchrone Before en After
gremlins.createHorde()
.before(function () {
this.log('Start van monkey-testuitvoering');
console.profile('gremlins');
})
.after(function () {
this.log('Monkey-testing voltooid');
console.profileEnd();
})
.unleash();
Asynchrone Hooks
gremlins.createHorde()
.before(function (done) {
setTimeout(() => {
this.log('Asynchrone setup voltooid');
done();
}, 500);
})
.unleash();
Species Referentie
Gremlins (Aanvallers)
- formFiller: Vult input-, textarea- en select-velden met willekeurige data.
- clicker: Klikt willekeurig op actieve elementen in de viewport.
- scroller: Scrolt het venster in willekeurige richtingen.
- typer: Typt willekeurige toetsen in actieve invoervelden.
- toucher: Genereert aanraakbewegingen op touchscreens.
Mogwais (Waakhonden)
- alert: Onderschept en logt
window.alert-aanroepen. - fps: Bewaakt de framerate (FPS) en signaleert vertragingen.
- gizmo: Stopt de uitvoering wanneer JavaScript-fouten de limiet overschrijden.