Wednesday, January 14, 2015

SikuliX : What is SikuliX?

Now a days automated testing is becoming popular as it is decreasing time for manual testing and also reduce the time for regular testing and repetitive testing. Among them UI automation testing is important as it is playing the real user activity over the UI. There are lots of UI testing tools in the market both open source and commercial. All of them have some pros and corns. Most of them follow the basic rule by detecting the UI components using UI’s internal structure. But some of the cases UI internal structures are so complex and dynamic that our tools cannot detect it  properly and even at run times it can detect the element and sometimes not. We can overcome this problem by using a tool that can detect a component by using its image not its internal structure. SikuliX is such a tool.

SikuliX can automate anything on the screen of the desktop computer running Windows, Mac or Linux/Unix by using  image recognition algorithm to identify the elements and do operation on the element.

Things to know about SikuliX

  • It uses image recognition powered by OpenCV to identify and control components.
  • It is useful where UI’s internal or source code cannot be accessed easily.
  • SikuliX has its own IDE.
  • It supports Python language level 2.7 (supported by Jython) and Ruby language level 1.9 and 2.0 (supported by JRuby).
  • It can be user with Java or Java aware programming/scripting language (Jython, JRuby, Scala, Clojure, ….).
  • It has its own built in image capturing tool but it also support image captured by other third party tools.
  • It can run mouse and keyboard to interact with the identified GUI elements.
  • Any types of application such as web, desktop or mobile platforms can be automated and tested through Sikuli.
  • It is not available at mobile device but it can be used on respective emulators on desktop computers or based on VNC solutions.
  • It is available for multi monitor environments and even for remote systems but it has some restrictions.
  • It can be used to search text in images by using OCR. This feature is powered by Tesseract.
  • It is a Java application and it works on Windows XP+, Mac 10.6+ and most Linux/Unix systems. For Windows, Mac and Ubuntu 12.04+ it is complete and should normally work out of the box. For other Linux/Unix systems there usually are a few prerequisites to be setup.

 

Where SikuliX can be used

  • SikuliX can be used to automate a repetitive tasks.
  • It can be used to automate task or desktop/web application for daily use.
  • To play games.
  • To administer IT systems and networks in office.
  • If there is not enough tools to automate an application then SikuliX can be a choice.
  • To test application or web that is under development.
  • It can be used to create usage documentation or training material, that run live on the addressed application or web page.
  • It can be used in an existing script used by other tools where it can automate some critical feature easily by enhancing the approach and improving efficiency and outcome.

 

Different ways to use SikuliX

There are different ways that SikuliX can be used. Using SikuliX means What You See Is What You Script.

  • By using SikuliX IDE, it can be automated the workflow by capturing and searching UI element image and doing some operation on that element with mouse and keyboard.
  • By using IDE, it can edit and run the existing script
  • Script can be run through command line
  • SikuliX can be used to write customizable automated script with the help of programming in Java or Java based programming language like Jython, JRuby, Scala, Clojure…etc.
  • In that case, script can be written by integrating the SikuliX feature library with Eclipse/NetBeans IDE and writing the script with Java or Java based language using the available API of SikuliX.
  • It can be scripted by using .Net based language like C#.

That’s all for now about SikuliX.

In my next post I will show how to install and run SikuliX, write automated test script using SikuliX IDE and so on.

Till then …Happy Automated testing using the power of image detection!!!