gremlins.js to biblioteka do testów typu monkey testing dla aplikacji webowych i Node.js, symulująca losowe interakcje użytkownika.
Podstawowe użycie
Uruchomienie przez CDN
<script src="https://cdn.jsdelivr.net/npm/gremlins/dist/gremlins.js"></script>
<script>
gremlins.createHorde().unleash();
</script>
Konfiguracja Hordy
gremlins.createHorde()
.allGremlins()
.gremlin(function () {
// Niestandardowa akcja wykonywana w regularnych odstępach
document.activeElement.blur();
})
.unleash();
Pełny przykład konfiguracji
gremlins.createHorde()
.gremlin(gremlins.species.formFiller())
.gremlin(gremlins.species.clicker()
.clickTypes(['click'])
.canClick(element => element.tagName !== 'A')
.showAction((x, y) => { /* Wizualny wskaźnik kliknięcia */ }))
.gremlin(gremlins.species.scroller())
.gremlin(gremlins.species.typer())
.mogwai(gremlins.mogwais.alert())
.mogwai(gremlins.mogwais.fps())
.mogwai(gremlins.mogwais.gizmo().maxErrors(2))
.unleash();
Hooki cyklu życia
Synchroniczne Before i After
gremlins.createHorde()
.before(function () {
this.log('Rozpoczęcie wykonywania monkey testów');
console.profile('gremlins');
})
.after(function () {
this.log('Zakończono monkey testing');
console.profileEnd();
})
.unleash();
Hooki asynchroniczne
gremlins.createHorde()
.before(function (done) {
setTimeout(() => {
this.log('Zakończono asynchroniczną konfigurację');
done();
}, 500);
})
.unleash();
Spis gatunków (Species Reference)
Gremliny (Atakujący)
- formFiller: Wypełnia kontrolki formularza (input, textarea, select) losowymi danymi.
- clicker: Losowo klika interaktywne elementy na ekranie.
- scroller: Przewija okno w losowych kierunkach.
- typer: Losowo wpisuje znaki w polach formularzy.
- toucher: Generuje gesty dotykowe na ekranach dotykowych.
Mogwaie (Strażnicy)
- alert: Przechwytuje i rejestruje wywołania okienek
window.alert. - fps: Monitoruje liczbę klatek na sekundę (FPS) i zgłasza spadki płynności.
- gizmo: Zatrzymuje działanie, gdy liczba nieobsłużonych błędów JS przekroczy limit.