Skip to Content
TestingVlastní aserce

Vlastní aserce

Custom assertions změní požadavek na příkaz, který může VM harness spustit. Použijte je pro chování, které malá výchozí sada nepokrývá.

Struktura

Každá skupina custom-test potřebuje description a jednu nebo více 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é u skupiny i u každé assertion. on_vm vybere ID VM v testovacím prostředí s více VM; bez něj runner použije primary. expected_visual udává zamýšlený stav snímku obrazovky, když je aktivní visual evidence gate.

  • Službu ověřte pomocí service_running, ne jen existenci balíčku.
  • Před testem externí trasy ověřte lokální endpoint.
  • Pro jeden stabilní konfigurační údaj použijte file_contains, ne complete-file snapshot, který selže kvůli neškodnému formátování.
  • command_succeeds používejte jen s deterministickými, non-interactive commands.
  • Dlouhým příkazům dejte timeout_seconds jen když je to potřeba. Executor omezuje command timeouts na 1–1 800 sekund.
  • Nikdy nedávejte credentials do commands, descriptions, expected output ani URL; tato pole se mohou objevit v evidenci a logách.

Sémantika selhání

Neznámý type recipe model momentálně přijme, ale pokud executor nenajde handler, skončí jako error. U známých assertions bez required parameters může během test-plan assembly dojít k vyřazení s varováním. Před spuštěním buildu recepturu ověřte a prohlédněte materialized test plan.

Pokud on_vm pojmenuje VM, která není k dispozici, assertion je skipped. skipped ani error nepovažujte za úspěšné verification.

Příklad s více 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í na test topology a objevených adresách. V run evidence ověřte rendered topology a resolved command assertion.

U každého supported type a parametru viz Typy asercí.