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 PyPI - License Pylint Score

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:

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.4.tar.gz (24.2 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.4-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: argobeast-2.1.4.tar.gz
  • Upload date:
  • Size: 24.2 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.4.tar.gz
Algorithm Hash digest
SHA256 465f36216378a031848d5b4a09c5270c4fdf6234b12f7377e64052583ab3040b
MD5 ee4dafe42d75bfdc416c17efd659d446
BLAKE2b-256 be5cd8863ee7c762ebbadd75d11bba230443e614416c6ffd0fa875c43e893149

See more details on using hashes here.

File details

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

File metadata

  • Download URL: argobeast-2.1.4-py3-none-any.whl
  • Upload date:
  • Size: 26.8 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 37557bb9ad144900cbe2f4a3747f3d3c7cb3a3b0cbd7c2caeeff33ffa6fd79d2
MD5 4e7dbb3cdb7178d26563eca3b48a842a
BLAKE2b-256 3a5c0efe78b15972baf7710c6530733b7933db120a1a5266a0783d13c44f3a26

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