Trade Federation (به اختصار Tradefed یا TF) یک چارچوب آزمایشی مداوم است که برای اجرای آزمایشها در دستگاههای اندرویدی طراحی شده است. به عنوان مثال، Tradefed برای اجرای مجموعه تست سازگاری (CTS) و مجموعه تست فروشنده (VTS) استفاده می شود.
Trade Federation یک برنامه جاوا است که روی یک کامپیوتر میزبان اجرا می شود و با استفاده از ddmlib (کتابخانه پشت DDMS) از طریق adb با یک یا چند دستگاه اندرویدی ارتباط برقرار می کند.
ما برخی از ویژگی های اصلی TF را به همراه چند نمونه از موارد استفاده در زیر فهرست کرده ایم. گفته شد، اگر میخواهید مستقیماً وارد شوید و شروع کنید، میتوانید مستقیماً به صفحه شروع اینجا بروید.
امکانات
- طراحی مدولار، انعطاف پذیر، مقیاس پذیر
- برای اجرای انواع مختلف تستهای اندروید پشتیبانی میکند: ابزار دقیق ، uiautomator ، native/gtest، JUnit مبتنی بر میزبان و غیره
- قابلیت اطمینان و مکانیسم های بازیابی را در بالای adb فراهم می کند
- از برنامه ریزی و اجرای آزمایش ها بر روی چندین دستگاه به صورت موازی پشتیبانی می کند
برای بهروزترین اطلاعات در مورد نحوه اجرای آزمایشهای موجود، مانند ابزار دقیق، به Test Through TF مراجعه کنید.
موارد استفاده کنید
ماژولار بودن فدراسیون تجارت، ورود به محیطهایی با زیرساختهای ساخت، آزمایش و گزارش موجود را آسان میکند. ما در زیر چند مورد استفاده نمایشی را فهرست می کنیم که در آن Tradefed می تواند روش های آزمایشی کارآمد و مقیاس پذیر را فعال کند.
ابتدا، مفید است که چشم انداز موارد استفاده بالقوه را از نظر این سوال در نظر بگیریم که "کدام بخش ها قابل تغییر هستند و چه بخش هایی ثابت هستند؟" به عنوان مثال، یک دستگاه OEM میتواند چارچوب، سیستم و سختافزار را تغییر دهد، اما تأثیر کمی بر برنامههای موجود دارد یا هیچ تأثیری ندارد. از طرف دیگر، یک توسعهدهنده برنامه میتواند برنامه را تغییر دهد، اما کنترل کمی بر بیشتر جنبههای سیستم یا چارچوب دارد.
در نتیجه، یک موجودیت در هر Usecase اهداف آزمایش متفاوتی خواهد داشت و در صورت مجموعه ای از شکست های تست، گزینه های متفاوتی خواهد داشت. علیرغم این تفاوتها، فدراسیون تجارت میتواند به کارآمد، انعطافپذیر و مقیاسپذیر هر یک از فرآیندهای آزمایشی آنها کمک کند.
دستگاه OEM
یک دستگاه OEM سخت افزار می سازد و اغلب سیستم و چارچوب های اندروید را بهینه سازی می کند تا به خوبی روی آن سخت افزار اجرا شود. OEM ممکن است برای دستیابی به این اهداف در عین حفظ ثبات و عملکرد در سطوح سخت افزاری و سیستم تلاش کند و مطمئن شود که تغییرات چارچوب سازگاری با برنامه های موجود را مختل نمی کند.
OEM می تواند یک ماژول چشمک زن را پیاده سازی کند که در مرحله Target Setup چرخه حیات اجرا می شود. آن ماژول کنترل کاملی بر روی دستگاه در طول دوره اجرای آن خواهد داشت، که به آن اجازه میدهد به طور بالقوه دستگاه را به بوت لودر، فلش، و سپس مجبور به راهاندازی مجدد به حالت فضای کاربر کند. همراه با یک ماژول برای اتصال به یک سیستم ساخت مداوم، این به OEM اجازه میدهد تا تستهایی را روی دستگاه خود اجرا کند، زیرا آنها تغییراتی در سیستمافزار سطح سیستم و چارچوبهای سطح جاوا ایجاد میکنند.
هنگامی که دستگاه به طور کامل بوت شد، OEM میتواند از آزمایشهای مبتنی بر JUnit استفاده کند یا آزمایشهای جدید بنویسد تا عملکرد مورد علاقه را تأیید کند. در نهایت، آنها می توانند یک یا چند ماژول گزارش نتیجه را بنویسند تا به مخازن نتایج آزمایش موجود متصل شوند، یا نتایج را مستقیماً گزارش کنند (مثلاً از طریق ایمیل ).
توسعه دهنده برنامه
یک برنامهنویس برنامهای را میسازد که باید در انواع نسخههای پلتفرم و دستگاههای مختلف به خوبی اجرا شود. اگر مشکلی در یک نسخه پلتفرم و/یا دستگاه خاص پیش آمد، تنها راه حل اضافه کردن یک راه حل و ادامه دادن است. برای توسعه دهندگان بزرگتر، فرآیند آزمایش ممکن است در یک توالی ساخت پیوسته گنجانده شود. برای توسعه دهندگان کوچکتر، ممکن است به صورت دوره ای یا دستی راه اندازی شود.
اکثر توسعه دهندگان برنامه از ماژول های نصب تست apk که از قبل در TF وجود دارد استفاده می کنند. نسخه ای وجود دارد که از سیستم فایل محلی نصب می شود ، و همچنین نسخه ای که می تواند apk های دانلود شده از یک سرویس ساخت را نصب کند . مهم است که توجه داشته باشید که نسخه دوم به درستی با بسیاری از نمونههای TF که بر روی یک ماشین میزبان اجرا میشوند به درستی کار میکند.
به دلیل مهارت TF در برخورد با چندین دستگاه، طبقه بندی هر نتیجه آزمایش بر اساس نوع دستگاهی که برای آن تست استفاده شده است ساده است. بنابراین، TF به طور بالقوه می تواند یک ماتریس سازگاری دو بعدی (یا چند بعدی) برای هر ساخت برنامه ایجاد کند.
سرویس تست
به عنوان مثال، یک سرویس تست ممکن است به توسعه دهندگان برنامه اجازه دهد تا برنامه ها را ارسال کنند و آزمایش هایی را روی دستگاه های مجهز به ابزارهای اندازه گیری قدرت برای تعیین میزان مصرف انرژی برای برنامه اجرا کنند. این با دو مورد قبلی تفاوت دارد زیرا سازنده سرویس دستگاه ها یا برنامه های در حال اجرا را کنترل نمی کند.
از آنجایی که Trade Federation میتواند هر کلاس جاوا را اجرا کند که رابط ساده IRemoteTest
پیادهسازی میکند، نوشتن درایورهایی که میتوانند برخی از قطعات خارجی سختافزار را با کیس آزمایشی که روی دستگاه اجرا میشود هماهنگ کنند، امری بیاهمیت است. خود راننده می تواند Thread ها را ایجاد کند، درخواست ها را به سرورهای دیگر ارسال کند، یا هر کار دیگری که ممکن است نیاز داشته باشد انجام دهد. علاوه بر این، سادگی و تطبیقپذیری رابط گزارشدهی نتیجه، ITestInvocationListener
، به این معنی است که نمایش نتایج آزمایش دلخواه (از جمله معیارهای توان عددی) در خط لوله گزارش نتایج استاندارد نیز ساده است.