Cheat Sheet速查表
跳转到主要内容

Gremlins.js 速查表

本文根据 Devhints / Gremlins.js 翻译。代码示例及版本范围沿用原文。原文标注更新日期:2017-10-22。

Gremlins 这是一个 JavaScript 库,通过提供随机的用户输入(点击、滚动等)来执行“猴子测试”(monkey-testing)。

示例

简单示例

<script src='https://cdn.jsdelivr.net/npm/gremlins/dist/gremlins.js'></script>
<script>
gremlins.createHorde().unleash()
</script>

自定义小怪物 (Gremlins)

gremlins.createHorde()
  .allGremlins()
  .gremlin(function () {
    document.activeElement.blur()
  })

按固定时间间隔执行指定的函数。

完整示例

gremlins.createHorde()
  .gremlin(gremlins.species.formFiller())
  .gremlin(gremlins.species.clicker()
    .clickTypes(['click'])
    .canClick(element => { ··· })
    .showAction((x, y) => { ··· }))
  .gremlin(gremlins.species.scroller())
  .mogwai(gremlins.mogwais.alert())
  .mogwai(gremlins.mogwais.fps())
  .mogwai(gremlins.mogwais.gizmo().maxErrors(2))
  .unleash()

默认情况下,所有小怪物 (Gremlins) 和莫格莱 (Mogwais) 种类都会被加入到“大军” (horde) 中。若要自定义小怪物,请按此方式操作。

参见: 指定小怪物

Hook 钩子

之前与之后

gremlins.createHorde()
  .before(function () {
    this.log('sync')
    console.profile('gremlins')
  })
  .after(function () {
    this.log('done')
    console.profileEnd()
  })

异步

gremlins.createHorde()
  .before(function (done) {
    setTimeout(() => {
      this.log('async')
      done()
    }, 500)
  })

参考资料