Το gremlins.js είναι μια βιβλιοθήκη monkey testing για web apps και Node.js που προσομοιώνει τυχαίες αλληλεπιδράσεις χρηστών.
Βασική Χρήση
Εκκίνηση μέσω CDN
<script src="https://cdn.jsdelivr.net/npm/gremlins/dist/gremlins.js"></script>
<script>
gremlins.createHorde().unleash();
</script>
Προσαρμογή της Ορδής (Horde)
gremlins.createHorde()
.allGremlins()
.gremlin(function () {
// Προσαρμοσμένη ενέργεια που εκτελείται σε τακτά χρονικά διαστήματα
document.activeElement.blur();
})
.unleash();
Πλήρες Παράδειγμα Ρύθμισης
gremlins.createHorde()
.gremlin(gremlins.species.formFiller())
.gremlin(gremlins.species.clicker()
.clickTypes(['click'])
.canClick(element => element.tagName !== 'A')
.showAction((x, y) => { /* Οπτικός δείκτης κλικ */ }))
.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)
Σύγχρονα Before και After
gremlins.createHorde()
.before(function () {
this.log('Έναρξη εκτέλεσης monkey test');
console.profile('gremlins');
})
.after(function () {
this.log('Το monkey test ολοκληρώθηκε');
console.profileEnd();
})
.unleash();
Ασύγχρονα Hooks
gremlins.createHorde()
.before(function (done) {
setTimeout(() => {
this.log('Η ασύγχρονη ρύθμιση ολοκληρώθηκε');
done();
}, 500);
})
.unleash();
Αναφορά Ειδών (Species Reference)
Gremlins (Επιτιθέμενοι)
- formFiller: Συμπληρώνει πεδία εισαγωγής, textarea και επιλογές με τυχαία έγκυρα δεδομένα.
- clicker: Κάνει τυχαία κλικ σε ενεργά στοιχεία του viewport.
- scroller: Κάνει κύλιση στο παράθυρο σε τυχαίες κατευθύνσεις.
- typer: Πληκτρολογεί τυχαία πλήκτρα σε εστιασμένα πεδία.
- toucher: Δημιουργεί χειρονομίες αφής σε οθόνες αφής.
Mogwais (Φύλακες)
- alert: Παγιδεύει και καταγράφει κλήσεις
window.alert. - fps: Παρακολουθεί το ρυθμό καρέ (FPS) και καταγράφει πτώσεις.
- gizmo: Διακόπτει την εκτέλεση όταν τα μη διαχειριζόμενα σφάλματα υπερβούν το όριο.