Skip to main content

A Python-based test automation framework for Behave with a clean Page Object architecture and CLI scaffolding.

Project description

# ArgoBEAST 🚀

![PyPI - Version](https://img.shields.io/pypi/v/argobeast)
![PyPI - License](https://img.shields.io/pypi/l/argobeast)
![Pylint Score](https://img.shields.io/badge/pylint-10.0-brightgreen)

### The Professional Platform-as-a-Product (PaaP) for Web Automation

ArgoBEAST is more than a wrapper; it's a structural engine for high-scale testing. It transforms raw Selenium and Behave into a standardised, professional-grade framework with zero-config scaffolding and a strict separation of concerns.

**Key Architectural Pillars:**
- **Standardized Scaffolding:** Instant generation of the Page Object Model (POM) stack—Pages, Actions, Steps, and Features—via a dedicated CLI.
- **Enterprise-Grade Logic:** Built-in form handling, automatic configuration merging, and high-standard linting (10/10 Pylint).
- **Selenium-First, Mobile-Ready:** Native Selenium support with a roadmap focused on Appium integration for mobile testing.

## Benefits

- 🧱 CLI scaffolding for pages, actions, steps, and project setup

- 🔄 Backend-agnostic architecture (Selenium today, Appium later)

- 🧪 Behave BDD support out of the box

- 📄 Automatic config loading and merging (defaults + user overrides)

- 📦 Packaged and reusable as a .whl

- 🧍 Separation of concerns (Pages → Actions → Steps → Features)

- 💥 Screenshot capture on failure

- 🧰 Extendable actions + reusable BasePage helpers

- 🪄 Magic hooks to enable simple reusable setup and teardown scenarios

- 📝 Easily complete entire website forms with built in form logic

# Installation

Install via pip:
```bash
pip install argobeast

Or using UV (recommended for development):

uv add argobeast

To check the installation has run correctly run:

argobeast hello

Initiating a New Project

To initialise a project run:

argobeast init

This will give you the option to generate example files which can be used as a template for your testing. These starter files will assume you're building tests for a login page.

  • actions/login_actions.py
  • features/login_feature.feature
  • features/steps/login_steps.py
  • pages/login_page.py

For more information on how to use these files and create your own tests see Getting Started

Other files generated are:

  • requirements.txt (This is a starter file including the initial requirements for your Behave & Selenium testing environment)
  • config/driver.yml (This can be customised by the user)
  • features/environment.py (Do not touch this file - behave relies on it to run the tests)

File Structure After Init

my-tests/
│
├── pages/
│   └── login_page.py
├── actions/
│   └── login_actions.py
├── features/
│   ├── login.feature
│   └── steps/
│       └── login_steps.py
├── config/
│   └── driver.yml
└── features/environment.py   <-- auto-loads framework hooks
  • Pages
    • Store locators
    • Inherit BasePage
  • Actions
    • Contain business logic
    • Inherit CommonActions
  • Steps
    • thin Behave glue
    • call Actions
  • DriverFactory
    • Selenium setup
  • ConfigLoader
    • merges baked defaults with user config

More information on how to use these pages can be found in Getting Started

Other CLI Commands

ArgoBEAST includes simple commands for generating new pages, actions, steps, and feature files:

argobeast create page <name of page> # Replace <name of page>
argobeast create steps <name of page>
argobeast create actions <name of page>
argobeast create feature <name of feature> # A page can have multiple features, so make this descriptive

Configure Your Test Target

You can configure your test target by editing config/driver.yml

More information can be found about this in Getting Started

Roadmap

ArgoBEAST is actively developed with a focus on professional testing environments:

  • Appium Integration: Expanding the DriverFactory to support mobile automation.
  • Dockerized Execution: Standardised Dockerfiles for Selenium Grid and headless execution.
  • Reporting Enhancements: Deep integration for Allure reports (logic currently in before_all).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

argobeast-2.1.2.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

argobeast-2.1.2-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

Details for the file argobeast-2.1.2.tar.gz.

File metadata

  • Download URL: argobeast-2.1.2.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for argobeast-2.1.2.tar.gz
Algorithm Hash digest
SHA256 477ee02e1d25fe4a33ebc346fef856dd95f7b53e81ed99d44cee9ba23baa287e
MD5 41f2b3fdabeaa2b27b6b7c93a24d5f27
BLAKE2b-256 5fc0308456670d96256e08860e6e460b5611130ca55ba08501c7316e54d22146

See more details on using hashes here.

File details

Details for the file argobeast-2.1.2-py3-none-any.whl.

File metadata

  • Download URL: argobeast-2.1.2-py3-none-any.whl
  • Upload date:
  • Size: 27.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for argobeast-2.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 98428a3d123e881d01459ff0e662272011aa712bcaa7f45a6409b9b603e4d449
MD5 d337458ac3c54955df9a3361e11d8669
BLAKE2b-256 57d2ecedae3acd1d84824691600d050c26b23851cf9d49c17a102ac8456b0164

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page