Why Sakuli 2?
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 brandnew platform which allows users to test and monitor their systems and developers to extend the platform to their own needs.
What is the new Stack of Sakuli2?
We started to make a complete core code rewrite based on NodeJs and Typescript.
- Node.js because we wanted the same language for our platform and testcases (Sakuli was written in Java while testcases where executed in a modified version of RhinoJs-Engine)
- Typescript to provide clear interfaces for third-party devs.
We also replaced the engines for web- and native checks:
- Sahi is replaced by Webdriver / Selenium
- Sikuli is replaced by nut.js
while we try our best to keep the sakuli api backwards compatible.
What can I expect from Sakuli2...
...as a user / tester
Expect the full power of Sakuli, which means testing and monitoring systems either in web or native.
...as a developer
Use the full power of typescript, nodejs and their corresponding ecosystems.
npm i @sakuli/cli
yarn add @sakuli/cli
will install Sakuli and its required dependencies.
One of Sakulis core components, nut.js requires OpenCV. The installation process comes with a pre-built version of OpenCV for the respective target platform (via opencv4nodejs). It's not required to manually build OpenCV, but the installation process has some 3rd-party dependencies.
Please make sure to also install all required peer dependencies:
The installation process is an open issue and will be enhanced in the near future, so using Sakuli becomes even more enjoyable!
To start developing Sakuli 2 some setup on your workstation is required.
- Make sure to have docker installed and started
- Make sure to execute
docker pull selenium/standalone-chrome-debugbefore you start developing.
Long story short:
npm run update