Gremlins.js

24
Gremlins.js Onikiienko Bogdan 2GIS-Kiev Видео доклада ТУТ
  • Upload

    -
  • Category

    Internet

  • view

    167
  • download

    1

description

Видео доклада по ссылке https://www.youtube.com/watch?v=zvZmBO1sRFE

Transcript of Gremlins.js

Page 1: Gremlins.js

Gremlins.js

Onikiienko Bogdan2GIS-Kiev

Видео доклада ТУТ

Page 2: Gremlins.js

Monkey testing(Fuzzy)

security+blackbox+stress

Page 3: Gremlins.js

Нанимать. У.

Page 4: Gremlins.js

Что делать?

Page 5: Gremlins.js

Автоматизация. У.

Page 6: Gremlins.js

Android Monkey program

Page 7: Gremlins.js

Прочие

● Monkey Fuzz testing● JBroFuzz

Page 8: Gremlins.js

Viva Gremlins!

- javascript- desktop- server- mobile- NO selenium- contributing

Page 9: Gremlins.js

Для начала

var horde = gremlins.createHorde()

horde.unleash();

// каждые 10 ms, 1000 раз

Page 10: Gremlins.js

Сущности

Gremlin

Mogwai

Gizmo

Page 11: Gremlins.js

Что такое гремлин?

var evt = document.createEvent("MouseEvents");

var clickType = config.randomizer.pick(config.clickTypes);

evt.initMouseEvent(clickType...);

targetElement.dispatchEvent(evt);

Page 12: Gremlins.js

На что влияем

● clickTypes(['click', 'mouseover']); // the mouse event

types to trigger

● positionSelector(function() { // find a random pair of

coordinates to click });

● showAction(function(x, y) { // show the gremlin

activity on screen });

● canClick(function(element) { return true }); // to

limit where the gremlin can click

● maxNbTries(5); // How many times the gremlin must look

for a clickable element before quitting

● logger(loggerObject); // inject a logger

● randomizer(randomizerObject); // inject a randomizer

Page 14: Gremlins.js

Свой гремлин

// новый гремлин для blur на активном элементе

horde.gremlin(function() {

document.activeElement.blur();

});

Page 15: Gremlins.js

Кто такие Mogwai и Gizmo- alertMogwaiif (config.watchEvents.indexOf('confirm'))

- fpsMogwaiif (fps < 10)

- gizmoMogwai

if (nbErrors == config.maxErrors){horde.stop();}

Page 16: Gremlins.js

До выпуска, после выпускаhorde.before(function startProfiler() {

console.profile('gremlins');

});

horde.after(function stopProfiler() {

console.profileEnd();

});

Page 17: Gremlins.js

Стратегииhorde.strategy(gremlins.strategies

.delay(50)

.distribution([0.3, 0.3, 0.3, 0.1])

.nb(1000)

.randomizer(randomizerObject))

Page 18: Gremlins.js

Выводvar customLogger = {

log: function(msg) { /* .. */ },

info: function(msg) { /* .. */ },

warn: function(msg) { /* .. */ },

error: function(msg) { /* .. */ }

};

horde.logger(customLogger);

или...

Page 19: Gremlins.js

Minilogvar log = Minilog('2GIS')Minilog.enable();horde.logger(customLogger);

Page 20: Gremlins.js

Давайте пробовать!

Page 22: Gremlins.js

grunt-gremlins

Page 24: Gremlins.js

Всё