בקטע הזה מתואר המבנה הפנימי של Tradefed והקשרים בין הרכיבים השונים. פרטים נוספים מופיעים בדפי המשנה המקושרים.
הגדרות הבדיקה
הגדרות בדיקה ב-Tradefed מתוארות בפורמט XML. כדי להריץ בדיקות ולהתאים אותן אישית, חשוב להבין את מבנה ההגדרה.
המבנה של הגדרות TF
הגדרות TF גלובליות
קובץ הגדרה גלובלי הוא הגדרת XML מיוחדת של Tradefed שנטענת כשמפעילים את Tradefed באמצעות משתנה הסביבה TF_GLOBAL_CONFIG. הוא טוען אובייקטים שקשורים להיקף של מופע Tradefed, שישפיעו על ההתנהגות הכוללת של ה-harness.
מאגר מפתחות
מאגר המפתחות מאפשר להוסיף אפשרויות של שורת פקודה ל-Tradefed מתוך מאגר מפתחות, כדי להימנע מהפניה לערך ישירות בשורת הפקודה. אפשר להשתמש בזה כדי להסתיר סיסמאות משורת הפקודה על ידי אחזור סיסמאות ישירות ממאגר המפתחות.
Device Manager
מנהל המכשירים אחראי למעקב אחרי מצב המכשירים במופע פעיל של Tradefed. היבטים כמו סטטוס ההקצאה והסטטוס באינטרנט נבדקים.
בדיקת מתזמן הפקודות
מתזמן פקודות הבדיקה ב-Tradefed מקבל פקודות להפעלה, משייך אותן למכשירים ומתחיל הפעלה של בדיקה.
ספק build
השלב הראשון בכל הפעלה של בדיקה הוא בניית הספק. הוא מוריד את המשאבים שנדרשים להגדרת הבדיקות ולהרצת הבדיקות (תמונות build, חבילות APK לבדיקה ועוד). הוא גם מפנה אליהם באובייקט BuildInfo שיועבר לבדיקה. אפשר לקשר גם משאבים שזמינים באופן מקומי באובייקט BuildInfo.
מכין ומנקה את היעד
הכלי Target preparer מציע פעולות אופציונליות שאפשר לבצע כדי להגדיר את היעד שנבדק למצב מסוים, למשל הפעלת המכשיר, הגדרת מאפיינים מסוימים וחיבור ל-Wi-Fi.
כלי להרצת בדיקות
ב-Tradefed, רכיב להרצת בדיקות הוא האובייקט שאחראי להרצה בפועל של הבדיקה. מריצי בדיקות שונים מריצים את ביצוע הבדיקה בדרכים שונות. לדוגמה, מריץ בדיקות של בדיקת אינסטרומנטציה יהיה שונה מאוד ממריץ בדיקות של JUnit.
האדם שדיווח על התוצאה
המונח 'דיווח על תוצאות' ב-Tradefed מתייחס לאובייקט שישלח את התוצאות ליעד מסוים. בדרך כלל כל הטמעה מותאמת במיוחד למערכות עורפיות שונות של תוצאות. הכלי לדיווח על תוצאות אחראי להמרה של פורמט התוצאות של Tradefed לפורמט היעד.
העיצוב הגמיש הזה מאפשר לכל בדיקה לדווח לכל אחד מיעדי התוצאות, ולהוסיף בקלות עוד בדיקות בצורה מבודדת.
כלי לאיסוף מדדים
האובייקט Metrics collector הוא אובייקט מיוחד ב-Tradefed, שאינו קשור לביצוע הבדיקה. הוא מאפשר איסוף מידע בנקודות שונות במחזור החיים של הבדיקה (לדוגמה, התחלת הבדיקה, סיום הבדיקה). מכיוון שהכלי לאיסוף נתונים מנותק מהבדיקה עצמה, אפשר להחליף, להוסיף ולהסיר את הנקודות בלי לשנות את הבדיקה עצמה.
הגדרה ברמת המארח
בקטע הזה מתוארות הגדרות שרלוונטיות להפעלה של מופע מלא של Tradefed. האפשרויות האלה משפיעות על ההתנהגות של ה-harness בכללותו, כדי להתאים את עצמו לסביבות שונות, למשל אם הוא נמצא ברשת מוגבלת.
תכונות נוספות
בקטעים הבאים מתואר שימוש כללי ב-Tradefed ולא באובייקטים של Tradefed.
חלוקת Tradefed
אם קבוצת הבדיקה גדולה או שהבדיקה נמשכת זמן רב, אפשר לפצל אותה בין כמה מכשירים. הפיצול הזה נקרא sharding. בקטע הזה מוסבר איך פועל הפיצול ואיך מגדירים אותו.
שימוש ב-SL4A
Tradefed תומך בשכבת הסקריפטים ל-Android, SL4A. זהו ערכת כלים לאוטומציה שמאפשרת להפעיל ממשקי API של Android באופן בלתי תלוי בפלטפורמה.
הורדה דינמית של אפשרות @
במקרים מסוימים, הקבצים שנדרשים לבדיקה או לפעולה מסוימת לא זמינים באופן מקומי. התכונה הזו מאפשרת ל-Tradefed לקבל את הקבצים האלה ממיקום מרוחק בלי לעבור דרך ספק build.