בדיקת הפיצול

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

לריסוק יש תנאים מוקדמים עבור רץ המבחן לתמוך בריסוק.

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

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

נכסים משותפים

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

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

ריסוק מקומי

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

ביצוע

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

אפשרויות

--shard-count XX

ריסוק מבוזר

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

ביצוע

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

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

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

אפשרויות

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

ריסוק אסימונים

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

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

תצורת XML

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

value של האסימון תואם TokenProperty של Tradefed ומשויך למטפל ב- TokenProviderHelper .

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

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

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

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

יישום

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

--enable-token-sharding