사용자 정의 주장
사용자 지정 어설션은 요구 사항을 VM 하네스가 실행할 수 있는 명령으로 전환합니다. 소규모 기본 제품군에서 다루지 않는 동작에 사용하세요.
구조
각 사용자 정의 테스트 그룹에는 설명과 하나 이상의 구조화된 설명이 필요합니다. 주장:
{
"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는 그룹과 각 어설션 모두에 필요합니다. on_vm
다중 VM 테스트 환경에서 VM ID를 선택합니다. 그것 없이는 주자가 사용합니다
primary. expected_visual는 다음과 같은 경우 의도된 스크린샷 상태를 제공합니다.
시각적 증거 게이트가 활성화되었습니다.
결과에 대한 디자인 주장
- 단순히 패키지가 존재하는지 확인하는 것이 아니라
service_running를 사용하여 서비스를 확인합니다. - 외부 경로를 테스트하기 전에 로컬 엔드포인트를 확인하세요.
- 전체 파일이 아닌 하나의 안정적인 구성 사실에
file_contains를 사용하세요. 무해한 형식으로 인해 중단되는 스냅샷. - 결정적, 비대화형 명령에만
command_succeeds를 사용하세요. - 필요할 때만
timeout_seconds긴 명령을 실행하세요. 집행자 클램프 명령 시간 제한은 1~1,800초입니다. - 명령, 설명, 예상 출력 또는 URL에 자격 증명을 입력하지 마십시오. 이러한 필드는 증거 및 로그에 나타날 수 있습니다.
실패 의미론
알 수 없는 유형이 현재 레시피 모델에서 허용되지만
error 실행기가 핸들러를 찾을 수 없는 경우. 생략된 알려진 어설션
경고와 함께 테스트 계획 조립 중에 필수 매개변수가 삭제될 수 있습니다.
따라서 레시피를 검증하고 구체화된 테스트 계획을 검사하기 전에
빌드를 시작합니다.
on_vm가 존재하지 않는 VM의 이름을 지정하는 경우 어설션은 skipped입니다. 하지 마십시오
skipped 또는 error를 성공적인 검증으로 처리합니다.
다중 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 이름 확인은 테스트 토폴로지와 검색된 주소에 따라 달라집니다. 실행 시 렌더링된 토폴로지와 어설션의 해결된 명령을 확인합니다. 증거.
지원되는 모든 유형 및 매개변수에 대해서는 다음을 참조하세요. Assertion types.