A Python-based test automation framework for Behave with a clean Page Object architecture and CLI scaffolding.
Project description
ArgoBEAST 🚀
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
465f36216378a031848d5b4a09c5270c4fdf6234b12f7377e64052583ab3040b
|
|
| MD5 |
ee4dafe42d75bfdc416c17efd659d446
|
|
| BLAKE2b-256 |
be5cd8863ee7c762ebbadd75d11bba230443e614416c6ffd0fa875c43e893149
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
37557bb9ad144900cbe2f4a3747f3d3c7cb3a3b0cbd7c2caeeff33ffa6fd79d2
|
|
| MD5 |
4e7dbb3cdb7178d26563eca3b48a842a
|
|
| BLAKE2b-256 |
3a5c0efe78b15972baf7710c6530733b7933db120a1a5266a0783d13c44f3a26
|