пятница, 20 декабря 2013 г.

Node.js. Легкий стресс-тест через Phanos.

На волне набирающей популярности ноды. Решил взяться за написание маленького паучка, который бы имитировал реального пользователя. И гулял по сайту не аки бот, а как нормальный человек. Благо в инфраструктуре ноды добра для написания такого чудного существа достаточно. Основа паука стал phantom.js, это "обезгалвленный" движек Webkit, другими словами - это браузер лишенный UI.

Итак, Phanos, в первую очередь мне он был нужен для одной важной задачи, - сымитировать набег пользователей на сайт в течении 2х недель! Самое интересное что для сайт этот был single page application. Т.е. это полноценное web-приложение с кучей асинхроных запросов и всякой джэесины :). Которую как мы понимаем не в состоянии отработать jMeter ни тем более Apache Banchmark. А так как интерес к node.js у меня сейчас в обостренной форме, хотя как мы можем заметить, в рунете заметен спад заинтересованности. То собственно и был рожден сей паучек. Еще одна особенность сайта - это то что он также реализован на node.js и эта штука вся крутится на heroku, то вся статитка также отдается через аппликуху, то так же важно грузить и все остальное, т.е. картинки, стили и собственно Js.

Phanos, его особенности это:

  • имитация посещения пользователями длительное время, т.е. вы можете оставить тулзу работать в течении дня, недели, месяца, да хоть года, указать количество пользователей и вперед.
  • полностью отрабатывает страницы с ajax js
  • легко устанавливается и работает под Linux и Windows, теоретически должен работать и на Mac.

Для начала работы с Phanos необходимо установить node.js. А затем выполнить команду, Ubuntu:

$ sudo npm install -g phanos

для Windows:

$ npm install -g phanos

В процесе установки будет загружен phantomjs под вашу платформу. Ниже приведу пару примеров как пользоваться phanos.

$ phanos -u = http://www.google.com -w 10 -t 3600

Команда выше запустить 10 волкеров (пользователей) "гулять" по гугл в течении 1 часа (3600 сек.). Как лего догадаться то -u это адрес страницы, -w это количество пользователей, -t время работы скрипта, здесь час.

$ phanos -u = http://www.google.com -w 10

Тут просто 10 волкеров в течении 30 сек. будут шнурять по сайту.

На подходе режим работы "наплыв", заключаться будет в том чтобы сэмитировать "сарафанное" радио, "хабраэффект", в общем плавное нелинейное увеличение пользователей. Так же будет возможность указать несколько адресов сразу. Небольшой отчетик о сделанных запросах и их времени. Автоматическое "гуляние" по сайту, без необходимости перечисления всех страниц, которые надо грузить.

Тулза открыта. Доп. информация по установке, параметрам и использованию на github все найденные баги/фичи если не сложно оставляем там же.


P.S.: Phanos - это симбиоз от слов Phantom и stress, а не то что могут подумать некоторые изощреные умы =)