קוד פתוח / ארגז.

בודק דפדפנים.

"browser-tester" היא סביבת בדיקה המדמה דפדפן, המיושמת בשפת Rust בלבד. היא מאמתת את התנהגות ה-DOM (מודל אובייקטים של מסמך) ואת התנהגות האירועים, מבלי להפעיל דפדפן אמיתי.

חלודה. זמן ריצה דטרמיניסטי. בדיקות DOM.

מה היתרונות של המוצר הזה? / במה המוצר הזה מצטיין?

כלי ה-browser-tester מתמקד בבדיקות של התנהגות צפויה של טפסים וממשקי משתמש, ולא בתאימות מלאה של רנדור (עיבוד גרפי) בדפדפן.

סביבת ריצה המבוססת רק על שפת Rust.

פועל בתוך תהליך יחיד של Rust. אין תלות בדפדפן חיצוני, ב-WebDriver או ב-Node.js.

ביצוע דטרמיניסטי.

מערכת זו תוכננה לביצוע בדיקות חוזרות באופן עקבי: היא כוללת שעון מדמה, יצרת מספרים אקראיים דטרמיניסטיים, וממשקי API לשליטה מדויקת על הטיימר.

בדיקות של מבנה ה-DOM ואירועים.

תומך בתהליכים מעשיים הדומים לדפדפן: בחירת אלמנטים, הרצת סקריפטים, העברת אירועים ועדכון ה-DOM.

משוב מהיר ומקומי.

מחזור משוב מהיר לבדיקות ממשק משתמש המתמקדות בטפסים, תוך שמירה על פלט השגיאות המתמקד בבוררים ובערכים צפויים/ממשיים.

התחלה מהירה.

צרו מסגרת עבודה באמצעות HTML, הגדירו אינטראקציות ובדקו את תוצאות ה-DOM. התחילו עם מבחן פשוט והרחיבו אותו באמצעות טיימרים ו-APIs מדומים.

התקנה.

הוסף את הרכיב "browser_tester" למערכת ה-cargo.

דוגמה בסיסית.

ממשק ה-API העיקרי.

פעולות וטענות הקשורות לשימוש במערכת "Harness".

פעולות בדיקה בסיסיות עבור מודל ה-DOM: `Harness::from_html`, `type_text`, `set_checked`, `click`, `submit`, וכן כלי עזר לבדיקות עבור טקסט, ערך, מצב "מסומן" וקיום.

טיימרים דטרמיניסטיים.

ניתן לשלוט בהתנהגות אסינכרונית באמצעות שעון מדמה. ניתן לקדם את הזמן בצורה מוגדרת באמצעות הפונקציות advance_time, advance_time_to, flush, וכן באמצעות ממשקי ה-API לבדיקת טיימרים.

סימולציות מובנות.

השתמשו בפונקציות `set_fetch_mock`, `enqueue_confirm_response` ו-`enqueue_prompt_response` כדי לדמות תגובות של שירותים חיצוניים ותוצאות של דיאלוגים, ובכך לשמור על בידוד הבדיקות.

מעקב ואבחון.

אפשרות להפעיל יומני מעקב ולחלץ מידע על רצף אירועים/טיימרים כאשר בדיקה נכשלת. שימושי לניפוי באגים של סדר האירועים והתנהגות הפעולות כברירת מחדל.

מדיניות הפעלה.

  • הפונקציה `eval` אינה נתמכת במכוון, על מנת לשמור על אבטחה ועל התנהגות צפויה.
  • הסביבה הזו נועדה לבדוק תרחישים מעשיים, ולא להבטיח תאימות מלאה לכל הדפדפנים הקיימים.
  • קלט/פלט ברשת חיצונית אינו כלול בתחום העבודה; יש להשתמש ב"מוקי פאץ'" (fetch mocks) לצורך כיסוי בדיקות.

אם אתם זקוקים ליותר ממשקי API לדפדפן עבור סדרת הבדיקות שלכם, פתחו דיווח (issue) עם דוגמה מינימלית כדי לדון בהיקף ובסדר העדיפויות.