Обновить

Комментарии 13

Люблю подобный нейминг :)
Нужно добавить опцию bgm, при включении которой на фоне тестов будет играть это — pleer.com/tracks/8023316PMEO
в пещере горного короля. и увеличивать скорость и количество нажатий
Вот так уедешь в отпуск, а они напишут Войну и мир.
Иногда наталкиваюсь на некоторые произведения при чтении которых складывается впечатление, что гремлины уже давно заняты сочинительством.
Главное, чтобы эти гремлины не захватили ваше приложение.
А что с переходами между страницами? У меня есть сайт, который косит под веб-приложение, но возможны выходы (и переходы внутри) по href. Библиотека под такое заточена? Лог ошибок единый или сбросится при покидании страницы (имеется в виду имплементация по умолчанию)?
У себя решил эту проблему переопределением метода, который отвечает за переходы по страницам, и теперь в тестовом энвайроменте редирект в принципе не возможен. По умолчанию библиотека под это не заточена, и лог сбрасывается перед каждым запуском тестов (в вашем случае при переходам по страницам).

Как решение могу предложить переопределить объект логера, и сохранять лог например в localStorage, тогда при завершении тестов, сможете лог достать оттуда.

Второй вариант — запускать тесты в фантоме с помощью grunt-gremlins, где есть доступ к файловой системе. Сейчас логирования в файл еще нет, но появится в ближайшее время, так же в планах удобный менеджмент логирования для разных подзадач.
Спасибо за ответ, попробую использовать скрипт. Наверное, сначала тупо погоняю одностраничные приложения, из которых состоит сайт, запретив переход по href в тестовом окружении, как Вы и написали.
Поясните пожалуйста, каким образом генерируется дефолтное событие клика на элементе? Или библиотека парсит мой код, вытаскивает все функции и целенаправленно вызывает callback`и?
Библиотка не знает ничего о вашем коде, событие клика генерируется слчайным образом, с помощью объекта, полученного вызовом document.createEvent("MouseEvents"). Это значит, что эффект будет примерно тот же, что и от случайного клика (или dblclick, mousedown и т.д.) реальной мышью пользователя в какой либо участок экрана.

Вы можете сконфигурировать этого гремлина, указав в какую именно область экрана гремлин должен кликать (метод positionSelector), с какими именно элементами он может работать (canClick) и какие типы эвентов он должен генерировать (см. по умолчанию)
На самом деле document.createEvent(«MouseEvents») не всегда сможет эмулировать действия пользователя. Например, клик внутри ифрейма не прокатит (если у вас, конечно, нет доступа к его document). Или вам такие образом не обмануть мобильный браузер, чтобы автоматом запустить, к примеру, HTML5 video. Думаю, что есть еще достаточное количество ситуаций, когда document.createEvent(«MouseEvents») будет бессилен эмулировать действия человека.
Но, тем не менее, мне эта свора нравится.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации