Skip to Content
TestingAnpassade assertioner

Anpassade assertioner

Custom assertions gör om ett krav till ett kommando som VM-harnessen kan köra. Använd dem för beteende som den lilla standardsviten inte täcker.

Struktur

Varje custom-test group behöver description och en eller flera 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 krävs både på group och på varje assertion. on_vm väljer ett VM-ID i en multi-VM test environment; utan det använder runnern primary. expected_visual anger avsedd screenshot state när visual evidence gate är aktiv.

Utforma assertioner kring resultat

  • Kontrollera en tjänst med service_running, inte bara att paketet finns.
  • Kontrollera en lokal endpoint innan du testar en extern route.
  • Använd file_contains för ett stabilt konfigurationsfaktum, inte en complete-file snapshot som bryts vid harmlös formatering.
  • Använd command_succeeds endast med deterministiska, non-interactive commands.
  • Ge långa commands timeout_seconds bara när det behövs. Executorn begränsar command timeouts till 1–1.800 sekunder.
  • Lägg aldrig credentials i commands, descriptions, expected output eller URL; dessa fält kan synas i evidence och loggar.

Semantik vid fel

En unknown type accepteras för närvarande av recipe model men blir error när executorn inte hittar någon handler. Kända assertions som saknar required parameters kan tas bort under test-plan assembly med en varning. Validera därför receptet och granska materialized test plan innan du startar en build.

Om on_vm namnger en VM som saknas är assertionen skipped. Behandla inte skipped eller error som lyckad verification.

Multi-VM-exempel

{ "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 beror på test topology och dess discovered addresses. Bekräfta rendered topology och assertionens resolved command i run evidence.

För varje supported type och parameter, se Assertionstyper.