Framework unificato di test automation powered by AI
Supporto completo per test Mobile (iOS/Android) e Web (Browser)
|
|
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Home β π Editor β π€ Generator β βοΈ Config β
β β β
β βΆοΈ Execute β π Reports β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
# Clona il repository
git clone https://github.com/pdellibergoli/ai-test-automation.git
cd aitestautomation
# Crea e attiva ambiente virtuale
python -m venv .venv
# Windows
.venv\Scripts\activate
# Mac/Linux
source .venv/bin/activate
# Installa dipendenze
pip install -r requirements.txtMetodo 1: Tramite Web UI (Raccomandato)
# Avvia il framework
python web_editor.py
# Nel browser:
# 1. Vai su http://127.0.0.1:5000
# 2. Clicca su "Configurazione"
# 3. Seleziona il provider LLM (Gemini, OpenAI, Ollama)
# 4. Inserisci la tua API key
# 5. SalvaMetodo 2: Manualmente via .env
Crea un file .env nella root del progetto:
# Gemini (Raccomandato - Free Tier disponibile)
GOOGLE_API_KEY=your_google_api_key_here
GEMINI_MODEL=gemini-2.5-flash
# Opzionale: Altri provider
# OpenAI
OPENAI_API_KEY=your_openai_key
OPENAI_MODEL=gpt-4.1-mini
# Ollama (Locale)
USE_LOCAL_LLM=false
LOCAL_LLM=llava:13b
OLLAMA_BASE_URL=http://localhost:11434
# Provider attivo
WEB_LLM_PROVIDER=gemini # Opzioni: gemini, openai, ollama# Browser automation
playwright install chromium --with-deps
# Mobile automation (se necessario)
npm install -g appium
appium driver install uiautomator2 # Android
appium driver install xcuitest # iOS (solo su Mac)python web_editor.pyIl browser si aprirΓ automaticamente su http://127.0.0.1:5000
Punto di partenza per tutte le operazioni:
- Editor Test Case: Gestisci i tuoi test
- Genera Test Case: Crea test con l'AI
- Configurazione: Imposta provider LLM e API keys
- Vedi Report: Analizza le esecuzioni
| Feature | Descrizione |
|---|---|
| Gestione File | Carica, crea, e seleziona file Excel |
| Modifica Live | Click su cella per editing immediato |
| Toggle Active | Checkbox per abilitare/disabilitare test |
| Aggiungi/Rimuovi | Icone intuitive per gestire righe |
| Esecuzione | Avvia test con log in tempo reale |
| Stop Immediato | Interrompi esecuzione in qualsiasi momento |
1. Carica file requisiti β 2. Seleziona prompt
β
3. Clicca "Genera" β 4. Monitora progresso
β
5. Scarica CSV β 6. Importa nell'editor
Features:
- Log in tempo reale della generazione
- Interruzione sicura del processo
- Export diretto in formato CSV
- Memorizzazione ultimo prompt usato
- Configurazione LLM dinamica
Gestione centralizzata dei provider LLM:
Supported Providers:
- Google Gemini (Free tier disponibile, raccomandato per iniziare)
- OpenAI (GPT-4, GPT-4.1-mini, etc.)
- Ollama (LLM locali, privacy totale)
Features:
- π Cambio provider senza riavvio
- π Gestione sicura delle API keys
- π Configurazione modelli specifici
- πΎ Salvataggio automatico in
.env - β Validazione real-time delle impostazioni
Guida Rapida:
- Seleziona il provider dal menu dropdown
- Inserisci l'API key (recuperala dai link forniti)
- (Opzionale) Personalizza il nome del modello
- Clicca "Salva Configurazione"
- La nuova configurazione Γ¨ immediatamente attiva
- Lista cronologica di tutte le esecuzioni
- Apertura diretta dei report HTML
- Eliminazione report obsoleti
- Filtri e ricerca integrati
aitestautomation/
β
βββ π CORE
β βββ web_editor.py # β Entry point principale
β βββ main_runner.py # Test execution engine
β βββ config_manager.py # Gestione configurazione dinamica
β βββ dati_test.xlsx # Template file Excel
β βββ llm_models.json # Definizione provider LLM
β βββ .env # Configurazione (gitignored)
β βββ requirements.txt # Dipendenze Python
β
βββ π¨ FRONTEND
β βββ templates/
β βββ home.html # Dashboard principale
β βββ index.html # Editor test case
β βββ generate_tests.html # Generatore AI
β βββ config.html # β Configurazione LLM (NUOVO)
β βββ reports.html # Viewer report
β
βββ π§ͺ TEST ENGINE
β βββ tests/
β βββ test_generator.py # AI test generation
β βββ mobile_test_executor.py # Mobile automation
β βββ web_test_executor.py # Web automation
β
βββ π οΈ UTILITIES
β βββ utilities/
β βββ excel_utils.py # Excel I/O operations
β βββ report_utils.py # HTML report generation
β βββ ... # Altri helper
β
βββ π OUTPUT
β βββ reports/unified/ # Report HTML generati
β βββ screen/ # Screenshot test failures
β
βββ π DOCS
βββ docs/ # Documentazione aggiuntiva
| Component | Versione | Scopo |
|---|---|---|
| Python | 3.11+ | Runtime principale |
| Node.js | Latest LTS | Appium Server |
| Chromium | Latest | Web testing |
| Appium | 2.0+ | Mobile testing |
TestID | Descrizione | Task | Active | Device | Execution | Platform
DeviceName | UDID | AppID | AppPackage | AppActivity
π‘ Tip: L'editor web crea automaticamente la struttura corretta!
-
Configura il tuo LLM (prima volta):
- Vai su "Configurazione"
- Seleziona il provider (es. Gemini)
- Inserisci l'API key
- Salva
-
Genera con AI:
- Vai su "Genera Test Case"
- Carica
requisiti.txt - Seleziona
prompt_costruisci_test.txt - Click "Genera" e attendi
-
Modifica nell'Editor:
- Apri il CSV generato
- Affina le descrizioni
- Imposta
Active=TRUE
-
Esegui:
- Click "Avvia Test"
- Monitora log in tempo reale
- Controlla screenshot in caso di errori
-
Analizza Report:
- Vai su "Vedi Report"
- Apri il report HTML
- Analizza metriche e failures
π Google Gemini (Raccomandato)
Pro:
- β Free tier generoso
- β Ottima qualitΓ /prezzo
- β Veloce e affidabile
- β Modelli vision inclusi
Setup:
GOOGLE_API_KEY=your_key_here
GEMINI_MODEL=gemini-2.5-flash # o gemini-2.0-pro
WEB_LLM_PROVIDER=geminiOttieni la key: Google AI Studio
π΅ OpenAI
Pro:
- β Modelli piΓΉ avanzati (GPT-4)
- β Documentazione eccellente
- β Supporto enterprise
Setup:
OPENAI_API_KEY=your_key_here
OPENAI_MODEL=gpt-4.1-mini # o gpt-4
WEB_LLM_PROVIDER=openaiOttieni la key: OpenAI Platform
π Ollama (Locale)
Pro:
- β Gratuito al 100%
- β Privacy totale
- β Nessun rate limit
- β Offline
Setup:
# 1. Installa Ollama: https://ollama.ai/
# 2. Scarica un modello: ollama pull llava:13b
# In .env:
USE_LOCAL_LLM=true
LOCAL_LLM=llava:13b
OLLAMA_BASE_URL=http://localhost:11434
WEB_LLM_PROVIDER=ollamaNote: Richiede GPU per prestazioni ottimali.
Non serve riavviare l'applicazione:
- Vai su
/config - Seleziona nuovo provider
- Inserisci credenziali
- Salva β Configurazione attiva immediatamente
β ModuleNotFoundError: No module named 'pandas'
Causa: Ambiente virtuale non attivo
Soluzione:
# Windows
.venv\Scripts\activate
# Mac/Linux
source .venv/bin/activate
pip install -r requirements.txt
python web_editor.pyβ TemplateNotFound: config.html
Causa: File template mancante
Soluzione:
Verifica che la cartella templates/ esista e contenga:
home.htmlindex.htmlgenerate_tests.htmlconfig.htmlβ nuovoreports.html
β API Key non valida o missing
Soluzione:
- Vai su
/confignell'interfaccia web - Verifica di aver inserito la key corretta
- Clicca "Salva Configurazione"
- Prova nuovamente l'esecuzione
Debug manuale .env:
# Verifica .env esiste
ls -la .env # Mac/Linux
dir .env # Windows
# Controlla contenuto
cat .env # Mac/Linux
type .env # Windowsβ Cache browser non aggiorna l'interfaccia
Soluzione:
1. Hard Refresh: Ctrl+Shift+R (Windows) / Cmd+Shift+R (Mac)
2. Oppure: Apri finestra in incognito
3. Oppure: Svuota cache browser
β UnicodeEncodeError su Windows
Soluzione:
# Opzione 1: Avvia con UTF-8
python -X utf8 web_editor.py
# Opzione 2: Rimuovi emoji dai file .py
# (cerca caratteri come β
π nei file config_manager.py, main_runner.py)β llm_models.json non trovato
Causa: File di configurazione LLM mancante
Soluzione:
Crea il file llm_models.json nella root del progetto con questo contenuto:
{
"gemini": {
"name": "Google Gemini",
"fields": [
{ "id": "GOOGLE_API_KEY", "label": "API Key", "type": "password" },
{ "id": "GEMINI_MODEL", "label": "Model Name", "type": "text", "default": "gemini-2.5-flash" }
],
"env_to_set": { "WEB_LLM_PROVIDER": "gemini", "USE_LOCAL_LLM": "false" }
},
"openai": {
"name": "OpenAI",
"fields": [
{ "id": "OPENAI_API_KEY", "label": "API Key", "type": "password" },
{ "id": "OPENAI_MODEL", "label": "Model Name", "type": "text", "default": "gpt-4.1-mini" }
],
"env_to_set": { "WEB_LLM_PROVIDER": "openai", "USE_LOCAL_LLM": "false" }
},
"ollama": {
"name": "Ollama (Locale)",
"fields": [
{ "id": "LOCAL_LLM", "label": "Model Name", "type": "text", "default": "llava:13b" },
{ "id": "OLLAMA_BASE_URL", "label": "Base URL", "type": "text", "default": "http://localhost:11434" }
],
"env_to_set": { "WEB_LLM_PROVIDER": "ollama", "USE_LOCAL_LLM": "true" }
}
}Contributi benvenuti! Per contribuire:
- Fork del repository
- Crea un branch (
git checkout -b feature/AmazingFeature) - Commit delle modifiche (
git commit -m 'Add AmazingFeature') - Push del branch (
git push origin feature/AmazingFeature) - Apri una Pull Request
- π Documentazione Completa: Vedi cartella
docs/ - π₯ Video Tutorial: [Coming Soon]
- π Bug Reports: GitHub Issues
| Categoria | Tecnologie |
|---|---|
| Backend | Python, Flask |
| Testing | Appium, Playwright, Browser-Use |
| AI/ML | LangChain, Google Gemini, OpenAI, Ollama |
| Data | Pandas, Excel |
| Frontend | Bootstrap 5, JavaScript |
| Cloud | LambdaTest Integration |
Questo progetto Γ¨ rilasciato sotto licenza MIT License - vedi il file LICENSE per dettagli.
Un grazie speciale a:
- Browser-Use - Web automation framework
- App-Use - Mobile automation utilities
- Appium - Cross-platform mobile testing
- Flask - Web framework
- Pandas - Data manipulation
- LangChain - AI orchestration