Skip to main content

Arjuna

Arjuna is a Python based test automation framework developed by Rahul Verma (www.rahulverma.net). Rahul has implemented smaller variants of features in Arjuna across frameworks and organizations, or given advise around it. However Arjuna being a generic library has the most complete implementation of his ideas, away from project specific contexts and constraints.

Arjuna uses pytest as its recommended test engine. Arjuna also provides its markup for some common use cases on top of pytest. 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.

Tutorial

1. Arjuna Installation

  1. Download and install latest Python (3.5+) from https://python.org
    • If you are insterested to learn python Following are links for tutorials and docs.
  2. Confirm the python version installed by running the command python --version. If expected version in not shown, fix this by looking into PATH variables and/or to see whether you have multiple versions of Python installed.
  3. Install Arjuna using the following command
    • pip install arjuna

You can find the example code in arjex project.

2. Arjuna - Getting Started

  1. Project Structure
  2. Writing Your First Test

3. Arjuna's Configuration System

  1. Configuration
  2. project.conf - Project Level Configuration
  3. Configuration Builder - Creating Custom Configurations
  4. Defining and Handling User Options
  5. Using .conf files with Configuration Builder
  6. The Magic C Function
  7. Environments and Dynamic Configurations

4. Data Driven Testing and Contextual Data References

  1. Data Driven Testing
  2. Driving with Single or Multiple Data Records
  3. Driving with Data Functions
  4. Driving with Data Classes
  5. Driving with Data Files
  6. Driving with Multiple Data Sources
  7. Contextual Data References and the Magic R Function
  8. Excel Data References

5. Localization of Strings

  1. Excel Localizer and The Magic L Function
  2. Json Localizer
  3. Strict vs Non-Strict Mode

6. Basic Web UI Automation

  1. Getting Started with WebApp
  2. Gui Element Locators - Using ID, Name, Tag, Class, Link Text, Partial Link Text
  3. Gui Element Locators - Using XPath
  4. Gui Element Locators - Using CSS Selectors
  5. Gui Element Locators - Using Arjuna's Locator Extensions
  6. Basic Interactions with a Gui Element
  7. Concise Basic Interactions with a Gui Element

7. Basics of Gui Namespace (GNS) - Externalizing Identifiers

  1. What is Gui Namespace (GNS)
  2. Externalizing ID, Name, Tag, Class, Link Text, Partial Link Text
  3. Externalizing XPath
  4. Externalizing CSS Selectors
  5. Externalizing Arjuna's Locator Extensions

8. Advanced Web UI Automation

  1. Matching Multiple Elements as GuiMultiElement
  2. Handling Default HTML Select
  3. Handling Default HTML Radio Group
  4. Finding Nested Elements
  5. Alternative and Dynamic Identifiers
  6. Executing JavaScript
  7. Alerts, Windows, Frames
  8. Configuraing Interactions with GuiInteractionConfig
  9. Handling Custom DropDowns
  10. Retrieving Source code with GuiSource

9. Advanced Gui Namespace Constructs

  1. Element Templates - Multi Element, Dropdown and Radio Group
  2. Creating Your Own intra-GNS identifiers
  3. Creating Your Own Global Identifiers for use in code as well as GNS files

10. Gui Abstraction - GNS, App, Page, Widget and Gui Elements

  1. Thinking Procedurally -Creating Reusable Module
  2. Creating App Class
  3. App Object Model
  4. App-Page Object Model
  5. App-Page-Section Object Model
  6. Gui and Its Loading Model in Arjuna

Reference

  1. Command Line Options

Miscellaneous

  1. Using Arjuna With Your Test Framework

Release files for arjuna 0.9.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arjuna 0.9.12
File Size Uploaded
arjuna-0.9.12.tar.gz 115.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arjuna 0.9.12
File Interpreter ABI Platform
arjuna-0.9.12-py3-none-any.whl Python 3 none any Details

Total release size: 317.5 kB

Release files / arjuna-0.9.12.tar.gz

Download URL arjuna-0.9.12.tar.gz
Size 115.5 kB
Tags Source
SHA-256 checksum
How to use checksums
ea3ef0ff42592abed5e751377a1383cf36f98bd722fa58a47071219eebbf3c64
BLAKE2b-256 checksum
How to use checksums
29ac665ec17fda4317a719c0d74a6c5e8ec6cdb4f048b90c8d9e55cd7ca0b269
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.5

Release files / arjuna-0.9.12-py3-none-any.whl

Download URL arjuna-0.9.12-py3-none-any.whl
Size 202.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a7d4d71e08067710abe8185e0f4154b533d7bf84ef390a91d55efc34d35bfc1d
BLAKE2b-256 checksum
How to use checksums
6f40ee6af33de47270340cad5dc8b4aa50b51bfba871fa8d297e9cfc8e44f427
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.6.5

Release history Release notifications | RSS feed

1.2.23

2 release files

1.2.22

2 release files

1.2.21

2 release files

1.2.19

2 release files

1.2.18

2 release files

1.2.17

2 release files

1.2.16

2 release files

1.2.15

2 release files

1.2.12

2 release files

1.2.11

2 release files

1.2.10

2 release files

1.2.9

2 release files

1.2.8

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.43

2 release files

1.1.42

2 release files

1.1.41

2 release files

1.1.40

2 release files

1.1.38

2 release files

1.1.37

2 release files

1.1.33

2 release files

1.1.31

2 release files

1.1.29

2 release files

1.1.28

2 release files

1.1.27

2 release files

1.1.26

2 release files

1.1.25

2 release files

1.1.21

2 release files

1.1.20

2 release files

1.1.19

2 release files

1.1.18

2 release files

1.1.17

2 release files

1.1.14

2 release files

1.1.13

2 release files

1.1.12

2 release files

1.1.11

2 release files

1.1.10

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.19

2 release files

1.0.18

2 release files

1.0.17

2 release files

1.0.16

2 release files

1.0.15

2 release files

1.0.14

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.9.26

2 release files

0.9.24

2 release files

0.9.23

2 release files

0.9.22

2 release files

0.9.21

2 release files

0.9.20

2 release files

0.9.16

2 release files

0.9.15

2 release files

0.9.14

2 release files

0.9.13

2 release files

This release

0.9.12 This release

2 release files

0.9.11

2 release files

0.9.10

2 release files

0.9.9

2 release files

0.9.8

2 release files

0.9.7

2 release files

0.9.6

2 release files

0.9.5

2 release files

0.9.4

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.8.17

2 release files

0.8.16

2 release files

0.8.15

2 release files

0.8.14

2 release files

0.8.13

2 release files

0.8.12

2 release files

0.8.11

3 release files

0.8.10

3 release files

0.8.9

3 release files

0.8.8

3 release files

0.8.7

3 release files

0.8.6

3 release files

0.8.5

3 release files

0.8.4

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.7.8

1 release file

0.7.7

1 release file

0.7.6

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page