การยืนยันที่กำหนดเอง
การยืนยันแบบกำหนดเองจะเปลี่ยนข้อกำหนดให้เป็นคำสั่งที่ชุดควบคุม VM สามารถทำได้ ใช้สิ่งเหล่านี้สำหรับลักษณะการทำงานที่ชุดโปรแกรมเริ่มต้นขนาดเล็กไม่ครอบคลุม
โครงสร้าง
กลุ่มการทดสอบแบบกำหนดเองแต่ละกลุ่มต้องมีคำอธิบายและมีโครงสร้างอย่างน้อย 1 รายการ การยืนยัน:
{
"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 ID ในสภาพแวดล้อมการทดสอบ multi-VM หากไม่มีนักวิ่งก็ใช้
primary. expected_visual ระบุสถานะภาพหน้าจอที่ต้องการเมื่อ
ประตูหลักฐานภาพเปิดใช้งานอยู่
การยืนยันการออกแบบเกี่ยวกับผลลัพธ์
- ตรวจสอบบริการด้วย
service_runningไม่ใช่แค่ว่ามีแพ็คเกจอยู่เท่านั้น - ตรวจสอบจุดสิ้นสุดในพื้นที่ก่อนทดสอบเส้นทางภายนอก
- ใช้
file_containsสำหรับการกำหนดค่าที่เสถียรเพียงอย่างเดียว ไม่ใช่ไฟล์ที่สมบูรณ์ สแน็ปช็อตที่ขัดต่อการจัดรูปแบบที่ไม่เป็นอันตราย - ใช้
command_succeedsกับคำสั่งที่กำหนดขึ้นและไม่มีการโต้ตอบเท่านั้น - ให้คำสั่งยาว
timeout_secondsเมื่อจำเป็นเท่านั้น ที่หนีบปฏิบัติการ คำสั่งหมดเวลาเป็น 1–1,800 วินาที - ห้ามใส่ข้อมูลประจำตัวในคำสั่ง คำอธิบาย ผลลัพธ์ที่คาดหวัง หรือ URL ช่องเหล่านี้สามารถปรากฏในหลักฐานและบันทึกได้
ความหมายความล้มเหลว
ขณะนี้โมเดลสูตรยอมรับประเภทที่ไม่รู้จัก แต่กลายเป็น
error เมื่อตัวดำเนินการไม่พบตัวจัดการ การยืนยันที่ทราบซึ่งละเว้น
พารามิเตอร์ที่จำเป็นสามารถลดลงได้ในระหว่างการประกอบแผนการทดสอบโดยมีคำเตือน
ดังนั้นควรตรวจสอบสูตรและตรวจสอบแผนการทดสอบที่เป็นรูปธรรมก่อน
กำลังเริ่มสร้าง
ถ้า on_vm ตั้งชื่อ VM ที่ไม่มีอยู่ การยืนยันจะเป็น skipped อย่า
ถือว่า skipped หรือ error เป็นการยืนยันที่สำเร็จ
ตัวอย่าง Multi-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.