Skip to Content
TestingEgendefinerte påstander

Egendefinerte påstander

Custom assertions gjør et krav om til en kommando VM-harnessen kan kjøre. Bruk dem for atferd den lille standardsuiten ikke dekker.

Struktur

Hver custom-test group trenger description og én eller flere 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 er påkrevd både på group og på hver assertion. on_vm velger en VM-ID i et multi-VM test environment; uten den bruker runneren primary. expected_visual angir tiltenkt screenshot state når visual evidence gate er aktiv.

Utform påstander rundt resultater

  • Sjekk en tjeneste med service_running, ikke bare at pakken finnes.
  • Sjekk et lokalt endpoint før du tester en ekstern route.
  • Bruk file_contains for ett stabilt konfigurasjonsfaktum, ikke en complete-file snapshot som feiler ved harmløs formatering.
  • Bruk command_succeeds bare med deterministiske, non-interactive commands.
  • Gi lange commands timeout_seconds bare når det trengs. Executoren begrenser command timeouts til 1–1.800 sekunder.
  • Legg aldri credentials i commands, descriptions, expected output eller URL; disse feltene kan vises i evidence og logger.

Feilsemantikk

En unknown type aksepteres foreløpig av recipe model, men blir error når executoren ikke finner en handler. Kjente assertions uten required parameters kan fjernes under test-plan assembly med en advarsel. Valider derfor oppskriften, og gå gjennom materialized test plan før du starter en build.

Hvis on_vm navngir en VM som ikke finnes, er assertionen skipped. Ikke behandle skipped eller error som vellykket verification.

Multi-VM-eksempel

{ "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 avhenger av test topology og dens discovered addresses. Bekreft rendered topology og assertionens resolved command i run evidence.

For hver supported type og parameter, se Påstandstyper.