2012-12-21

Tips to Maximize Productivity - Sikuli



Sikuli is an open-source research project developed at MIT and is released under the MIT License.  It can be used for countless tasks, and scripts can be exported to an executable to simplify execution.  It is also Windows, Linux and Mac OS X compatible.
Sikuli is a technology that allows you to automate interacting with graphical user interfaces (GUI) using screenshots and keystrokes.  Developers can quickly write scripts, written in Python, which interact with any GUI including applications and web pages.  Sikuli is a heavier utility than AutoHotKey.  However it is much more powerful and serves a different purpose.  The feature that distinguishes Sikuli is interacting with GUIs based on screenshots.  Partial screenshots are added directly to your script as arguments to methods including click, double-click, find and exists.  When executed, the desired GUI interaction is achieved using image pattern matching with the screen.
Another nice thing about Sikuli is that it is an automation tool with scripts written in a full-blown programming language, Python.  This allows you to write complex scripts that support interacting in a flexible and adaptable manner based on external and unknown dependencies.  Scripts can interact with error messages, log results, and iterate a number of times that is unknown during programming and based on GUI elements.
Here are some examples of tasks that can be automated with Sikuli (website and/or application):

  • Boundary testing
  • Exhaustively testing user options
  • User Acceptance Testing (UAT)
  • Regression testing
  • Applying a base load
  • Automatically setting user preferences, changing configuration, opening applications, etc… when logging into a computer
  • Automate repetitive steps or tasks during development or debugging
    • Ex. Logging in and navigating to a specific area of a website or application
  • Any repetitive task