AI-powered UI testing for mobile and desktop โ by FusionLeap.io
Project description
๐งช FusionTest
AI-powered UI testing for mobile and desktop โ built by FusionLeap.io
FusionTest uses large language models to execute UI tests the way a human would โ reading screens, making decisions, and adapting to UI changes automatically. No brittle scripts. No maintenance overhead. Just natural language test goals that run anywhere.
โจ Features
| Feature | Mobile (iOS/Android) | Desktop (Win/Mac/Linux) |
|---|---|---|
| Natural language test goals | โ | โ |
| Zero-maintenance execution | โ | โ |
| Multi-locale / 50+ languages | โ | โ |
| Hallucination guardrails | โ | โ |
| Loop detection & backtrack | โ | โ |
| CI/CD integration | โ | โ |
| Vision model fallback | โ | โ |
| Cross-app flow testing | โ | โ |
| Electron / Playwright support | โ | โ |
๐ Architecture
fusiontest/
โโโ core/ # LLM action model, embeddings, screen parser
โโโ mobile/ # iOS (XCTest) + Android (UIAutomator2) adapters
โโโ desktop/ # Windows (WinAppDriver), macOS (Accessibility API), Playwright
โโโ guardrails/ # Hallucination handler, loop detector, backtrack engine
โโโ reporting/ # Dashboard data, Slack/email alerts, CI artifacts
๐ Quickstart
Prerequisites
- Python 3.10+
- Node.js 18+ (for Playwright/Electron targets)
- Appium 2.x (for mobile)
Install
git clone https://github.com/mohigo/fusion-test.git
cd fusion-test
pip install -e ".[dev]"
Set your API key
export FUSIONTEST_API_KEY=your_key_here
# or copy .env.example โ .env and fill in values
Run your first test
fusiontest run --goal "Log in, navigate to settings, update profile name" \
--platform android \
--app path/to/app.apk \
--locale en-US
Full guide: docs/getting-started.md โ covers all platforms (web, Android, iOS, Electron, Windows, macOS), Python API usage, configuration, dashboard, CI setup, and tips for writing good goals.
๐ Writing Test Goals
FusionTest accepts natural language goals. No code required.
# tests/goals/onboarding.yaml
name: User onboarding flow
platform: android
locale: en-US
goals:
- "Open the app and tap Get Started"
- "Enter email address and password on the signup screen"
- "Verify the home dashboard loads with a welcome message"
Run it:
fusiontest run --file tests/goals/onboarding.yaml
๐ CI/CD Integration
GitHub Actions
- name: Run FusionTest
uses: fusionleap/fusiontest-action@v1
with:
goal-file: tests/goals/smoke.yaml
platform: android
api-key: ${{ secrets.FUSIONTEST_API_KEY }}
Bitrise / Fastlane
See docs/ci-integrations.md for step-by-step guides.
๐ Reporting
Every test run produces:
- Pass/fail summary with stability score
- Screen-by-screen action log
- Video recording of the test session
- Bug report with screenshot + repro steps (on failure)
Results are posted to your FusionTest dashboard and optionally to Slack.
๐ Configuration
# fusiontest.config.yaml
model:
backbone: mpnet-base # or: gpt-4o, claude-sonnet (for MVP/fallback)
precision_threshold: 0.97
max_retries: 3
guardrails:
loop_detection: true
loop_window: 5 # check last N screen states
backtrack_on_invalid: true
max_backtracks: 2
devices:
android:
farm: browserstack # or: aws-device-farm, local
desktop:
vision_fallback: true # enable for non-accessible UIs
playwright_for_electron: true
reporting:
slack_webhook: ${SLACK_WEBHOOK}
save_recordings: true
dashboard_url: https://app.fusionleap.io
๐บ Roadmap
- Core LLM action model (MPNet / GPT-4o / Claude backends)
- Android adapter (UIAutomator2 + Appium)
- iOS adapter (XCUITest + Appium)
- Desktop adapter โ Playwright / Electron (with vision fallback)
- Desktop adapter โ Windows (WinAppDriver / UIA)
- Desktop adapter โ macOS (NSAccessibility + PyObjC)
- Guardrails engine (invalid actions, loops, backtrack)
- Goal completion verifier (LLM + heuristic fallback)
- Video recording โ Playwright WebMโMP4, Appium, Windows screenshot stitch
- Reporting โ JSON, Slack webhooks, GitHub Actions annotations
- CLI โ
fusiontest run / init / demo / report - MPNet fine-tuning pipeline (
fusiontest/training/) - FusionLeap cloud dashboard (React + Recharts + SaaS pages)
- Dashboard backend API (FastAPI + PostgreSQL/Supabase)
- SaaS backend โ auth, org management, API keys, webhooks, billing
- Marketing website (Next.js,
website/) - Integration tests โ runner, guardrails, goal verifier
- CI/CD integration guides (
docs/ci-integrations.md) - Autonomous Test Discovery โ auto-crawl website โ generate goals โ execute
- RAG test library (few-shot goal โ flow)
- Multi-locale parallel execution
- Cross-app flow testing (desktop)
๐ค Contributing
See CONTRIBUTING.md. We welcome issues, PRs, and test goal examples from the community.
๐ License
MIT ยฉ FusionLeap.io
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 fusiontest-0.1.8.tar.gz.
File metadata
- Download URL: fusiontest-0.1.8.tar.gz
- Upload date:
- Size: 66.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2d86b8fc61656d4bf2eee6940b07d85ad621701856df8bc30941ccc767219b4
|
|
| MD5 |
ffb4311725f5add4f4c1775872a945df
|
|
| BLAKE2b-256 |
84a05c3b4b0a6d525fc20bfce62d459343446e737adbe59458c0551526f2694e
|
File details
Details for the file fusiontest-0.1.8-py3-none-any.whl.
File metadata
- Download URL: fusiontest-0.1.8-py3-none-any.whl
- Upload date:
- Size: 76.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0e44e5d65c0f97cb4244071cd534d4ebdeea8ddb0155c8349389d67155755bb
|
|
| MD5 |
50f2161c4d34fc0db1996a1823927398
|
|
| BLAKE2b-256 |
47b01b7300958f42defab788e201b9c0a8dbdb67ebe163b21c53c70d24c9a3ff
|