Sakuli E2E Testing & Monitoring Documentation
Version: Open Source
Base URL: https://sakuli.io
Overview
Sakuli is an open platform for UI testing, End-to-End (E2E) monitoring, and Robotic Process Automation (RPA). It allows simulation of real user interactions on both web and native applications, forwarding results to monitoring systems like Prometheus, Icinga, or checkmk.
Authentication
No authentication is required for using Sakuli locally. Enterprise monitoring integration may require configuration (API tokens, system credentials).
Main Features
UI Testing
Automate regression, approval, and functional tests for web and native applications.
Capabilities:
Cross-browser support (Chrome, Firefox).
Simplified Selenium DSL (no more StaleElement errors).
DOM-based and screenshot-based interaction.
Drag & Drop, clipboard usage, auto-scroll, keyboard & mouse simulation.
Example Script:
const { By } = require("sakuli/selenium");
(async () => {
const driver = await startBrowser();
await driver.get("https://example.com");
const element = await driver.findElement(By.css(".login"));
await element.click();
console.log("Login button clicked!");
})();
End-to-End Monitoring
Integrate Sakuli tests with monitoring systems to detect performance or availability issues.
Supported Forwarders:
Prometheus
Icinga2 / checkmk
OMD (Nagios, Gearman)
ElasticSearch (coming soon)
SQL Databases (coming soon)
Example Monitoring Output (JSON):
{
"testCase": "Login Workflow",
"status": "ERROR",
"executionTime": 12.8,
"message": "Timeout on login screen",
"timestamp": "2025-08-27T10:42:00Z"
}
Robotic Process Automation (RPA)
Automate workflows and manual tasks across desktop and web apps.
Example Use Case:
Open Windows VM
Launch ticket system
Copy ticket ID to Excel
Validate customer email
Containerized Execution
Sakuli offers a Docker image for reproducible and scalable test runs.
Default Container Includes:
Ubuntu OS + OpenBox desktop
Node.js runtime
Firefox & Chromium browsers
VNC & noVNC for live debugging
Benefits:
Same clean environment on each run
Parallel test execution
Integration with Kubernetes/OpenShift
Response Codes
When integrated with monitoring APIs, Sakuli returns standard statuses:
200 OK: Test executed successfully.
400 Bad Request: Invalid test configuration.
408 Timeout: Application response too slow.
500 Internal Error: Test execution failure.
Example Error Response (JSON):
{
"testCase": "Checkout Process",
"status": "FAILED",
"message": "Element #submit not found",
"error_code": "NoSuchElementError"
}
Runs On
Windows 10+
macOS 10.10+
Ubuntu 16.04+
OpenShift / Kubernetes
AWS, Azure, Google Cloud
Additional References
Official Website: https://sakuli.io
Documentation: https://sakuli.io/docs