AQE is a comprehensive, AI-powered Quality Engineering platform that automates end-to-end testing workflows using agentic architecture and RAG (Retrieval-Augmented Generation) capabilities.
AQE provides a complete end-to-end testing automation pipeline that combines:
- Web state capture and change detection
- AI-powered test generation using RAG
- Automated test execution with persistence
- Real-time monitoring and reporting
- Agent Architecture - A distributed system of specialized agents that handle different aspects of the QA workflow
- Infrastructure Services - PostgreSQL, MinIO, Qdrant, Redis, Kafka for data persistence and messaging
- Web Frontend - Interactive dashboard for orchestrating the QA workflow
.
├── agents/ # Specialized AI agents
│ ├── change_detection_agent.py # Detects UI changes using LLM analysis
│ ├── test_generation_agent_multi_llm.py # Generates Playwright tests using RAG
│ ├── webpage_state_capture_agent.py # Captures web page state for comparison
│ ├── test_execution_agent.py # Executes generated tests in a sandboxed environment
│ ├── llm_fine_tuning_agent.py # Manages RAG knowledge base ingestion
│ └── artifact_management_agent.py # Manages artifact versioning in MinIO and PostgreSQL
├── frontend/ # Web UI for orchestrating workflows
│ ├── app.jsx # Main React application
│ └── index.html # HTML entry point
├── test_execution_agent/ # Test execution environment with Docker support
│ ├── Dockerfile # Custom Dockerfile for test execution
│ ├── test_execution_agent.py # Execution agent logic
│ └── requirements.txt # Dependencies for execution agent
├── service/ # Background services
│ └── reporing_service.py # Kafka consumer for test result reporting
├── utils/ # Utility scripts and configurations
│ └── db_setup/ # Database schema initialization
│ └── artifact_metadata.sql # PostgreSQL table definitions
├── docker-compose.yml # Multi-service orchestration
├── Dockerfile.agent # Base Dockerfile for agent services
├── Dockerfile.base # Multi-stage build for agents
├── Dockerfile.frontend # Frontend Docker configuration
├── Dockerfile.reporting # Reporting service Dockerfile
├── Dockerfile.worker # Kafka consumer worker Dockerfile
├── requirements.in # Main project dependencies
├── requirements.txt # Generated dependency list
├── test/ # Test suite for the platform
│ ├── Dockerfile # Test environment configuration
│ ├── requirements.txt # Test dependencies
│ └── run_tests.sh # Test execution script
├── .env # Environment configuration file
└── README.md # This documentation file
- PostgreSQL - Primary database for test run metadata and artifact tracking
- MinIO - Object storage for test artifacts and snapshots
- Qdrant - Vector database for RAG knowledge base storage
- Redis - Caching and session management
- Kafka - Message broker for asynchronous communication between agents
- Zookeeper - Kafka coordination service
- Artifact Management Agent (
8007) - Manages artifact versioning in PostgreSQL and MinIO - Change Detection Agent (
8000) - Analyzes web page changes using LLMs - Test Generation Agent (
8001) - Generates Playwright Python tests using RAG - Webpage State Capture Agent (
8002) - Captures and compares web page states - Test Execution Agent (
8003) - Executes generated tests in a sandboxed environment - LLM Fine Tuning Agent (
8004) - Manages RAG knowledge base ingestion and versioning - Test Reporting Service (
8005) - Consumes Kafka events and updates reporting database
- AQE Frontend (
3000) - Interactive dashboard for orchestrating QA workflows
- Integrates with Qdrant vector database for semantic search of product knowledge
- Uses LLMs (Gemini or self-hosted) to generate Playwright tests based on product specifications
- Maintains knowledge base versioning for reproducible test generation
- Captures web page states before and after changes
- Uses LLMs to analyze differences and generate targeted test plans
- Supports both manual and automated change detection workflows
- Generates executable Playwright Python test code
- Executes tests in isolated environments
- Provides detailed execution results and logs
- Manages versioned artifacts in MinIO object storage
- Tracks artifact versions in PostgreSQL database
- Supports persistence of test code and execution results
- Web dashboard for monitoring agent health and workflow status
- Kafka-based event system for real-time updates
- Comprehensive test result reporting
- Docker and Docker Compose installed
- At least 4GB of available RAM (recommended 8GB+)
- Node.js and npm for frontend development (optional)
- Clone the repository:
git clone https://github.com/sqe/AQE.git
cd AQE- Start all services:
docker-compose up --build- Access the dashboard:
Open your browser to
http://localhost:3000
For development, you can:
- Modify individual agents in
agents/directory - Update the frontend in
frontend/app.jsx - Customize database schema in
utils/db_setup/
Environment variables are managed through:
.envfile for local development- Docker Compose configuration for service-specific settings
-
LLM Fine Tuning Agent (
/ingest_knowledge):- POST: Ingests product specifications into Qdrant knowledge base
-
Webpage State Capture Agent (
/capture):- POST: Captures web page state for change detection
-
Change Detection Agent (
/detect_changes):- POST: Analyzes differences between captured states
-
Test Generation Agent (
/generate_test_plan):- POST: Generates Playwright test plans using RAG
-
Test Execution Agent (
/run_tests):- POST: Executes generated tests from MinIO
GET /agent_card- Health check for each agentGET /health- General service health status
- Knowledge Ingestion: Product specifications are ingested into Qdrant
- State Capture: Web page states are captured before and after changes
- Change Detection: LLM analyzes differences between states
- Test Generation: Playwright Python tests are generated using RAG
- Test Execution: Generated tests execute in isolated environment
- Reporting: Results are persisted and reported through Kafka
- PostgreSQL: Stores test run metadata, status tracking, and reporting data
- MinIO: Stores actual test artifacts (code files) and snapshots
- Qdrant: Stores RAG knowledge base for semantic search
- Kafka: Provides async messaging between agents
- All services run in isolated Docker containers
- Test code execution happens in sandboxed environments
- Secure communication with environment-specific credentials
- CORS policy applied to web frontend for development
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Make your changes
- Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
MIT License
Copyright (c) 2025 Aziz Kurbanov
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
For support, please create an issue in the GitHub repository.