Práce s logy v testování: struktura, typy a nástroje
Log je textový záznam události v systému. Každý záznam obsahuje časovou známku (timestamp), úroveň protokolování (INFO, DEBUG, WARN, ERROR, FATAL), zdroj (služba nebo modul) a popis události. Při chybách se přidává stack trace – posloupnost volání funkcí, která ukazuje cestu provádění kódu do selhání.
Stack trace obsahuje soubory, třídy a metody zapojené do operace. To je klíčové pro lokalizaci chyb v backendu nebo mobilních aplikacích, kde uživatelské rozhraní nedává detaily.
Rol logů v QA procesu
Logy potvrzují existenci chyby, určují její úroveň (klient, server, integrace) a poskytují data pro vývojáře. Jsou užitečné při nestabilních chybách, kdy nástroje pro vývoj nebo sniffery nestačí, nebo při serverových chybách 500 bez popisu.
Testovač z logů extrahuje:
- Parametry požadavků a odpovědí.
- Stack trace pro opravu.
- Frekvenci opakování chyby.
To zrychluje opakované testování a nasazení oprav.
Serverové logy: přístup a analýza
Serverové logy zaznamenávají požadavky, parametry, odpovědi a chyby. Přístup je možný přes SSH do /var/log/ (syslog, access_log) nebo prostřednictvím specializovaných systémů.
Přímý přístup přes SSH
Připojení přes SSH umožňuje číst surové logy na Linuxových serverech. Používají se příkazy pro filtrování: grep podle ERROR, tail -f pro reálný čas. Užitečné bez UI nástrojů.
Centrální systémy
- Kibana: Hledání podle úrovně, času, služby. Filtry pro chyby 500/422, zobrazení požadavků/odpovědí.
- Sentry: Detaily požadavku, stack trace, frekvence chyb. Předávání hlášení vývojářům.
- Grafana: Dashboardy s metrikami chyb 4xx/5xx podle období a endpointů.
- Loguru: Jednoduché textové logy s časovou značkou a úrovní pro základní analýzu.
| Nástroj | Hlavní funkce | Použití v QA |
|--------|----------------|--------------|
| Kibana | Filtrování událostí | Lokalizace plovoucích chyb |
| Sentry | Stack trace | Předání vývojářům |
| Grafana | Metriky chyb | Monitorování systémových selhání |
| Loguru | Textové logy | Základní prohlížení |
Logy brokerů zpráv
V asynchronních systémech (Apache Kafka) logy zaznamenávají výměnu zpráv. Chyby: nedostatečná doručení, špatný formát, zpoždění. Analýza přes Kibana, Loggly, Datadog nebo Confluent Control Center.
Příklad: požadavek na historii bojů – logy spotřebitelů služeb odhalují selhání při zpracování.
Mobilní logy: ADB a Logcat
Pro Android: ADB připojuje zařízení/emulátor, Logcat zobrazuje žurnál událostí (obrazovky, akce, chyby). Filtry podle ERROR (E), hledání zaseknutí.
Logcat je nezbytný, když UI mlčí o chybách.
Logy kontejnerů Docker
Ve Dockeru jsou logy kontejnerů dostupné příkazem docker logs <container_id>. Zaznamenávají výstup stdout/stderr aplikací. Užitečné pro mikroslužby: kombinace s Kubernetes (kubectl logs) pro orchestraci.
Filtrování: --tail, --since pro aktuální záznamy. Integrace s ELK-stackem (Elasticsearch, Logstash, Kibana) pro škálování.
Důležité:
- Logy jsou hlavním nástrojem lokalizace po UI nástrojích.
- Úrovně: INFO/DEBUG pro trasování, ERROR/FATAL pro selhání.
- Stack trace je povinný pro vývojáře.
- Nástroje: Kibana/Sentry pro vyhledávání, Grafana pro metriky.
- Mobilní: ADB Logcat, kontejnery: docker logs.
— Editorial Team
Zatím žádné komentáře.