In the past, we encountered a lot of issues with the architecture of Sakuli. But first and foremost the inactive development of Sahi and its deep integration into Sakuli was one of the main reasons to rethink our technology stack.
So we decide to create a brand-new platform which allows users to test and monitor their systems and developers to extend the platform to their own needs.
We started to make a complete core code rewrite based on NodeJs and Typescript.
We also replaced the engines for web- and native checks:
while we try our best to keep the sakuli api backwards compatible.
Expect the full power of Sakuli, which means testing and monitoring systems either in web or native.
Use the full power of typescript, nodejs and their corresponding ecosystems.
Please refer to the Sakuli website and the Getting Started guide for installation instructions.
To start developing Sakuli 2 some setup on your workstation is required.
docker pull selenium/standalone-chrome-debugbefore you start developing.
In some situations, it is necessary to build/rebuild the sources (e.g. after changing branches) to create a consistent state in the project.
To do so, please use
npm run rebuild
During development, you might want to test the overall behavior of Sakuli from a developers' perspective. Therefore, we
packages/integration-tests module containing a Sakuli project using Sakuli at the current state of the
Build and execute Sakuli as it is in the current state of the repository:
npm run rebuild
This step has to be done after every code change so that the changes take place in the prepared Sakuli environment.
Long story short:
npm run update
As this is a multi-module project using lerna, dependency updates have to be
consistent for the whole project. To achieve this, we use the lerna-update-wizard
and added the npm script
npm run update.
We are using Prettier as an opinionated code formatter in combination with
husky for the pre-commit hook.
If you are using a node version manager, make sure to create
~/.huskyrc with the following content:
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"