Arjuna - A Modern Web UI Test Automation Framework
Arjuna is a Python based test automation framework developed by Rahul Verma. It is an open source, Apache Licensed software. Rahul has implemented smaller variants of features in Arjuna across frameworks and organizations, or given advice around it. However, Arjuna being a generic library has the most complete implementation of his ideas, away from project specific contexts and constraints.
Selenium WebDriver has grown to become the default choice for browser automation for most test engineers either directly or as the underlying engine in many tools. Selenium provides building blocks for browser automation. Direct test automation code of professional quality needs a lot of thought and verbose code if directly written with Selenium. On top of this, any web UI test automation framework in a team grows over time to encapsulate test engine needs. A practical observation is that any mature web test automation framework has possibly 10-15% Selenium related code and rest is about reading of files, hooks, configuration handling, business functions and so on. On the same lines Page Object Model in its original form turns out to be too basic for professional usage needs.
Arjuna encapsulates Selenium completely and has its own DSL. It similarly encapsulates pytest and many of its plugins along with file readers, XML/JSON parsers and so on. It uses Python’s advanced coding constructs to provide a very flexible and intuitive Tester Programming Interface (TPI). This presentation discusses the advanced Gui Abstraction Model supported by Arjuna for Web UI Automation.
It is a step by step presentation where Rahul takes raw Selenium code and discusses specific problems/challenges (Python is used as the code medium as framework is in Python as well). Then step by step he takes it through transitioning while using Arjuna facilities.
To know more about Arjuna, you can check the online documentation of Arjuna at https://arjuna-taf.readthedocs.io
Rahul Verma is an Indian testing entrepreneur and an awarded thought leader for his contributions to the testing community. He is Head of Test Automation at trendig GmbH and Founder of Test Mile and Community Proxy for STeP-IN Forum. He is the creator of Arjuna – a free, open source, Python based modern test automation framework. He has contributed to creation and review of various certifications. His software testing experience includes building test automation frameworks in Python and Java, web security, white box testing and web performance testing. His research work focuses on Object-oriented design patterns applied to test automation and extending them into general purpose models. He has presented, published articles and educated thousands of testers in the said areas. His testing ideas and work are deeply influenced by his exposure and interest in poetry and spirituality.