? QA Design Gurus: What is SikuliX

Mar 25, 2016

What is SikuliX

What is SikuliX?
Sikuli is a GUI Automation tool which works on Visual Image Match method. Simply saying we can automate anything that we see on the screen.
Besides locating images on a screen SikuliX can run the mouse and the keyboard to interact with the identified GUI elements. This is available for multi monitor environments and even for remote systems with some restrictions.

How Sikuli Works
Sikuli Script is a Jython and Java library that automates GUI interaction using image patterns to direct keyboard/mouse events. The core of Sikuli Script is a Java library that consists of two parts: java.awt.Robot, which delivers keyboard and mouse events to appropriate locations, and a C++ engine based on OpenCV, which searches given image patterns on the screen. The C++ engine is connected to Java via JNI and needs to be compiled for each platform. On top of the Java library, a thin Jython layer is provided for end-users as a set of simple and clear commands. Therefore, it should be easy to add more thin layers for other languages running on JVM, e.g. JRuby, Scala, Javascript, etc.





What we can automate?
Simply saying we can automate anything that we see on the screen.
1. Windows based application
2. Flash objects (such as automating Flash Games)
3. Adobe Audio/Video Player.

Advantages:
1. Sikulix is Open Source
2. Sikuli IDE gives enough API's to interact with desktop based applications. Adding on to that we can use most of the API's of python scripting as well. Which totally depends upon how we code basically.
3. Picture recognition in case of Sikuli is pretty much accurate
4. Useful if the application demands so much of interaction from the user.

Drawbacks:
1. Dedicate machine should be provided (When Sikuli scrpits are running, user cannot use the Same machine for doing other things because mouse/keyboard events will effect the image verification.)
2. Overhead of taking images
3. Requires real screen.

Prerequisite:
Valid Java installation

Supported Operating Systems:
Windows XP and later including Windows 8 and 10 (32-Bit or 64-Bit)
Mac OSX 10.6 and later including 10.10 and 10.11 (64-Bit only)
Linux/Unix systems depending on the availability of the prerequisites (32-Bit or 64-Bit)

Mobile support:
Though SikuliX is currently not available on any mobile device, it can be used with the respective emulators on a desktop computer or based on VNC solutions.

Supported Scripting languages:
Python (language level 2.7) supported by the Jython interpreter.
Ruby (language level 1.9/2.0) supported by the JRuby interpreter.
JavaScript supported by the Java builtin scripting engine (Java 7: Rhino, Java 8: Nashorn).

Integration with current automation tools
Selenium Webdriver
Robot framework

Useful links
http://www.sikulix.com/
https://launchpad.net/sikuli/+download
http://www.sikulix.com/quickstart.html

Other Image based automation tools
Eggplant, RoutineBot, Ranorex


No comments:

Post a Comment