Краткий справочник

Шпаргалка по обезьяньему тестированию в Gremlins.js

Краткое справочное руководство по Gremlins.js: автоматизированное хаос- и monkey-тестирование веб-приложений со кликерами, скроллерами и наблюдателями mogwais.

· Опубликовано

gremlins.js — библиотека для monkey-тестирования веб-приложений и 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();

Хуки жизненного цикла

Синхронные Before и After

gremlins.createHorde()
  .before(function () {
    this.log('Начало выполнения monkey-тестирования');
    console.profile('gremlins');
  })
  .after(function () {
    this.log('Monkey-тестирование завершено');
    console.profileEnd();
  })
  .unleash();

Асинхронные хуки

gremlins.createHorde()
  .before(function (done) {
    setTimeout(() => {
      this.log('Асинхронная настройка завершена');
      done();
    }, 500);
  })
  .unleash();

Справочник видов (Species)

Гремлины (Атакующие)

  • formFiller: заполняет формы (input, textarea, select) случайными валидными данными.
  • clicker: случайным образом кликает по активным элементам страницы.
  • scroller: прокручивает страницу в случайных направлениях.
  • typer: вводит случайные символы в поля ввода.
  • toucher: генерирует жесты касания на сенсорных экранах.

Могваи (Наблюдатели)

  • alert: перехватывает и логирует вызовы диалогов window.alert.
  • fps: отслеживает частоту кадров (FPS) и фиксирует просадки производительности.
  • gizmo: останавливает выполнение, если число необработанных JS-ошибок превышает лимит.

Ссылки и документация

Связанные темы