ארכיטקטורה של Tradefed

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

הגדרות הבדיקה

הגדרות הבדיקה ב-Tradefed מתוארות בפורמט XML. הבנת המבנה של ההגדרה היא המפתח להרצה ולהתאמה אישית של בדיקות.

המבנה של הגדרות TF

הגדרות TF גלובליות

קובץ תצורה גלובלי הוא קובץ תצורה מיוחד של Tradefed בפורמט XML, שנטען כש-Tradefed מופעל דרך משתנה הסביבה TF_GLOBAL_CONFIG. הוא טוען אובייקטים שקשורים להיקף של מכונה ב-Tradefed, שישפיעו על ההתנהגות הכוללת של ערכת הכלים.

פרטי ההגדרה הגלובלית

מאגר מפתחות

‏Keystore מאפשר להחדיר ל-Tradefed אפשרויות של שורת הפקודה שמגיעות מ-keystore, כדי להימנע מהפניה לערך ישירות בשורת הפקודה. אפשר להשתמש באפשרות הזו כדי להסתיר סיסמאות משורת הפקודה על ידי אחזור שלהן ישירות ממאגר המפתחות.

פרטי מאגר המפתחות

מנהל המכשיר

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

מתזמן פקודות לבדיקה

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

ספק build

ספק ה-build הוא השלב הראשון בכל הפעלת בדיקה. הוא מוריד את המשאבים הנדרשים להגדרה ולהפעלה של הבדיקות (תמונות build, חבילות APK לבדיקה ועוד). הוא גם מפנה אליהם באובייקט BuildInfo שיעבור לבדיקה. אפשר גם לקשר משאבים שזמינים באופן מקומי באובייקט BuildInfo.

הכנת טירגוט וניקוי טירגוט

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

מפעיל בדיקות

מפעיל בדיקות ב-Tradefed הוא האובייקט שאחראי להרצת הבדיקה בפועל. כלים שונים להרצת בדיקות מריצים את הבדיקות בדרכים שונות. לדוגמה, הבדיקה שתתבצע באמצעות הכלי להרצת בדיקות של Instrumentation תהיה שונה מאוד מבדיקה שתתבצע באמצעות הכלי להרצת בדיקות של JUnit.

מדווח/ת על התוצאה

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

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

תוכנת איסוף מדדים

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

הגדרה ברמת המארח

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

תכונות נוספות

בקטעים הבאים מתוארים שימושים כלליים ב-Tradefed, ולא שימושים באובייקטים של Tradefed.

חלוקה למחיצות (sharding) של Tradefed

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

פרטי הפיצול

שימוש ב-SL4A

Tradefed תומך בשכבת הסקריפטים ל-Android, ‏ SL4A. זוהי ערכת כלים לאוטומציה של קריאה ל-API של Android באופן בלתי תלוי בפלטפורמה.

פרטי SL4A עם Tradefed

הורדה דינמית של @option

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

הורדה דינמית של @option