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

  1. Mergi la Administrare → Pluginuri

  2. Vezi lista pluginuri instalate:

    TLTest
    ├─ Status: Enabled/Disabled
    ├─ Version: 1.0
    ├─ Author: TestLink Team
    └─ Actions: Configure, Disable, Delete
    
  3. 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:

  1. Obțin plugin-ul (din distribuție sau descarcă)

  2. Copież folder-ul în plugins/:

    testlink-upgraded/plugins/
    ├─ TLTest/
    └─ NewPlugin/  ← Adăugat
       ├─ NewPlugin.php
       ├─ pages/
       └─ lang/
    
  3. Reload TestLink sau clear cache

  4. Activez în Administrare → Pluginuri

Dezactivare Plugin

Dacă nu mai vrei plugin:

  1. Administrare → Pluginuri
  2. Selectează pluginul
  3. Apasă Disable

Datele se păstrează, plugin nu mai se execută.

Ștergere Plugin

⚠️ ATENȚIE: Ștergerea se nu se poată recupera.

  1. Administrare → Pluginuri → [Plugin]
  2. Apasă Delete
  3. 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:

  1. README.plugins.md - Documentație completa
  2. TLTest plugin - Exemplu
  3. events_inc.php - Lista hook-urilor disponibile
  4. 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! 🏠