Pluginuri - sebiboga/testlink-upgraded GitHub Wiki
Sistem de Pluginuri 🔌
Ce sunt Pluginurile?
Pluginurile sunt extensii care permit personalizarea și extinderea funcționalității TestLink:
TestLink Core
↓
+ Plugin 1 (Custom Reporting)
+ Plugin 2 (External Integration)
+ Plugin 3 (Automation)
↓
= TestLink Extended
Cum Funcționează Pluginurile?
Hook System (Sistem de Cuplare)
Pluginurile "ascultă" evenimentele din TestLink și reacționează:
Utilizatorul execută test → FAIL
↓
System declanșează hook: "after_test_execution"
↓
Pluginurile care ascultă acest hook sunt notificate
↓
Plugin 1: "Creează bug în JIRA"
Plugin 2: "Trimite notificare Slack"
Plugin 3: "Actualizează statistici"
↓
Toate reacțiile apar automat
Plugin-uri Disponibile în v1.9.20
TLTest (Exemplu Inclus)
Plugin demo care arată:
- Cum se creează un plugin
- Cum se configurează
- Cum se folosesc hook-urile
- Suport multi-limbă
Acces: Administrare → Pluginuri → TLTest
Configurarea Pluginurilor
Pentru Administrator
-
Mergi la Administrare → Pluginuri
-
Vezi lista pluginuri instalate:
TLTest ├─ Status: Enabled/Disabled ├─ Version: 1.0 ├─ Author: TestLink Team └─ Actions: Configure, Disable, Delete -
Apasă Configure pentru a seta parametri
Configurare Per-Proiect
Alguns pluginuri pot fi configurate diferit pe fiecare proiect:
Plugin: CustomReporting
Proiect: Banking v1.5
├─ Report Format: PDF
├─ Recipients: [email protected]
└─ Schedule: Daily 17:00
Proiect: Mobile App v2.0
├─ Report Format: Excel
├─ Recipients: [email protected]
└─ Schedule: Weekly Friday
Hook-urile Disponibile
Pluginurile pot "ascolta" aceste evenimente:
| Hook | Triggered When | Exemplu |
|---|---|---|
after_project_create |
Proiect nou creat | Auto-setup integri |
after_testcase_create |
Test case creat | Auto-link cerințe |
after_testcase_update |
Test case editat | Notify team |
before_test_execution |
Înainte de execuție | Pre-checks |
after_test_execution |
După execuție | Report, Notify |
after_bug_report |
Bug raportate | Sync JIRA |
on_test_fail |
Test eșuează | Create issue |
on_build_closed |
Build închis | Generate report |
Cazuri de Utilizare
1️⃣ Custom Reporting
Plugin care generează rapoarte personalizate:
Raport Personalizat:
├─ Format: Company-branded PDF
├─ Data: Ziua trecută
├─ Destinații: Managerul proiectului
├─ Grafice: Custom metrics
└─ Distribuție: Automată zilnic
2️⃣ Slack/Teams Integration
Notificări în timp real:
Test eșuează
↓
Plugin interceptează hook "on_test_fail"
↓
Trimite la Slack:
"❌ Test TC-050 FAILED
Tester: Ion Popescu
Platform: Windows
Bug: Password visible in plain text"
3️⃣ JIRA Automation
Workflow automat:
Test FAIL + Bugzilla config
↓
Plugin creează JIRA issue
↓
JIRA ID: PROJ-2024-456
↓
Plugin linkează cu TestLink
↓
Tester vede linkul automat
4️⃣ Automated Tagging
Auto-categorizare:
Test case creat
↓
Plugin analizează titlu și descriere
↓
Auto-atribuie:
├─ Type: Functional
├─ Priority: High
├─ Component: Payments
└─ Keywords: ["integration", "security"]
Instalare Plugin Nou
Cand Vrei să Instalezi Plugin:
-
Obțin plugin-ul (din distribuție sau descarcă)
-
Copież folder-ul în
plugins/:testlink-upgraded/plugins/ ├─ TLTest/ └─ NewPlugin/ ← Adăugat ├─ NewPlugin.php ├─ pages/ └─ lang/ -
Reload TestLink sau clear cache
-
Activez în Administrare → Pluginuri
Dezactivare Plugin
Dacă nu mai vrei plugin:
- Administrare → Pluginuri
- Selectează pluginul
- Apasă Disable
Datele se păstrează, plugin nu mai se execută.
Ștergere Plugin
⚠️ ATENȚIE: Ștergerea se nu se poată recupera.
- Administrare → Pluginuri → [Plugin]
- Apasă Delete
- Confirma
Troubleshooting
"Plugin nu se incarcă"
- Check
plugins/folder permissions - Verifica syntax în PluginName.php
- Check error logs
"Hook nu se declanșează"
- Verify plugin este Enabled
- Check hook name spelling
- Verify method exists în plugin class
"Configurație nu se salvează"
- Check database permissions
- Verify plugin_config_set() called
- Check project_id valid
Pentru Administratori
Best Practices
✅ DO:
- Review plugin source code înainte instalare
- Test plugins în dev/staging
- Disable unused plugins
- Backup înainte de instalare
- Monitor plugin performance
❌ DON'T:
- Nu instala plugins din surse necunoscute
- Nu rula plugins în production netestate
- Nu lăsa problematic plugins active
- Nu ștergi fără backup
Performance
Pluginurile pot afecta viteza:
Test Execution Timeline:
├─ Normal: 5 seconds
├─ + Custom Reporting Plugin: 5.5 sec
├─ + JIRA Sync Plugin: 6 sec
└─ Total: 6 seconds (acceptable)
Dacă plugin e lent:
- Disable-o temporar
- Contact plugin author
- Consider alternative
Pentru Dezvoltatori
Dacă vrei să creezi plugin, consulta:
- README.plugins.md - Documentație completa
- TLTest plugin - Exemplu
- events_inc.php - Lista hook-urilor disponibile
- plugin_api.php - API functions
Structura Plugin Minim
plugins/MyPlugin/
├─ MyPlugin.php
│ └─ class MyPlugin extends TestlinkPlugin {
│ function register() { ... }
│ function config() { ... }
│ function hooks() { ... }
│ function myHookHandler() { ... }
│ }
└─ lang/en/strings.txt
Exemple Hook Implementation
Hook: after_test_execution
// În plugin class
function hooks() {
return ['after_test_execution' => 'onTestExecuted'];
}
function onTestExecuted($data) {
if ($data['status'] == 'FAIL') {
// Trimite notificare
sendSlackNotification($data);
}
}
Security
Plugin Permissions
Pluginurile au acces la:
- ✅ Database
- ✅ File system (controlled)
- ✅ Configuration
- ✅ User info
- ❌ Sensitive data (cu restricții)
Validare
- Validate toți inputs
- Escape database queries
- Sanitize outputs
- Use secure APIs
🔌 Pluginurile fac TestLink infinit extensibil!
Gata cu Pluginuri? Merge la Home pentru alte pagini! 🏠