Skip to Content
TestingVlastné asercie

Vlastné asercie

Custom assertions zmenia požiadavku na príkaz, ktorý môže VM harness spustiť. Použite ich pre správanie, ktoré malá predvolená sada nepokrýva.

Štruktúra

Každá skupina custom-test potrebuje description a jednu alebo viac structured assertions:

{ "description": "Verify the web service", "category": "application", "assertions": [ { "type": "service_running", "description": "Nginx is active", "params": { "service": "nginx" }, "expected_visual": "The evidence panel shows nginx active" }, { "type": "http_responds", "description": "Local health endpoint responds", "params": { "url": "http://localhost/health", "status": 200 } } ] }

description je povinné pri skupine aj pri každej assertion. on_vm vyberie ID VM v testovacom prostredí s viacerými VM; bez neho runner použije primary. expected_visual udáva zamýšľaný stav snímky obrazovky, keď je aktívna visual evidence gate.

  • Službu overte pomocou service_running, nie len existenciu balíka.
  • Pred testom externej trasy overte lokálny endpoint.
  • Pre jeden stabilný konfiguračný údaj použite file_contains, nie complete-file snapshot, ktorý zlyhá pri neškodnom formátovaní.
  • command_succeeds používajte len s deterministickými, non-interactive commands.
  • Dlhým príkazom dajte timeout_seconds len keď je to potrebné. Executor obmedzuje command timeouts na 1–1 800 sekúnd.
  • Nikdy nedávajte credentials do commands, descriptions, expected output ani URL; tieto polia sa môžu objaviť v evidencii a logoch.

Sémantika zlyhania

Neznámy type recipe model momentálne prijme, ale ak executor nenájde handler, skončí ako error. Pri známych assertions bez required parameters môže počas test-plan assembly dôjsť k vyradeniu s varovaním. Pred spustením buildu receptúru overte a prezrite materialized test plan.

Ak on_vm pomenuje VM, ktorá nie je k dispozícii, assertion je skipped. skipped ani error nepovažujte za úspešné verification.

Príklad s viacerými VM

{ "description": "Client reaches the API node", "assertions": [ { "type": "http_responds", "description": "API health is reachable from the client", "on_vm": "client", "params": { "url": "http://api:8080/health", "status": 200 } } ], "environment": { "vms": [ { "vm_id": "client", "role": "client", "networks": ["lan"] }, { "vm_id": "api", "role": "server", "networks": ["lan"] } ], "networks": [ { "network_id": "lan", "type": "isolated", "dhcp": true } ] } }

VM-name resolution závisí od test topology a objavených adries. V run evidence overte rendered topology a resolved command assertion.

Pre každý supported type a parameter pozrite Typy asercií.