ai-testpilot-x 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ai_testpilot_x-1.0.0/PKG-INFO +400 -0
- ai_testpilot_x-1.0.0/README.md +336 -0
- ai_testpilot_x-1.0.0/agents/__init__.py +22 -0
- ai_testpilot_x-1.0.0/agents/api_agent.py +62 -0
- ai_testpilot_x-1.0.0/agents/base_agent.py +94 -0
- ai_testpilot_x-1.0.0/agents/bug_agent.py +175 -0
- ai_testpilot_x-1.0.0/agents/execution_agent.py +175 -0
- ai_testpilot_x-1.0.0/agents/healing_agent.py +93 -0
- ai_testpilot_x-1.0.0/agents/registry.py +28 -0
- ai_testpilot_x-1.0.0/agents/report_agent.py +143 -0
- ai_testpilot_x-1.0.0/agents/requirement_agent.py +33 -0
- ai_testpilot_x-1.0.0/agents/selenium_agent.py +44 -0
- ai_testpilot_x-1.0.0/agents/testcase_agent.py +76 -0
- ai_testpilot_x-1.0.0/agents/verification_agent.py +91 -0
- ai_testpilot_x-1.0.0/ai_testpilot_x.egg-info/PKG-INFO +400 -0
- ai_testpilot_x-1.0.0/ai_testpilot_x.egg-info/SOURCES.txt +87 -0
- ai_testpilot_x-1.0.0/ai_testpilot_x.egg-info/dependency_links.txt +1 -0
- ai_testpilot_x-1.0.0/ai_testpilot_x.egg-info/entry_points.txt +2 -0
- ai_testpilot_x-1.0.0/ai_testpilot_x.egg-info/requires.txt +47 -0
- ai_testpilot_x-1.0.0/ai_testpilot_x.egg-info/top_level.txt +10 -0
- ai_testpilot_x-1.0.0/cli/__init__.py +1 -0
- ai_testpilot_x-1.0.0/cli/cmd_analyze.py +158 -0
- ai_testpilot_x-1.0.0/cli/cmd_bugs.py +138 -0
- ai_testpilot_x-1.0.0/cli/cmd_dashboard.py +73 -0
- ai_testpilot_x-1.0.0/cli/cmd_init.py +145 -0
- ai_testpilot_x-1.0.0/cli/cmd_report.py +141 -0
- ai_testpilot_x-1.0.0/cli/cmd_run.py +263 -0
- ai_testpilot_x-1.0.0/cli/main.py +76 -0
- ai_testpilot_x-1.0.0/core/__init__.py +0 -0
- ai_testpilot_x-1.0.0/core/event_bus.py +57 -0
- ai_testpilot_x-1.0.0/core/explain_engine.py +30 -0
- ai_testpilot_x-1.0.0/core/llm_client.py +58 -0
- ai_testpilot_x-1.0.0/core/rag_engine.py +126 -0
- ai_testpilot_x-1.0.0/core/screenshot_utils.py +32 -0
- ai_testpilot_x-1.0.0/execution/__init__.py +0 -0
- ai_testpilot_x-1.0.0/execution/grids/__init__.py +0 -0
- ai_testpilot_x-1.0.0/execution/grids/selenium_grid.py +31 -0
- ai_testpilot_x-1.0.0/execution/runners/__init__.py +0 -0
- ai_testpilot_x-1.0.0/execution/runners/api_runner.py +41 -0
- ai_testpilot_x-1.0.0/execution/runners/selenium_runner.py +89 -0
- ai_testpilot_x-1.0.0/memory/__init__.py +0 -0
- ai_testpilot_x-1.0.0/memory/bug_memory.py +39 -0
- ai_testpilot_x-1.0.0/memory/conversation_memory.py +24 -0
- ai_testpilot_x-1.0.0/memory/execution_memory.py +25 -0
- ai_testpilot_x-1.0.0/models/__init__.py +0 -0
- ai_testpilot_x-1.0.0/models/base_model.py +9 -0
- ai_testpilot_x-1.0.0/models/claude.py +9 -0
- ai_testpilot_x-1.0.0/models/gemini.py +30 -0
- ai_testpilot_x-1.0.0/models/openai.py +9 -0
- ai_testpilot_x-1.0.0/monitoring/__init__.py +0 -0
- ai_testpilot_x-1.0.0/monitoring/logger.py +68 -0
- ai_testpilot_x-1.0.0/monitoring/metrics.py +68 -0
- ai_testpilot_x-1.0.0/monitoring/tracing.py +17 -0
- ai_testpilot_x-1.0.0/prompts/api_prompt.txt +15 -0
- ai_testpilot_x-1.0.0/prompts/bug_prompt.txt +20 -0
- ai_testpilot_x-1.0.0/prompts/healing_prompt.txt +14 -0
- ai_testpilot_x-1.0.0/prompts/report_prompt.txt +23 -0
- ai_testpilot_x-1.0.0/prompts/requirement_prompt.txt +10 -0
- ai_testpilot_x-1.0.0/prompts/selenium_prompt.txt +20 -0
- ai_testpilot_x-1.0.0/prompts/testcase_prompt.txt +19 -0
- ai_testpilot_x-1.0.0/prompts/verification_prompt.txt +17 -0
- ai_testpilot_x-1.0.0/pyproject.toml +114 -0
- ai_testpilot_x-1.0.0/schemas/__init__.py +0 -0
- ai_testpilot_x-1.0.0/schemas/api_test_schema.py +16 -0
- ai_testpilot_x-1.0.0/schemas/bug_schema.py +25 -0
- ai_testpilot_x-1.0.0/schemas/error_schema.py +9 -0
- ai_testpilot_x-1.0.0/schemas/execution_schema.py +14 -0
- ai_testpilot_x-1.0.0/schemas/global_state.py +27 -0
- ai_testpilot_x-1.0.0/schemas/report_schema.py +19 -0
- ai_testpilot_x-1.0.0/schemas/requirement_schema.py +11 -0
- ai_testpilot_x-1.0.0/schemas/test_result_schema.py +11 -0
- ai_testpilot_x-1.0.0/schemas/testcase_schema.py +16 -0
- ai_testpilot_x-1.0.0/schemas/verification_schema.py +11 -0
- ai_testpilot_x-1.0.0/setup.cfg +4 -0
- ai_testpilot_x-1.0.0/storage/__init__.py +0 -0
- ai_testpilot_x-1.0.0/storage/db.py +43 -0
- ai_testpilot_x-1.0.0/storage/models/__init__.py +0 -0
- ai_testpilot_x-1.0.0/storage/models/bugs.py +24 -0
- ai_testpilot_x-1.0.0/storage/models/executions.py +21 -0
- ai_testpilot_x-1.0.0/storage/models/reports.py +17 -0
- ai_testpilot_x-1.0.0/storage/models/requirements.py +19 -0
- ai_testpilot_x-1.0.0/storage/models/testcases.py +22 -0
- ai_testpilot_x-1.0.0/storage/models/trust_domains.py +14 -0
- ai_testpilot_x-1.0.0/tests/test_agents.py +775 -0
- ai_testpilot_x-1.0.0/tests/test_config.py +26 -0
- ai_testpilot_x-1.0.0/tests/test_execution.py +85 -0
- ai_testpilot_x-1.0.0/tests/test_llm_client.py +42 -0
- ai_testpilot_x-1.0.0/tests/test_schemas.py +126 -0
- ai_testpilot_x-1.0.0/tests/test_storage.py +90 -0
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: ai-testpilot-x
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Autonomous AI-powered QA CLI - generate tests, run Selenium, analyze bugs, get GO/NO GO release decisions
|
|
5
|
+
Author: sagar-grv
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://sagar-grv.github.io/ai-testpilot-x/
|
|
8
|
+
Project-URL: Documentation, https://sagar-grv.github.io/ai-testpilot-x/
|
|
9
|
+
Project-URL: Repository, https://github.com/sagar-grv/ai-testpilot-x
|
|
10
|
+
Project-URL: Bug Tracker, https://github.com/sagar-grv/ai-testpilot-x/issues
|
|
11
|
+
Project-URL: Changelog, https://sagar-grv.github.io/ai-testpilot-x/changelog/
|
|
12
|
+
Keywords: testing,qa,automation,ai,selenium,llm,langchain
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Topic :: Software Development :: Testing
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
20
|
+
Classifier: Operating System :: OS Independent
|
|
21
|
+
Requires-Python: >=3.11
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
Requires-Dist: google-generativeai>=0.8
|
|
24
|
+
Requires-Dist: langchain==0.3.*
|
|
25
|
+
Requires-Dist: langgraph==0.3.*
|
|
26
|
+
Requires-Dist: langchain-google-genai>=2.0
|
|
27
|
+
Requires-Dist: sentence-transformers>=3.0
|
|
28
|
+
Requires-Dist: chromadb>=0.5
|
|
29
|
+
Requires-Dist: typer>=0.12
|
|
30
|
+
Requires-Dist: rich>=13.7
|
|
31
|
+
Requires-Dist: pyyaml>=6.0
|
|
32
|
+
Requires-Dist: httpx>=0.27
|
|
33
|
+
Requires-Dist: sqlalchemy>=2.0
|
|
34
|
+
Requires-Dist: alembic>=1.13
|
|
35
|
+
Requires-Dist: pydantic>=2.0
|
|
36
|
+
Requires-Dist: pydantic-settings>=2.0
|
|
37
|
+
Requires-Dist: python-dotenv>=1.0
|
|
38
|
+
Requires-Dist: typing-extensions>=4.9
|
|
39
|
+
Requires-Dist: langsmith>=0.1
|
|
40
|
+
Requires-Dist: loguru>=0.7
|
|
41
|
+
Provides-Extra: ui
|
|
42
|
+
Requires-Dist: streamlit>=1.40; extra == "ui"
|
|
43
|
+
Requires-Dist: plotly>=5.0; extra == "ui"
|
|
44
|
+
Requires-Dist: streamlit-agraph>=0.0.45; extra == "ui"
|
|
45
|
+
Requires-Dist: streamlit-ace>=0.1.1; extra == "ui"
|
|
46
|
+
Requires-Dist: pandas>=2.0; extra == "ui"
|
|
47
|
+
Requires-Dist: pillow>=10.0; extra == "ui"
|
|
48
|
+
Provides-Extra: selenium
|
|
49
|
+
Requires-Dist: selenium>=4.0; extra == "selenium"
|
|
50
|
+
Requires-Dist: webdriver-manager>=4.0; extra == "selenium"
|
|
51
|
+
Provides-Extra: playwright
|
|
52
|
+
Requires-Dist: playwright>=1.40; extra == "playwright"
|
|
53
|
+
Provides-Extra: docs
|
|
54
|
+
Requires-Dist: pypdf>=4.0; extra == "docs"
|
|
55
|
+
Requires-Dist: python-docx>=1.0; extra == "docs"
|
|
56
|
+
Provides-Extra: all
|
|
57
|
+
Requires-Dist: ai-testpilot-x[docs,playwright,selenium,ui]; extra == "all"
|
|
58
|
+
Provides-Extra: dev
|
|
59
|
+
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
60
|
+
Requires-Dist: pytest-html>=4.0; extra == "dev"
|
|
61
|
+
Requires-Dist: black>=24.0; extra == "dev"
|
|
62
|
+
Requires-Dist: ruff>=0.4; extra == "dev"
|
|
63
|
+
Requires-Dist: pre-commit>=3.0; extra == "dev"
|
|
64
|
+
|
|
65
|
+
# AI TestPilot X
|
|
66
|
+
|
|
67
|
+
> Autonomous AI-Powered Quality Engineering Platform & CLI
|
|
68
|
+
|
|
69
|
+
[](https://ai-testpilot-x.streamlit.app/)
|
|
70
|
+
[](https://sagar-grv.github.io/ai-testpilot-x/)
|
|
71
|
+
[](https://skills.sh/sagar-grv/ai-testpilot-x)
|
|
72
|
+
[](https://pypi.org/project/ai-testpilot-x/)
|
|
73
|
+
[](https://python.org)
|
|
74
|
+
[](https://streamlit.io)
|
|
75
|
+
[](https://langchain-ai.github.io/langgraph/)
|
|
76
|
+
[](https://aistudio.google.com)
|
|
77
|
+
[](https://github.com/sagar-grv/ai-testpilot-x)
|
|
78
|
+
|
|
79
|
+
**Live Demo:** https://ai-testpilot-x.streamlit.app/
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## What Is It?
|
|
84
|
+
|
|
85
|
+
AI TestPilot X turns a plain-English user story into a complete QA pipeline — automatically.
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
pip install ai-testpilot-x
|
|
89
|
+
|
|
90
|
+
testpilot run --story "User can login and checkout a product"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
Analyzing requirements... ✓ 3 modules · High priority
|
|
95
|
+
Generating test cases... ✓ 12 test cases
|
|
96
|
+
Verifying coverage... ✓ 87% coverage
|
|
97
|
+
Executing tests (MOCK)... ✓ 10 passed · 2 failed
|
|
98
|
+
Analyzing bugs... ✓ 2 bugs found
|
|
99
|
+
Generating report... ✓
|
|
100
|
+
|
|
101
|
+
┌─────────────────────────────────────────────┐
|
|
102
|
+
│ Release Decision: ⚠ GO WITH RISK │
|
|
103
|
+
│ Risk Score: 45 / 100 │
|
|
104
|
+
│ Tests: 10 / 12 passed │
|
|
105
|
+
│ Bugs: 0 Critical · 2 High │
|
|
106
|
+
└─────────────────────────────────────────────┘
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Installation
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Core CLI (test generation, bug analysis, reports)
|
|
115
|
+
pip install ai-testpilot-x
|
|
116
|
+
|
|
117
|
+
# With visual Streamlit dashboard
|
|
118
|
+
pip install ai-testpilot-x[ui]
|
|
119
|
+
|
|
120
|
+
# With real Selenium browser execution
|
|
121
|
+
pip install ai-testpilot-x[selenium]
|
|
122
|
+
|
|
123
|
+
# Everything
|
|
124
|
+
pip install ai-testpilot-x[all]
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Install the AI Agent Skill
|
|
130
|
+
|
|
131
|
+
Any AI coding agent (Claude Code, Cursor, OpenCode, Copilot, Windsurf) can learn to
|
|
132
|
+
use AI TestPilot X with a single command:
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
npx skills add sagar-grv/ai-testpilot-x
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
After installing, your agent understands all CLI commands, the 10-agent pipeline,
|
|
139
|
+
exit code semantics, HITL gate usage, and self-healing locator patterns.
|
|
140
|
+
|
|
141
|
+
Listed on [skills.sh](https://skills.sh/sagar-grv/ai-testpilot-x) — the open agent skills ecosystem.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Documentation
|
|
146
|
+
|
|
147
|
+
Full docs at **[sagar-grv.github.io/ai-testpilot-x](https://sagar-grv.github.io/ai-testpilot-x/)**:
|
|
148
|
+
|
|
149
|
+
- [Getting Started](https://sagar-grv.github.io/ai-testpilot-x/getting-started/)
|
|
150
|
+
- [CLI Reference](https://sagar-grv.github.io/ai-testpilot-x/cli-reference/)
|
|
151
|
+
- [Architecture](https://sagar-grv.github.io/ai-testpilot-x/architecture/)
|
|
152
|
+
- [CI/CD Integration](https://sagar-grv.github.io/ai-testpilot-x/ci-cd/)
|
|
153
|
+
- [10-Agent Pipeline](https://sagar-grv.github.io/ai-testpilot-x/agents/)
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## CLI Commands
|
|
158
|
+
|
|
159
|
+
### `testpilot init` — Setup wizard
|
|
160
|
+
|
|
161
|
+
Creates `testpilot.yaml` in your project with your API key, target URL, and execution mode.
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
testpilot init
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### `testpilot run` — Full pipeline
|
|
168
|
+
|
|
169
|
+
Runs the complete 10-agent pipeline: analyze → generate → execute → report.
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
testpilot run --story "User can login and checkout"
|
|
173
|
+
testpilot run --story "User can reset password" --url https://myapp.com --mode MOCK
|
|
174
|
+
testpilot run --story "Admin manages users" --output report.json
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**Exit codes:**
|
|
178
|
+
- `0` = GO — all tests pass
|
|
179
|
+
- `1` = GO WITH RISK — high severity bugs
|
|
180
|
+
- `2` = NO GO — critical bugs, release blocked
|
|
181
|
+
|
|
182
|
+
### `testpilot analyze` — Test cases only
|
|
183
|
+
|
|
184
|
+
Generate test cases from a user story without executing them.
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
testpilot analyze --story "User can filter search results"
|
|
188
|
+
testpilot analyze --story "Payment flow" --output test_cases.json
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### `testpilot bugs` — Bug analysis
|
|
192
|
+
|
|
193
|
+
Analyze any stack trace or error log with AI + RAG correlation.
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
testpilot bugs --log "NoSuchElementException: Unable to locate element: #login-btn"
|
|
197
|
+
testpilot bugs --log ./test-output.log
|
|
198
|
+
cat error.log | testpilot bugs --log -
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### `testpilot report` — Release decision
|
|
202
|
+
|
|
203
|
+
Generate a GO/NO GO decision from existing execution results.
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
testpilot report results.json
|
|
207
|
+
testpilot report results.json --output release_report.json
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### `testpilot dashboard` — Visual UI
|
|
211
|
+
|
|
212
|
+
Launch the full Streamlit dashboard (requires `pip install ai-testpilot-x[ui]`).
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
testpilot dashboard
|
|
216
|
+
testpilot dashboard --port 8080
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## CI/CD Integration
|
|
222
|
+
|
|
223
|
+
Add AI TestPilot X as a quality gate to any CI pipeline. It exits with code `0` (pass) or `1`/`2` (fail), just like pytest or eslint.
|
|
224
|
+
|
|
225
|
+
### GitHub Actions
|
|
226
|
+
|
|
227
|
+
```yaml
|
|
228
|
+
# .github/workflows/ai-quality-gate.yml
|
|
229
|
+
name: AI Quality Gate
|
|
230
|
+
on: [push, pull_request]
|
|
231
|
+
|
|
232
|
+
jobs:
|
|
233
|
+
quality-gate:
|
|
234
|
+
runs-on: ubuntu-latest
|
|
235
|
+
steps:
|
|
236
|
+
- uses: actions/checkout@v4
|
|
237
|
+
- uses: actions/setup-python@v5
|
|
238
|
+
with: {python-version: '3.11'}
|
|
239
|
+
- run: pip install ai-testpilot-x
|
|
240
|
+
- run: testpilot run --story "User can login and checkout"
|
|
241
|
+
env:
|
|
242
|
+
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
### GitLab CI
|
|
246
|
+
|
|
247
|
+
```yaml
|
|
248
|
+
ai-quality-gate:
|
|
249
|
+
stage: test
|
|
250
|
+
script:
|
|
251
|
+
- pip install ai-testpilot-x
|
|
252
|
+
- testpilot run --story "User can login" --mode MOCK
|
|
253
|
+
variables:
|
|
254
|
+
GEMINI_API_KEY: $GEMINI_API_KEY
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Configuration (`testpilot.yaml`)
|
|
260
|
+
|
|
261
|
+
Place in your project root. Run `testpilot init` to generate automatically.
|
|
262
|
+
|
|
263
|
+
```yaml
|
|
264
|
+
gemini_api_key: ${GEMINI_API_KEY} # reads from env var
|
|
265
|
+
execution_mode: MOCK # MOCK | LOCAL | GRID
|
|
266
|
+
target_url: https://your-app.com
|
|
267
|
+
|
|
268
|
+
db_url: sqlite:///.testpilot/testpilot.db
|
|
269
|
+
chroma_path: .testpilot/chroma_db
|
|
270
|
+
output_dir: .testpilot/reports
|
|
271
|
+
log_level: WARNING
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Python API
|
|
277
|
+
|
|
278
|
+
```python
|
|
279
|
+
from config import configure
|
|
280
|
+
configure(gemini_api_key="AIzaSy...", execution_mode="MOCK")
|
|
281
|
+
|
|
282
|
+
from api import run_pipeline, analyze, analyze_bug
|
|
283
|
+
|
|
284
|
+
# Full pipeline
|
|
285
|
+
result = run_pipeline("User can login and checkout", target_url="https://myapp.com")
|
|
286
|
+
print(result["report"]["decision"]) # "GO" | "GO_WITH_RISK" | "NO_GO"
|
|
287
|
+
|
|
288
|
+
# Test cases only
|
|
289
|
+
test_cases = analyze("User can reset their password")
|
|
290
|
+
for tc in test_cases:
|
|
291
|
+
print(tc.id, tc.title, tc.type, tc.priority)
|
|
292
|
+
|
|
293
|
+
# Bug analysis
|
|
294
|
+
bug = analyze_bug("NoSuchElementException: #login-btn at LoginPage.py:42")
|
|
295
|
+
print(bug.severity, bug.root_cause, bug.fix_suggestion)
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Architecture
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
testpilot run --story "..."
|
|
304
|
+
↓
|
|
305
|
+
LangGraph Orchestrator
|
|
306
|
+
GlobalState + Checkpointing
|
|
307
|
+
↓
|
|
308
|
+
┌──────────────┬──────────────┐
|
|
309
|
+
│ │ │
|
|
310
|
+
▼ ▼ ▼
|
|
311
|
+
Requirements Selenium API Tests
|
|
312
|
+
Agent Agent Agent
|
|
313
|
+
│ │ │
|
|
314
|
+
▼ ▼ ▼
|
|
315
|
+
Test Cases Execution Bug Agent
|
|
316
|
+
+ Coverage (HITL Gate) + Healing
|
|
317
|
+
│
|
|
318
|
+
▼
|
|
319
|
+
Report Agent
|
|
320
|
+
GO / GO_WITH_RISK / NO_GO
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### 10 AI Agents
|
|
324
|
+
|
|
325
|
+
| Agent | What it does |
|
|
326
|
+
|---|---|
|
|
327
|
+
| RequirementAgent | Parses user story → modules, risk areas, priority |
|
|
328
|
+
| TestCaseAgent | Generates structured test cases with RAG context |
|
|
329
|
+
| VerificationAgent | Coverage check, duplicate detection, edge case gaps |
|
|
330
|
+
| SeleniumAgent | Generates Python Selenium code per test case |
|
|
331
|
+
| APIAgent | Generates HTTP test suites with assertions |
|
|
332
|
+
| ExecutionAgent | HITL gate, trust domains, LOCAL/MOCK/GRID modes |
|
|
333
|
+
| BugAgent | Root cause analysis, RAG correlation, clustering |
|
|
334
|
+
| HealingAgent | Self-healing locators (ID → Name → data-* → CSS → XPath → AI) |
|
|
335
|
+
| ReportAgent | GO / GO_WITH_RISK / NO_GO decision engine |
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## Features
|
|
340
|
+
|
|
341
|
+
| Feature | Status |
|
|
342
|
+
|---|---|
|
|
343
|
+
| AI Test Case Generation + Coverage Radar | ✅ |
|
|
344
|
+
| Selenium Script Generation | ✅ |
|
|
345
|
+
| API Test Generation + Live Execution | ✅ |
|
|
346
|
+
| Human-in-the-Loop Execution Gate | ✅ |
|
|
347
|
+
| Bug Analysis with RAG Correlation | ✅ |
|
|
348
|
+
| Self-Healing Locator Recovery | ✅ |
|
|
349
|
+
| GO / GO_WITH_RISK / NO_GO Release Decision | ✅ |
|
|
350
|
+
| CLI with Rich terminal output | ✅ |
|
|
351
|
+
| CI/CD exit code integration | ✅ |
|
|
352
|
+
| Streamlit visual dashboard | ✅ |
|
|
353
|
+
| Python API | ✅ |
|
|
354
|
+
| LangGraph stateful orchestration | ✅ |
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## Tech Stack
|
|
359
|
+
|
|
360
|
+
| Layer | Technologies |
|
|
361
|
+
|---|---|
|
|
362
|
+
| CLI | Typer + Rich |
|
|
363
|
+
| AI Orchestration | LangGraph 0.3, LangChain 0.3 |
|
|
364
|
+
| LLM | Google Gemini 2.5 Flash |
|
|
365
|
+
| RAG | ChromaDB, sentence-transformers (all-MiniLM-L6-v2) |
|
|
366
|
+
| UI | Streamlit 1.40+, Plotly, streamlit-agraph |
|
|
367
|
+
| Execution | Selenium 4, webdriver-manager, httpx |
|
|
368
|
+
| Storage | SQLAlchemy + SQLite |
|
|
369
|
+
| Validation | Pydantic v2 |
|
|
370
|
+
| Observability | LangSmith, loguru |
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
## Quick Start (Local Development)
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
git clone https://github.com/sagar-grv/ai-testpilot-x
|
|
378
|
+
cd ai-testpilot-x
|
|
379
|
+
|
|
380
|
+
python -m venv .venv
|
|
381
|
+
.venv\Scripts\activate # Windows
|
|
382
|
+
source .venv/bin/activate # macOS/Linux
|
|
383
|
+
|
|
384
|
+
pip install -r requirements.txt
|
|
385
|
+
|
|
386
|
+
# Initialize config
|
|
387
|
+
python -m cli.main init
|
|
388
|
+
|
|
389
|
+
# Run pipeline
|
|
390
|
+
python -m cli.main run --story "User can login and checkout"
|
|
391
|
+
|
|
392
|
+
# Or launch the dashboard
|
|
393
|
+
streamlit run app.py
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
## License
|
|
399
|
+
|
|
400
|
+
MIT
|