Skip to Content
Testingการยืนยันที่กำหนดเอง

การยืนยันที่กำหนดเอง

การยืนยันแบบกำหนดเองจะเปลี่ยนข้อกำหนดให้เป็นคำสั่งที่ชุดควบคุม 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.