תכנון מקרי כשל בעזרת פרוקסי לניפוי שגיאות
בחרו עריכות HTTP, עיכובים וחילופים מופסקים בהתאם להתנהגות הלקוח שבדיקה מבוססת פרוקסי צריכה לבחון.
פרוקסי לניפוי שגיאות שימושי כאשר לקוח צריך להיתקל בתגובה שהשרת הרגיל מייצר לעתים רחוקות. הגדירו תחילה את התנהגות הלקוח, ואז בחרו את ההתערבות שמייצרת את המצב הזה.
„הבקשה נכשלה” הוא מקרה בדיקה רחב מדי. תגובת שגיאת HTTP תקינה, תגובה שלעולם אינה מגיעה וחיבור שנקטע באמצע הורדה דורשים מהאפליקציה דברים שונים.
| מקרה | התנהגות לבדיקה |
|---|---|
| תגובת שגיאת HTTP מלאה | האם הלקוח קורא את הסטטוס ומיישם את מדיניות השגיאה המיועדת |
| תגובה מעוכבת | האם המשתמש יכול לבטל והאם פסק הזמן חל בשלב המיועד |
| שדה כותרת או גוף בלתי צפוי | האם הניתוח והאימות נכשלים בבירור |
| חילוף מופסק | האם נתונים חסרים נשארים ניתנים להבחנה מתוצאה שהסתיימה |
השתמשו בהתערבות בשכבה הנכונה
Charles מספק נקודות עצירה שעוצרות בקשה או תגובה לפני העברתן. אפשר לבחון ולערוך את ההודעה שיורטה, לאפשר לה לעבור או לבטל אותה. כלי ה-Rewrite שלו מחיל שינויים חוזרים על כותרות, כתובות URL או גופים תואמים. הגבלת קצב שולטת ברוחב הפס ובהשהיה הנוספת.
בקרות אלו יכולות לבחון התנהגות של לקוח HTTP, אך מגבלת רוחב פס אינה מודל מדויק לאובדן אקראי של מנות IP. פרוקסי עשוי לאגור נתונים, לעשות שימוש חוזר בחיבורים ולפתוח חיבור נפרד במעלה הזרם. בחרו בכלי לפגיעה ברשת כאשר התנאי הנדרש נמצא ספציפית מתחת ל-HTTP.
השאירו כל מקרה ניתן לפירוש
התאימו את המארח והנתיב המיועדים באופן צר. התחילו בחילוף רגיל, הפעילו שינוי אחד ותעדו מה שונה. אם ניסיון חוזר מגיע לנקודת קצה שנייה, החליטו אם אותו כלל צריך להשפיע על אותו ניסיון. אחרת שכתוב ללא תנאי עלול להפוך כל נתיב התאוששות לכשל המקורי.
בהעלאה או בפעולה דמוית תשלום, תגובה שאבדה אינה מוכיחה שהשרת דחה את הבקשה. כללו את העמימות הזו במקרה הניסיון החוזר במקום לקבוע שכל כשל תעבורה בטוח לחזרה.
בדיקה או עריכה של תוכן HTTPS מחייבת שהלקוח ישתתף בהגדרת בדיקת ה-TLS של פרוקסי הניפוי. פרוקסי שמעביר רק CONNECT רואה בייטים מוצפנים של האפליקציה. השתמשו בתצורת בדיקה מבודדת ושחזרו לאחר מכן את הניתוב והגדרות האמון שלה כדי שתצפיות מאוחרות יתארו את הלקוח הרגיל.