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.3.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.3-py3-none-any.whl (27.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: argobeast-2.1.3.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.3.tar.gz
Algorithm Hash digest
SHA256 b36626f216bceab6d1f167e51080c2c87138f7c0ff3dfd085447df4f33d6322c
MD5 fdd9d1e264369608130187de3975f2d4
BLAKE2b-256 425339565463af9de6ee61e02273744cdab76095cfb62fb0bfca7211d9b06558

See more details on using hashes here.

File details

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

File metadata

  • Download URL: argobeast-2.1.3-py3-none-any.whl
  • Upload date:
  • Size: 27.0 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 122c3da50a7bbf1fc0a3998cf52af19ce02d2cd701772e5bef99af8b88a80a4e
MD5 e01ef4f8edbf17e154da18be8cd8a721
BLAKE2b-256 160e1e3d7fd9f99f0e2b0b4bbb6d63e9d67f4968305fbf55e894501ba3d726a1

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