Welcome to Arjuna - The Framework for Professional Coded Testing


Arjuna is a Python based test automation framework developed by Rahul Verma.

It is an open source, Apache Licensed software: Arjuna on GitHub.

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.

Arjuna provides its own markup over pytest as its underlying test engine. If you like, you can make use of Arjuna with any other test engine or custom frameworks as well.

You’d need Python 3.5+ to make use of Arjuna.

Note: On Linux, the built-in Python3 build has issues with the Python’s built-in enum module which is heavily used in Arjuna. One alternative is to install ActiveState Python on linux. Advanced users can go for installing a custom Python build.

You can find a lot of example code for using Arjuna in Arjex project on GitHub.

Tester’s Guide

Tester Programming Interface (TPI) Reference

All classes, functions, enums and exceptions that are supposed to be directly used by a test author are a part of Arjuna’s Tester Programming Interface (TPI).

This interface is fully encapsulated in arjuna.tpi package.

You can either do a fully qualified import for a public name, for example:

from arjuna.tpi.log import log_info

or an easy, simple import that imports all public TPI names from Arjuna:

from arjuna import *

Following links direct you to documentation for all public names:

Data Generation and Data Entities

Web GUI Automation

Reporting Protocols

Objects In Arjuna Hooks

Indices and tables


This package is authored and maintained by:

with the help of patches submitted by these contributors.

Third Party Libraries

Arjuna makes use of the following third party libraries:

  • lxml
  • requests
  • requests-toolbelt
  • selenium
  • webdriver_manager
  • xlrd
  • xlwt
  • pyparsing
  • pyhocon
  • pytest
  • pytest-html
  • pytest-dependency
  • PyYAML
  • mimesis
  • jsonpath-rw
  • jsonpath-rw-ext
  • genson
  • jsonschema
  • Pallets-Sphinx-Themes
  • oauthlib
  • requests_oauthlib
  • bs4
  • browsermob-proxy
  • haralyzer