Generic, plug-and-play API testing framework - the Appium for APIs
Project description
APIium Framework 🚀
The Generic API Testing Framework - "Appium for APIs"
APIium is a powerful, plug-and-play API testing framework that requires zero boilerplate code. Just provide your API specifications in YAML, and APIium handles the rest!
🌟 Key Features
- Zero Boilerplate: No classes, no complex setup - just YAML configurations
- Universal Authentication: Basic, Bearer, OAuth2, JWT, API Keys
- Data-Driven Testing: Built-in data generators and parameterization
- Parallel Execution: Run tests concurrently for faster feedback
- Rich Reporting: HTML, JSON reports with detailed insights
- CI/CD Ready: Seamless integration with Jenkins, GitHub Actions
🚀 Quick Start
Installation
pip install -e .
Create Your First Test
Create a file my_api_test.yaml:
version: "1.0"
metadata:
name: "My API Tests"
config:
base_url: "https://httpbin.org"
timeout: 30
tests:
- name: "Get Test"
method: GET
endpoint: "/get"
validations:
- type: "status_code"
expected: 200
- type: "response_time"
max_time: 5.0
- name: "Post Test"
method: POST
endpoint: "/post"
json_data:
test: "data"
framework: "APIium"
validations:
- type: "status_code"
expected: 200
Run Your Tests
apiium run my_api_test.yaml
📖 More Examples
Authentication Tests
tests:
- name: "Basic Auth Test"
method: GET
endpoint: "/basic-auth/user/pass"
auth:
type: "basic"
username: "user"
password: "pass"
validations:
- type: "status_code"
expected: 200
- name: "Bearer Token Test"
method: GET
endpoint: "/bearer"
auth:
type: "bearer"
token: "your-token-here"
validations:
- type: "status_code"
expected: 200
🛠️ Commands
# Run tests
apiium run tests/
# Initialize new test file
apiium init my_test.yaml --base-url https://api.example.com
# Run with custom output
apiium run tests/ --output custom-reports/
🤝 Contributing
Contributions welcome! This framework is designed to revolutionize API testing.
📄 License
MIT License - see LICENSE file for details.
Made with ❤️ for the API testing community
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 apiium-1.0.0.tar.gz.
File metadata
- Download URL: apiium-1.0.0.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
057f86135abf706e624e8902bd08618113420c820c6852d694618eb4393fb503
|
|
| MD5 |
26756e3278c1943219950f9843e492dd
|
|
| BLAKE2b-256 |
b21d7458a173f626a6ae382ff405db0344e7bf610342ea2ff767c092ef5d1376
|
File details
Details for the file apiium-1.0.0-py3-none-any.whl.
File metadata
- Download URL: apiium-1.0.0-py3-none-any.whl
- Upload date:
- Size: 18.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04f9f2c2b63787c1c3e9ca83d6497d163cc636beaaf963655c44b35aed8f3002
|
|
| MD5 |
4af332cf2cef35119355f6e389eb74b8
|
|
| BLAKE2b-256 |
e3f29a8b990369b72d7ac2d4603d5856223de9010a1f7ea6be2b64fad4ab4e90
|