gremlins.js的使用

发布时间:2022-07-01 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了gremlins.js的使用脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

官方网址  https://gIThub.COM/marmelab/greMLins.js

一、介绍

gremlins.js是一个web端的mongkey工具,使用lavascript编写的,适用于node.js和浏览器,主要用于页面的可靠性测试

 

二、基本用法

const horde = gremlins.createHorde();
horde.unleash();
// gremlins will act randomly, at 10 ms interval, 1000 times

gremilns提供gremlin方法:如在页面到处点击、在表单输入数据、往各种方向滚动拉取窗口等

你可以在界面看到红色的踪迹,也可以在console界面看到这些日志gremlin:
gremlin formFiller input 5 in <input tyPE=​"number" name=​"age">​
gremlin formFiller input pzdoyzshh0k9@o8cpskdb73nmi.r7r in <input type=​"email" name=​"email">​
gremlin clicker    click at 1219 301
gremlin scroller   scroll to 100 25
它还包括mogwais,它可以监控应用活动,并记录活动日志,如下。fps监控每秒帧数mogwais:
fps :每帧低于10,会记录错误,10次后会停止测试;(它叫Gizmo)如果没有阻止,默认会在1分钟后停止

可以增加次数,使攻击持续更长时间

gremlin  .createHorde({
    strategies: [gremlins.strategies.allTogether({ nb: 10000 })],
}).unleash();
// gremlins will attack at 10 ms interval, 10,000 times

 

三、自定义gremlins.js

cremlins是一个JavaScript程序,如果它没有提供你想要的功能,你可以自己开发

// Create a new custom gremlin to blur an input randomly selected
function customGremlin({ LOGger, randomizer, window }) {
    // Code executed once at initialization
    logger.log('Input blur gremlin initialized');
    // Return a function that will be executed at each attack
    return function attack() {
        VAR inputs = document.querySelectorAll('input');
        var element = randomizer.pick(element);
        element.blur();
        window.alert('attack done');
    };
}

// Add it to your horde
horde.createHorde({
    species: [customGremlin],
});

 

四、自定义设置 gremlins和mogwais

 

通常gremlins和mogwais可以被加入horde

你可以选择你需要的功能加入配置

gremlins
    .createHorde({
        species: [
            gremlins.species.formFiller(),
            gremlins.species.clicker({
                clickTypes: ['click'],
            }),
            gremlins.species.toucher(),
        ],
    })
    .unleash();

如果你只是想在默认的gremlins增加你自己的gremlins,你可以使用 allSpecies

gremlins
    .createHorde({
        species: [...gremlins.allSpecies, customGremlin],
    })
    .unleash();

同上,需要添加mogwais 使用 ;mogwais 配置和 allMogwais()

gremlins.js包含以下的组件

clickerGremlin    单击文档可见区域的任意位置
toucherGremlin    触摸文档可见区域的任何位置
formFillerGremlin  通过输入数据、选择选项、单击复选框等来填写表单
scrollerGremlin   滚动视口以显示文档的另一部分
typerGremlin     在键盘上键入
alertMogwai      阻止对 alert() 的调用阻止测试
fpsMogwai       记录浏览器的每秒帧数 (FPS)
gizmoMogwai      可以阻止gremlins走得太远

 

gremlins.js提供的所有gremlins和mogwai都是可配置的,也就是说,您可以通过注入自定义配置来改变它们的工作方式。

例如,配置 clicker gremlin

const customClicker = gremlins.species.clicker({
    // which mouse event types will be triggered
    clickTypes: ['click'],
    // Click only if parent is has class @R_777_2187@-class
    canClick: (element) => element.parentElement.classname === 'test-class',
    // by default, the clicker gremlin shows its action by a red circle
    // overriding showAction() with an empty function makes the gremlin action invisible
    showAction: (x, y) => {},
});
gremlins.createHorde({
    species: [customClicker],
});

 

如果你想回放之前的操作,你需要给它设置一个操作码
// seed the randomizer
horde.createHorde({
    randomizer: new gremlins.Chance(1234);
});

 

默认情况下,小精灵将以均匀分布的随机顺序进行攻击,间隔10毫秒。这种攻击策略称为分发策略。您可以使用策略自定义对象对其进行自定义:

const distributionStrategy = gremlins.strategies.distribution({
    distribution: [0.3, 0.3, 0.3, 0.1], // the First three gremlins have more chances to be executed than the last
    delay: 50, // wait 50 ms between each action
});

 

请注意,如果使用默认的gremlins,则有五种类型的gremlins。上一个例子将给最后一个gremlins一个0值。停止攻击horde可以使用horde.stop()方法在紧急情况下停止攻击,Gizmo 可以在10次错误后停止,以对应用程序造成进一步损害,如果您不想继续攻击,也可以使用此方法。

脚本宝典总结

以上是脚本宝典为你收集整理的gremlins.js的使用全部内容,希望文章能够帮你解决gremlins.js的使用所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。