Skip to Content
TestingLastne trditve

Lastne trditve

Custom assertions zahtevo spremenijo v ukaz, ki ga lahko izvede VM harness. Uporabite jih za vedenje, ki ga majhna privzeta zbirka ne pokriva.

Struktura

Vsaka skupina custom-test potrebuje description in eno ali več 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 obvezen pri skupini in pri vsaki assertion. on_vm izbere ID VM v testnem okolju z več VM; brez tega runner uporabi primary. expected_visual poda predvideni stan zaslonske slike, ko je aktiven visual evidence gate.

Oblikujte trditve okoli izidov

  • Storitev preverite z service_running, ne le obstoja paketa.
  • Pred preizkusom zunanje poti preverite lokalni endpoint.
  • Za en stabilen konfiguracijski podatek uporabite file_contains, ne complete-file snapshot, ki odpove ob neškodnem oblikovanju.
  • command_succeeds uporabite le z determinističnimi, non-interactive commands.
  • Dolgim ukazom dajte timeout_seconds le, ko je potrebno. Executor omeji command timeouts na 1–1.800 sekund.
  • Nikoli ne vnašajte credentials v commands, descriptions, expected output ali URL; ta polja se lahko pojavijo v evidenci in dnevnikih.

Semantika neuspeha

Neznan type recipe model trenutno sprejme, a postane error, če executor ne najde handler. Pri znanih assertions brez required parameters lahko med test-plan assembly pride do izločitve z opozorilom. Pred zagonom builda recept preverite in preglejte materialized test plan.

Če on_vm poimenuje VM, ki ni prisoten, je assertion skipped. skipped ali error ne obravnavajte kot uspešno verification.

Primer z več 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 je odvisna od test topology in odkritih naslovov. V run evidence potrdite rendered topology in resolved command assertion.

Za vsak supported type in parameter glejte Vrste trditev.