בדיקת הפיצול

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

לפיצול יש דרישות מוקדמות כדי שהרצת הבדיקה תתמוך בפיצול.

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

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

נכסים נפוצים

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

ההבדל העיקרי בין טופסי הפיצול הוא באופן שבו הם מבצעים את הבדיקות. פרטים נוספים בסעיפים הבאים.

חלוקה מקומית

פיצול מקומי הוא כל המכשירים שמעורבים בביצוע החלוקה המפוצלת מחוברים לאותו מארח פיזי.

ביצוע

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

אפשרויות

--shard-count XX

פיצול מבוזר

חלוקה מבוזרת היא כל המכשירים המעורבים בביצוע הפעלה מפוצלת יכולה להמשיך לחיות בכל מקום ולהיות מחוברות למכשירים פיזיים המארחים.

ביצוע

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

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

החיסרון העיקרי הוא שאורך המפוצל לא בהכרח מאוזן מכיוון שאין לנו אפשרות לחזות מראש את זמן הריצה של כל בדיקה בכל פיצול. ההתפלגות כוללת מספר דומה של מקרי בדיקה פחות או יותר בכל פיצול.

אפשרויות

--shard-count XX --shard-index XX

פיצול אסימונים

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

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

הגדרת XML

<option name="config-descriptor:metadata" key="token" value="SIM_CARD" />

ה-value של האסימון תואם את TokenProperty והוא משויך ל-handler TokenProviderHelper.

כך המודולים לבדיקה יכולים לרוץ במכשירים שיכולים להתאים ומבצעים את הבדיקות.

מה קורה אם לא ניתן להריץ את הבדיקה באף מכשיר?

אם אין מכשירים זמינים שבהם המשאב תואם למודול הבדיקה, מודול הבדיקה נכשל ודילגת עליו מכיוון שלא ניתן להפעיל אותו כראוי.

לדוגמה, אם מודול בדיקה מבקש להפעיל כרטיס SIM אבל לא נמצא אף מכשיר כרטיס SIM, מודול הבדיקה נכשל.

הטמעה

מעבירים את הדגל הזה של התכונה לשורת הפקודה הראשית של Tradeified:

--enable-token-sharding