Report Portal

Becsült olvasási idő:
2 perc

Hol is kezdjem? Ma is elégettem nem kevés tokent, bár szerencsére ezek ingyen vannak/voltak. Amit ki akartam próbálni, hogy telepítettem egy Rider-t, ami egy IDE, és nekem a .net miatt van rá szükség, majd pedig a Copilot-tal és Gemini-vel elkezdtem ebből egy Playwright, Nunit és .net projectet faragni. Aztán jött a szokásos nehézség, kell egy jelentést generáló eszköz, ami többet vagy épp másképpen tud, mint az Allure. Az AI azt mondta, h Report Portal.

Nem volt mit tenni, elkezdtem belefaragni ezt, és az API kulcs generáláson kívül minden lépést az AI CLI-on keresztül csináltam meg. Szerintem elég pofás lett a végeredmény, de majd erről egy másik bejegyzésben írok részletesebben.

Most inkább megmutatom, hogy mit tud a Report Portal.

Mit mond a Gemini?

A ReportPortal egy nyílt forráskódú (Open Source), AI-alapú tesztriportáló és analitikai platform. Elsősorban automatizált tesztek eredményeinek gyűjtésére, vizualizálására és elemzésére szolgál.

Főbb jellemzők és előnyök

  • Központi dashboard: Egységes felületen gyűjti össze a különböző tesztkeretrendszerekből és CI/CD csatornákból származó teszteredményeket.
  • AI / Machine Learning alapú hibaelemzés: A korábbi futtatások alapján automatikusan felcímkézi a hibákat (pl. termékhiba, teszthiba, infrastruktúra-probléma), így drasztikusan csökkenti a manuális triázsolásra fordított időt.
  • Valós idejű analitika: A tesztek futása közben élőben láthatók az eredmények, trendek és statisztikák.
  • Integrációk: Szorosan együttműködik hibakövető rendszerekkel (Jira, Rally, Redmine) és CI/CD eszközökkel (Jenkins, GitLab CI, GitHub Actions).

A ReportPortal architektúrája

A ReportPortal mikroszolgáltatás-alapú architektúrát használ, amely több konténerből áll (API Service, UI, Index Service/AI Engine, PostgreSQL, RabbitMQ, OpenSearch/Elasticsearch). Ezért a legegyszerűbb és legajánlottabb módja a lokális futtatásnak a Docker / Docker Compose.

Integráció lokális projektbe (Lépésről lépésre)

1. Lokális ReportPortal szerver elindítása (Docker Compose)

Helyi teszteléshez futtasd a ReportPortal szervert a saját gépeden:

  1. Töltsd le a hivatalos Docker Compose fájlt:
    Bash curl -LO https://raw.githubusercontent.com/reportportal/reportportal/master/docker-compose.yml
  2. Indítsd el a konténereket:
    Bashdocker compose up -d
  3. Nyisd meg a böngészőben a http://localhost:8080 címet.
  4. Lépj be az alapértelmezett adatokkal (User: superadmin, Jelszó: erebus).
  5. Hozz létre egy új Projectet, és a profilbeállításoknál másold ki az API Access Token-t.

2. Tesztkeretrendszer integrálása a projektedbe

A ReportPortal szinte minden népszerű nyelvhez és tesztkeretrendszerhez biztosít kliens könyvtárat (Agent):

  • Java: JUnit, TestNG, Cucumber
  • Python: Pytest, Robot Framework, Behave
  • JavaScript / TypeScript: Playwright, Cypress, Jest, Mocha
  • .NET: NUnit, xUnit, SpecFlow
Példa: Pytest (Python) integráció
  1. Telepítsd a pytest agentet:
    Bash pip install pytest-reportportal
  2. Hozz létre egy pytest.ini fájlt a projekt gyökerében:
    Ini, TOML[pytest] rp_api_key = az_a_token_amit_a_profilodban_masoltal rp_endpoint = http://localhost:8080 rp_project = a_projekt_neve rp_launch = Helyi_Pytest_Futtatas rp_launch_attributes = 'Env:Local' 'Type:Smoke'
  3. Futtasd a teszteket a ReportPortal plugin aktiválásával:
    Bash pytest --reportportal
Példa: Playwright (Node.js / TypeScript) integráció
  1. Telepítsd az agentet:
    Bash npm install --save-dev @reportportal/agent-js-playwright
  2. Add hozzá a playwright.config.ts fájlhoz a riportert:
    TypeScript const RPconfigFile = { apiKey: 'az_a_token_amit_a_profilodban_masoltal', endpoint: 'http://localhost:8080/api/v1', project: 'a_projekt_neve', launch: 'Playwright_Helyi_Futtatas', attributes: [{ key: 'Env', value: 'Local' }], }; export default defineConfig({ reporter: [['@reportportal/agent-js-playwright', RPconfigFile]], });
  3. Futtasd a teszteket a megszokott módon:Bash npx playwright test
Szerző:
Kategória:
,
Bejegyzés dátuma:

Hozzászólások

Vélemény, hozzászólás?