טענות מותאמות אישית
קביעות מותאמות אישית הופכות דרישה לפקודה שהרתמת ה-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; בלעדיו הרץ משתמש
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 תלויה בטופולוגיית הבדיקה ובכתובות שהתגלו. אשר את הטופולוגיה שניתנו ואת הפקודה שנפתרה של הטענה בריצה ראיות.
לכל סוג ופרמטר נתמכים, ראה סוגי טענה.