Run end-to-end browser tests using natural language.
No Selenium scripts. No brittle Playwright selectors. Just describe the test.
QA Agent is an AI-powered E2E testing platform for product, QA, and engineering teams. It lets you define browser tests in natural language, execute them with an LLM-driven browser agent, and inspect screenshots, GIFs, and run history when something fails.
It supports Azure OpenAI, OpenAI, Anthropic Claude, and Google Gemini.
Traditional E2E automation usually means:
- writing automation scripts
- maintaining brittle selectors
- updating tests whenever the UI changes
QA Agent replaces that workflow with:
- natural language test authoring
- real browser execution
- live streaming progress
- screenshots + GIF artifacts
- run reports and history
Test: User can log in
Steps:
1. Go to https://example.com
2. Click the login button
3. Enter email test@example.com
4. Enter password
5. Submit the form
Evaluation:
The user dashboard is visible.
The agent opens a real browser, performs the flow, evaluates the result, and stores artifacts for review.
Create tests with plain-language steps and evaluation criteria.
Runs in a real browser using browser-use.
Watch each run live through the SSE event stream.
Organize test coverage by product and suite.
Every run can capture:
- screenshots
- step-by-step execution logs
- GIF recordings
Track:
- pass / fail status
- execution details
- error context
- linked artifacts
Import suites from Excel and export suite definitions.
Use the provider that fits your workflow:
- Azure OpenAI
- OpenAI
- Anthropic Claude
- Google Gemini
Run Status: running
Step 1
Navigate to homepage
Step 2
Click login button
Step 3
Enter credentials
Step 4
Verify dashboard is visible
Result: PASSED
Artifacts generated:
- screenshots
- GIF recording
- step evaluation logs
React + Vite frontend
|
| REST + SSE
v
FastAPI backend
|
| run orchestration
v
browser-use + LangChain chat model
|
v
real browser automation
PostgreSQL
run history + artifacts metadata
QA Agent chooses the provider automatically from the selected model name:
gemini-*→ Google Gemini viaGOOGLE_API_KEYclaude-*→ Anthropic viaANTHROPIC_API_KEY- everything else → Azure OpenAI if
AZURE_OPENAI_API_KEYis set, otherwise OpenAI viaOPENAI_API_KEY
Example models already supported in the UI:
- OpenAI:
gpt-5.4,gpt-5-mini,gpt-4.1,gpt-4o - Anthropic:
claude-opus-4-6,claude-sonnet-4-6,claude-haiku-4-5-20251001 - Gemini:
gemini-3.1-pro-preview,gemini-2.5-pro,gemini-2.5-flash - Azure OpenAI: any deployment mapped through
AZURE_OPENAI_DEPLOYMENT_NAMEor matching the model name
See backend/.env.example for the full environment template.
- FastAPI
- SQLAlchemy
- Alembic
- PostgreSQL
- browser-use
- LangChain provider adapters
- Azure OpenAI / OpenAI / Anthropic / Gemini
- React 19
- Vite 6
- TypeScript
- Tailwind CSS
- shadcn/ui
- Docker
- pnpm workspaces
- uv
git clone https://github.com/jimmytoan/qa-agent.git
cd qa-agentpnpm install:allPrerequisites:
- Node.js 18+
- pnpm
- Python 3.12+
- uv
- PostgreSQL 15+
cp backend/.env.example backend/.envAt minimum, set:
DATABASE_URL=postgresql+psycopg://user:password@localhost:5432/qa_agent
# choose one or more providers
OPENAI_API_KEY=
AZURE_OPENAI_API_KEY=
AZURE_OPENAI_ENDPOINT=
ANTHROPIC_API_KEY=
GOOGLE_API_KEY=cd backend
uv run alembic upgrade head
cd ..pnpm devOpen:
- Frontend: http://localhost:5173
- Backend API docs: http://localhost:8000/docs
In local mode, the Vite dev server proxies API and artifact requests to the backend.
docker build -t qa-agent .
docker run --rm -p 8000:8000 \
-e DATABASE_URL=postgresql+psycopg://user:password@host:5432/qa_agent \
-e OPENAI_API_KEY=your_key_here \
qa-agentThe container:
- runs Alembic migrations on startup
- serves the backend API
- serves the built frontend on port
8000
POST /api/browser-use/runsResponse:
{
"id": "...",
"status": "queued"
}GET /api/browser-use/runs/{run_id}/streamGET /api/healthPOST /api/tests/{test_id}/runsPOST /api/suites/{suite_id}/runsGET /api/reports/runs/{run_id}GET /api/suites/{suite_id}/exportPOST /api/suites/import
Planned improvements:
- scheduled runs
- Slack / Jira notifications
- webhooks
- API tokens and auth
- object storage for artifacts
- CI integrations
- richer evaluation strategies
AI agents are changing how QA gets done.
We believe testing should be:
- accessible to product teams
- easier to debug
- faster to write
Open sourcing QA Agent makes it easier for teams to experiment with AI-native testing workflows and adapt the stack to their own environments.
PRs are welcome.
High-impact areas for contribution:
- new evaluation strategies
- additional model/provider support
- CI and notification integrations
- artifact storage backends
- reporting UX improvements
This project is licensed under the GNU Affero General Public License v3.0. See LICENSE for details.
If QA Agent is useful to your team, give it a ⭐
It helps the project grow and makes the repo easier to discover.