Giter Club home page Giter Club logo

sakuli's Introduction

sakuli-logo

branch build state docs state docker images state
master Build Status Documentation Status consol/sakuli-ubuntu-xfce

consol/sakuli-centos-xfce

consol/sakuli-ubuntu-xfce-java

consol/sakuli-centos-xfce-java
dev Build Status Documentation Status Documentation Status consol/sakuli-ubuntu-xfce:dev

consol/sakuli-centos-xfce:dev

consol/sakuli-ubuntu-xfce-java:dev

consol/sakuli-centos-xfce-java:dev
An end-to-end testing tool for web sites and common UIs with full Nagios integration

-> Download

TABLE OF CONTENTS

Introduction

Concept of Sakuli

Sakuli simulates user actions on graphical user interfaces (web, fat client, citrix, …), and provides the obtained information (runtime, result, screenshots) to third party (e.g. Nagios compatible monitoring) systems.

Sakuli depends on Java and should run on most OS: Windows, Linux (Ubuntu and OpenSUSE 13.2), MacOS or as Docker container

The Sakuli project brings together two Open-Source end-to-end testing tools which perfectly fit together: Sahi (http://www.sahi.co.in/) for web-based tests (by injecting JavaScript code into the browser), as well as the screenshot-based testing tool Sikuli (http://sikulix.com/), which allows the execution of keyboard and mouse actions on screen areas that have been defined by previously recorded screenshots and are recognized using the OpenCV engine.

Sakuli accesses both tools via its Java API and makes it possible to use them simultaneously. For example, web tests can be done very performant with Sahi (where a screenshot-based approach would be at best the second choice), whereas "off-DOM"-content can be catched with Sikuli. Whenever a web test comes into a situation which Sahi can't handle (e.g. a PIN dialogue for a smartcard login), use a Sikuli command. On the other hand, pure tests of fat client applications can be easily be setup by using only the Sikuli functions of Sakuli.

sakuli-api

History of Sakuli

First we only wanted to have the possibility to integrate Sahi web tests into Nagios. This was done with a simple VBscript wrapper (thus, only Windows...), which called Sahi with the correct parameters, and sent the results to Nagios via NSCA. This brought Sahi tests into the well-known format of OK/WARNING/CRITICAL states in Nagios, including performance data of the test runtimes, which could be feeded into PNP4Nagios.

But soon it became clear that there is more than only "web content" to test. Flash and Java Applets for example are content which appear in the Document Object Model (DOM) as a "black box", which can't be accessed by any web testing tool.

So we have looked around for a tool with a totally different approach to "remote control" the user interface: not by its content (like Sahi does with DOM), but by its appearance on the screen. Sikuli bridges this gap perfectly: it is able to control (click, type etc...) everything the user can do on the screen.

To have a Java application that uses the API of both tools on the one hand, and which uses a modern scripting language for the test definitions itself on the other hand (JavaScript), was the motivation to write Sakuli.

To avoid misunderstandings: "Sakuli" is a portmanteau, formed from the names of the tools "Sahi" and "Sikuli". Whenever we speak of "Sakuli", we are talking about everything that is written about these both tools.

Why Sakuli?

There are already a variety of free end2end/automation tools on the market (Sahi, Selenium, WebInject, Sikuli, CasperJS, AutoIT , ...) , but - especially from the perspective of Nagios-based monitoring - each of them has at least one of the following drawbacks:

  • Too specifically: pure web testing tools can only deal with pure web content. Applets, Flash, dialogues generated by OS, browser dialogues etc. are invisible and a insurmountable hurdle for such tools.
  • Too generic: screen-based testing tools "see" everything the user sees. They are the best choice for GUI tests, but inappropriate for web tests, because each browser type has its own understanding of how to render and display a web page.
  • Far from reality: There are tools to test web applications on protocol level - but to know whether a web application is working or not requires a test from the user's perspective.
  • Unflexible: Hardly one of these tools brings the ability to integrate into other systems (like Nagios).

Resources

Example projects on GitHub

Demo virtual machine

d

Use this demo appliance to see all the features of Sakuli in action. sakulidemo contains OMD/Nagios with two Sakuli checks.

User accounts: root/root and sakuli/sakuli.

It is recommended to fix the VM's resolution to 1024x768px for this demo. In general Sakuli does not relies on any resolution limitation.

Don't use this in production.

Media

YouTube

Monitoring Minutes

Episode 9 of the ConSol Monitoring Minutes shows the main features of Sakuli in 15 minutes. The machine used in this video is an instance of our demo appliance (see above).

End2End Monitoring mit Sakuli und Nagios - ConSol Monitoring Minutes 9

youtube e2e monitoring

End-2-End-Testing

Sakuli End-2-End-Testing - Lightning Talk - Agile Testing Meetup (June 2015)

youtube e2e testing

Slides

2017: Testing - Selenium? Rich-Clients? Containers? (Tobias Schneck)

2017: Containerized End-2-End-Testing - Agile Testing Meetup Munich (Tobias Schneck)

2016: Containerized End-2-End-Testing (German) - JUG Saxony Days Dresden (Tobias Schneck)

2016: Containerized End-2-End-Testing - ContainerDays 2016 Hamburg (Tobias Schneck)

2014: End-to-end testing for web sites and common UIs with full Nagios integration (Tobias Schneck)

Publications

03/2017: JAXenter: End-2-End-Testing und -Monitoring im Container-Zeitalter (Tobias Schneck)

01/2017: Java aktuell: Automatisiertes Testen in Zeiten von Microservices (Christoph Deppisch / Tobias Schneck)

10/2016: Informatik Aktuell: Software-Test im Container: So können Sie Graphical User Interfaces mit Docker und Sakuli testen (Tobias Schneck)

10/2016: ConSol Labs: Containerized UI-Tests in Java with Sakuli and Docker (Tobias Schneck)

10/2016: ConSol Labs: Sakuli EndToEnd Tests mit Android (Philip Griesbacher)

8/2016: heise Developer: Testautomatisierung in Zeiten von Continuous Delivery (Christoph Deppisch / Tobias Schneck)

8/2016: Pressemitteilung: Testautomatisierung darf nicht bei Unit-Tests Halt machen

2/2016: Success Story: pbb Deutsche Pfandbriefbank: Monitoring with Sakuli

2/2016: IT Administrator: "Den Anwender simuliert" (Simon Meggle)

5/2015: heise Developer: End-to-End Application Monitoring mit Sakuli

2/2015: IT Administrator: End2End-Monitoring mit dem Open Source-Tool Sakuli (Simon Meggle)

Events

April 27, 2017: Stuttgarter Test-Tage, Stuttgart: Testing - Selenium? Rich-Clients? Containers? (Tobias Schneck)

January 30 - February 3, 2017: OOP 2017, Munich (Tobias Schneck)

January 19, 2017: Agile Testing Meetup - Testen im Zeitalter von Containern, Munich (Tobias Schneck)


November 16, 2016: ContainerConf 2016, Mannheim (Tobias Schneck)

November 3, 2016: Software QS-Tag 2016, Nuremberg (Tobias Schneck)

September 30, 2016: JUG Saxony Day, Dresden (Tobias Schneck)

August 31, 2016: Herbstcampus 2016, Nuremberg (Tobias Schneck)

July 25, 2016: JUG München (Tobias Schneck)

June 27, 2016 Meetup during the ContainerDays, Hamburg (Tobias Schneck)

March 8-10, 2016: JavaLand, Brühl (Tobias Schneck)

March 3, 2016: Allianz Arena München (Simon Meggle)

March 1, 2016: Icinga Camp, Berlin (Simon Meggle)

January 26, 2016: Linux-Stamtisch München (Tobias Schneck)


October 24, 2015: Ubucon Berlin (Simon Meggle)

October 13, 2015: Testing & Integration Day, Allianz Arena Munich (Tobias Schneck)

June 22, 2015: Agile Testing Munich (Tobias Schneck)

May 14, 2015: OpenTechSummit (Simon Meggle)

March 28, 2015: LinuxTag Augsburg (Simon Meggle)

Changelog

Change Log

Help

In case you have any questions or requests for help, feel free to get in contact with us! The Sakuli team members are reachable on the email address [email protected].

The guys behind Sakuli:

**ConSol Software GmbH**
*Franziskanerstr. 38, D-81669 München*
*Tel. +49-89-45841-100, Fax +49-89-45841-111*
*Homepage: http://www.consol.de E-Mail: [[email protected]]([email protected])*

Thanks

Contributors

At this point we want to thank all contributors, which helped to move this great project by submitting code, writing documentation, or adapting other tools to play well together with Sakuli.

  • Tobias Schneck - Sakuli Team / Project Leader, Core Development
  • Simon Meggle - Sakuli Team / Project Leader, Monitoring Integration
  • Christoph Deppisch - Sakuli Team / Core Development
  • Lukas Höfer - Sakuli Team / Consultant
  • Sven Nierlein
  • Philip Griesbacher - Sakuli Go Starter
  • Thomas Rothenbacher

(did we forget you? Please poke us):

Valued supporters

Very special thanks to all customers which always nourish this project with new ideas and impulses and make it possible in the first place to give it back to the community as Open Source Software. Thumbs up!

  • LIDL Stiftung & Co. KG
  • Deutsche Pfandbriefbank AG
  • Siemens AG, Global Services Information Technology

sakuli's People

Contributors

trothenbacher avatar christophd avatar c-kr avatar griesbacher avatar lhoe avatar sni avatar rhuss avatar sgbeal avatar martku avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.