Всем привет!
В этой статье хотел бы рассказать о значительных изменениях во фреймворке GlaceJS
.
В первую очередь проведена значительная работа по преобразованию standalone
-фреймворка в плагинизированную систему. А разработка выведена в отдельную группу на гитхабе - GlaceJS · GitHub.
Из прежнего фреймворка выделено микро-ядро GitHub - glacejs/glace-core: Documentation https://glacejs.github.io/glace-core. Остальные фичи разбиты по плагинам:
-
GitHub - glacejs/glace-web: Documentation https://glacejs.github.io/glace-web - подключает
steps
для управления браузером,selenium
’ом и реализуетpage object pattern
-
GitHub - glacejs/glace-proxy: Documentation https://glacejs.github.io/glace-proxy - подключает
steps
для управленияhttp
&mitm
proxy
-сервером, а также различнымиmiddleware
-
GitHub - glacejs/glace-image: Documentation https://glacejs.github.io/glace-image/ - подключает
steps
для обработки изображений: скриншот браузера и экрана, сравнение изображений, поиск картинки в картинке. -
GitHub - glacejs/glace-video: Documentation https://glacejs.github.io/glace-video - подключает
steps
для видео захватаUI
-ных тестов. -
GitHub - glacejs/glace-xvfb: Documentation https://glacejs.github.io/glace-xvfb - подключает
steps
для запуска тестов вXvfb
виртуальном дисплее.
При этом каждый плагин может быть использован как сторонняя библиотека для других nodejs
приложений, и даже выступать как самостоятельное приложение. Н-р glace-proxy с одной стороны используется как плагин для glace-core
, а с другой - является самостоятельным консольным приложением для управления ответами от сервера к браузеру (н-р, в мануальном тестировании).
Само приложение glace-core
и плагины реализуют STEPS-протокол, который расширяет STEPS-архитектуру и описывает, как себя должны вести компоненты, чтобы взаимодействовать как одна система. Поскольку протокол двунаправленный, не только плагины, но и glace-core
и любое glace
-based приложение может само выступать как плагин для другого glace
-based приложения.
Все glace
-компоненты взаимодействуют через общий объект, который доступен из проекта glace-utils
, и при подключении плагин предоставляет steps
, help
, global objects
& fixtures
для glace-core
.
Также добавлен группирующий проект glace-js, который включает glace-core
и перечисленные плагины.
Каждый проект снабжен документацией:
- https://glacejs.github.io/glace-core
- GlaceJS Index
- GlaceJS Index
- GlaceJS Index
- GlaceJS Index
- GlaceJS Index
- GlaceJS Index
- GlaceJS Utils Index
А также основная функциональность покрыта интеграционными и юнит-тестами. В настоящее время расширяется тестовое покрытие и уточняется документация.