Skip to content
This repository has been archived by the owner on Feb 28, 2022. It is now read-only.
mwobensmith edited this page Oct 7, 2019 · 6 revisions

Intro

Welcome to Mozilla Iris! This is a free, open-source desktop automation tool that you can use to drive keyboard and mouse activity, and interact with patterns and text on-screen. It is conceptually similar to tools like Eggplant, Silk, and Sikuli (more on that later) so if you've ever used those before, hopefully you'll find this project intuitive.

It is largely written in Python 3, with an emphasis on ease-of-use. We provide a simple API and test case model that aims to appeal to programmers of all experience levels. Iris is a good project for novices who are just learning how to write automation tests.

History

Iris began in early 2018 as a tool to automate hundreds of manual test cases for Mozilla Firefox. We needed a solution that was robust, could adapt to UI and user flow changes, and enabled rapid test development. Once we finished our first iteration, we decided to rewrite it as a generic tool that could be used to automate anything on the desktop.

One of our big inspirations has been the previously-mentioned Sikuli. This open source project from MIT provided a simplified API and development tool that focused users on writing basic yet powerful programs while abstracting many technical details. We share the same goal, and went to the effort of implementing the majority of their APIs in Iris.

Details

Under the hood, we use different Python libraries for user interaction, as well as image comparison and text recognition. You can access these by writing what we call a "target" and providing a folder of tests. This target - with its tests - is actually a pytest plugin, so if you have experience in pytest, Iris natively supports this.

Basic technical model of Iris:

  • Iris API
  • pytest
    • Target
    • Tests
  • Control Center web UI

And the magic glue that ties it together.

We include a minimal target called "Sample" that does very little except run two tests. However, it is included to demonstrate how simple it is to write a target for Iris.

To get started in Iris, it is recommended that you fork the repo into your own GitHub profile and work locally. Documentation is still in progress. We will provide complete API docs, as well as guidelines for creating your own target. Please check back for updates.

Iris for Firefox

We have developed an extensive test suite for Mozilla Firefox that you can view here. It is a superset of this project and contains both target code and tests for Firefox, using the core moziris library from this project. Feel free to work with both, but these projects remain separate to keep the core Iris project generalized for all purposes.