اکثر تیمهایی که تستهای خودکار خود را با TestRail ادغام میکنند، آزمایشهای خودکار خود را خارج از TestRail (مثلاً بهعنوان بخشی از یک سیستم یکپارچهسازی مداوم) راهاندازی و اجرا میکنند و از آن استفاده میکنند. TestRail API برای ارسال نتایج آزمون با این حال، برخی از تیمها ترجیح میدهند سیستمی را برای اجرای آزمایشهای آزمایشی مستقیماً از TestRail پیادهسازی کنند. این سند نحوه انجام این کار را با استفاده از مثال های عملی با استفاده از اسکریپت های رابط کاربری.
#
لطفاً توجه داشته باشید که این سند حاوی نمونه های کاری است، اما درک اسکریپت ها و گسترش بیشتر آنها به دانش پایه PHP و همچنین توسعه وب (HTML، CSS و JS) نیاز دارد که این محتوا به تنهایی نمی تواند جایگزین آن شود.
ساده سازی اتوماسیون تست با TestRail #
نمودار زیر جریان کار اصلی ادغام تستهای خودکار شما را از راهاندازی تا گزارش نتایج در TestRail نشان میدهد:

با استفاده از اسکریپتهای رابط کاربری، میتوانید یک دکمه جدید به TestRail UI اضافه کنید تا آزمایشهای خودکار را راهاندازی کند. هنگامی که کلیک می شود، یک درخواست HTTP به مجری ارسال می کند که به نوبه خود آزمایش های خودکار را آغاز می کند. اسکریپت یا خود چارچوب اتوماسیون تست، نتایج تست را از طریق گزارش می دهد API TestRail.
#
اگر چارچوب اتوماسیون تست شما از تولید گزارش های سبک JUnit پشتیبانی می کند، توصیه می کنیم از آن استفاده کنید TestRail CLI. با یک خط کد در اسکریپت پوسته خود، می توانید به راحتی نتایج آزمون را تجزیه کرده و به TestRail ارسال کنید.
افزودن اسکریپت های UI به TestRail #
اسکریپتهای رابط کاربری به شما امکان میدهند که TestRail GUI خود را با HTML، CSS و JS مطابق با یک توسعهدهنده وب سفارشی کنید، به این معنی که میتوانید تقریباً هر عنصر UI را اضافه کنید و هر اقدامی را که به طور منظم هنگام توسعه یک صفحه وب انجام میدهید، فعال کنید.
برای افزودن یک اسکریپت UI، به قسمت مدیریت TestRail در زیر بروید مدیر > سفارشی سازی ها > اسکریپت UI را اضافه کنید و به سادگی کل اسکریپت UI را در آن کپی و جایگذاری کنید پیکربندی جعبه متن در مثالهای زیر، نمونههایی از اسکریپتهای رابط کاربری داریم که میتوانید از آنها استفاده کنید، اما اگر میخواهید در مورد نحوه توسعه اسکریپتهای سفارشی خود یا سفارشیسازی بیشتر این نمونهها بیاموزید، لطفاً صفحه مستندات اسکریپت های UI.

مثال ۱: ادغام جنکینز #
در این مثال، یک ادغام جنکینز را به پانل سمت راست اضافه می کنیم اجراهای آزمایشی & نتایج صفحه، به طوری که ما از آخرین نتایج کارهای آزمایشی خودکار خود قابل مشاهده باشیم و بتوانیم آنها را مستقیماً از TestRail فعال کنیم. توجه داشته باشید که این مثال فقط راهاندازی و واکشی ساختها از جنکینز را پوشش میدهد. اگر میخواهید نتایج تست شما بهعنوان اجرای تست به TestRail بازگردانده شود، باید کار Jenkins خود را پیکربندی کنید تا نتایج را به نحوی به TestRail برگرداند، یعنی با استفاده از TestRail CLI. می توانید ببینید ادغام با اسناد جنکینز برای اطلاعات بیشتر و یک مثال عملی از نحوه پیکربندی TestRail CLI برای استفاده در جنکینز.
کد منبع این مثال را می توان در GitHub یافت:
جنکینز اسکریپت رابط کاربری را می سازد #
مخزن GitHub با اسکریپت UI یکپارچه Jenkins (تست شده در TestRail نسخه ۷.۵.۴)
پیکربندی جنکینز #
برای اینکه به TestRail UI اجازه دهید مستقیماً به نمونه Jenkins شما درخواست کند، باید به اشتراکگذاری منبع متقاطع (CORS) در انتهای Jenkins اجازه دهید. این معمولاً یک خطر امنیتی در نظر گرفته میشود، اما با اقدامات احتیاطی مناسب میتوانید از این مکانیسم استفاده کنید تا به TestRail اجازه دهید بدون افزایش خطر به دادههای مشاغل Jenkins شما دسترسی داشته باشد. برای انجام این کار، باید CORS را با دنبال کردن مراحل زیر به دامنه قابل اعتماد TestRail خود اجازه دهید.
- برو به جنکینز را مدیریت کنید > مدیر پلاگین و جستجو و نصب کنید پشتیبانی CORS از پلاگین جنکینز
- برو به جنکینز را مدیریت کنید > پیکربندی سیستم
-
در پایین صفحه، در فیلتر CORS بخش، پارامترهای مورد نیاز را وارد کنید
- کلیک کنید ذخیره کنید برای پذیرش تغییرات
اسکریپت UI #
همانطور که گفته شد، اسکریپت UI یک بخش ادغام جنکینز را به پانل سمت راست اضافه می کند که می تواند برای نمایش کارهای تست خودکار شما (یا هر کار دیگر در صورت تمایل) پیکربندی شود.
در پنل میتوانیم بخش جدیدی به نام را ببینیم محرک های تست خودکار و درست در زیر آن کارهایی که برای واکشی پیکربندی شده بودند. برای هر کار، یک دکمه ماشه وجود دارد که یک ساخت جدید را شروع می کند و همچنین با استفاده از یک کد رنگی که وضعیت ساخت را نشان می دهد، به ۳ آخرین بیلد پیوند می دهد. در این مورد، قرمز برای شکست، سبز برای موفقیت، و آبی به این معنی است که هنوز در حال اجرا است.

کارهایی که نمایش داده می شوند در ابتدای اسکریپت UI پیکربندی می شوند، جایی که متغیرهای پیکربندی تعریف شده اند، مانند مثال زیر. را name از مشاغل می تواند هر چیزی باشد و path مسیر نسبی است که می توانید در مرورگر خود هنگام رفتن به کار در Jenkins مشاهده کنید.
#
می توانید وارد جنکینز شوید username و key اگر به تمام کاربران TestRail در سازمان خود کاملاً اعتماد دارید، اما توجه داشته باشید که این یک خطر امنیتی است زیرا اسکریپت UI (و اعتبارنامه ها) به صورت متن ساده در مرورگر در دسترس خواهد بود. توصیه می کنیم که این متغیرها را به صورت زیر رها کنید null و به کاربران اجازه دهید اعتبار خود را از طریق UI پیکربندی کنند.
/* CONFIG */
const host = "JENKINS_URL";
const username = null; // Enter username and key only if you fully trust your organization members as this may pose a security risk
const key = null; // Generate an API key on your Jenkins user account
const requestInterval = 10000; // Time between requests to Jenkins
const project = "PROJECT NAME"; // Name of the project to load the triggers for (use value null to enable for all projects)
const jobs = [ // Sample jobs config
{
"name": "Run Desktop Tests",
"path": "job/Desktop%20Automated%20Tests"
},
{
"name": "Run Mobile Tests",
"path": "job/Mobile%20Automated%20Tests"
}
];
مثال ۲: اسکریپت های سمت سرور را راه اندازی کنید #
در این مثال، یک UI Script برای افزودن یک دکمه جدید به رابط کاربری TestRail استفاده میشود و یک اسکریپت سمت سرور تستهای خودکار را راهاندازی میکند. در این حالت، آزمایشها در سطح اجرای تست اجرا میشوند، اما میتوان آن را برای پشتیبانی از طرحهای آزمایشی یا فقط آزمایشهای فردی تغییر داد.
کد منبع این مثال را می توانید در GitHub پیدا کنید. لطفاً نسخه ای را انتخاب کنید که با نسخه TestRail شما مطابقت دارد:
مثال اجرای تست ماشه (TestRail ۴.x) #
مخزن GitHub با رابط کاربری و اسکریپت سمت سرور برای TestRail ۴.x
نمونه اجرای تست ماشه (TestRail ۳.x) #
مخزن GitHub با رابط کاربری و اسکریپت سمت سرور برای TestRail ۳.x
اسکریپت ماشه #
با فرض اینکه شما یک کاربر سرور TestRail هستید، اسکریپت ماشه trigger.php باید در دایرکتوری نصب TestRail در وب سرور در کنار TestRail قرار داده شود index.php فایل اگر قصد دارید از مکان دیگری استفاده کنید، باید URL را در اسکریپت UI نیز تغییر دهید.
مرحله بعدی پیکربندی تنظیمات زیر برای API TestRail است:
define('TESTRAIL_API_ADDRESS', 'http:///testrail');
define('TESTRAIL_API_USER', 'user@example.com');
define('TESTRAIL_API_PASSWORD', '***');
تعداد زیادی کد boilerplate در اسکریپت وجود دارد، به عنوان مثال، برای رسیدگی به آرگومان های اسکریپت و ارسال نتایج تست به API TestRail. بیت جالب تابع زیر است:
function execute_test($run_id, $case_id, $test_id)
{
..
}
انتظار میرود این تابع آزمایشهای خودکار را برای اجرای تست و تستکیس معین راهاندازی کند و باید یک شناسه وضعیت TestRail معتبر برگرداند. در این مثال، این تابع به سادگی یک شناسه وضعیت تصادفی را برمیگرداند، اما پیادهسازیهای واقعی میتوانند با فراخوانی ابزارهای خط فرمان خارجی، یک API خارجی یا موارد مشابه، آزمایشها را آغاز کنند.
#
شما همچنین می توانید از اسکریپت ماشه با یک حساب TestRail Cloud استفاده کنید. شما به سادگی اسکریپت ماشه سمت سرور را روی سروری که می خواهید آزمایش ها را اجرا یا شروع کنید (معمولاً در شبکه خصوصی خود) قرار دهید. TestRail نیازی به اتصال به سرور شما ندارد، زیرا اتصال/چسب از طریق اسکریپت UI در TestRail و از طریق مرورگر وب شما ایجاد می شود. شما همچنین می توانید اسکریپت سمت سرور را به هر زبان برنامه نویسی دیگری بنویسید و اسکریپت ما فقط یک نمونه است.
#
نمونه اسکریپت سمت سرور هیچ شرطی برای احراز هویت تماس های اسکریپت ندارد. بنابراین قبل از استفاده از این اسکریپت در یک سرور تولیدی – به خصوص در سروری که از طریق اینترنت قابل دسترسی است – مطمئن شوید که در واقع هر گونه دسترسی به اسکریپت را تأیید کرده اید. ساده ترین راه برای انجام این کار این است که احراز هویت HTTP را برای اسکریپت در سرور وب خود فعال کنید و کد جاوا اسکریپت را طوری تغییر دهید که اعتبار ورود به سیستم را در تمام تماس های HTTP لحاظ کند.
اسکریپت UI #
برای در دسترس قرار دادن دکمه UI در نمونه TestRail، کافی است یک اسکریپت UI جدید همانطور که در بخش بالا توضیح داده شد با محتوای trigger.ui فایل پس از اضافه کردن اسکریپت باید یک اسکریپت جدید ببینید شروع تست ها در نوار ابزار هر صفحه آزمایشی را فشار دهید.

با کلیک بر روی این دکمه یک درخواست HTTP به اسکریپت PHP سمت سرور مطابق قطعه jQuery زیر اجرا می شود. توجه داشته باشید که چگونه می توانید به متغیرهای زمینه از صفحه ای که اسکریپت UI بارگذاری شده است، مانند uiscripts.context.run.id.
$.ajax({
url: "trigger.php?run_id=" + uiscripts.context.run.id,
dataType: "json",
type: "POST",
success: function()
{
location.reload();
},
error: function()
{
App.Dialogs.error('An error occurred while trying to trigger the automated tests.');
}
});
ملاحظات نهایی #
با استفاده از رویکردهای مشابه موارد بالا، میتوان اسکریپتهایی را برای ادغام با ابزارهای مختلف مانند GitHub Actions، GitLab CI، Travis CI و غیره پیادهسازی کرد. با این حال، هنگام معماری این نوع یکپارچهسازی با استفاده از اسکریپتهای UI، همیشه خطرات امنیتی را در نظر بگیرید و مطمئن شوید که قادر به مدیریت سیاستهایی مانند CORS برای استفاده خارجی خواهید بود.
شما همچنین می توانید با ایجاد یک روابط عمومی با کد خود در مجموعه اسکریپت های UI ارسال شده توسط کاربر مشارکت کنید. لطفا دستورالعمل های کلی در مورد را ببینید TestRail سفارشی سازی مخزن GitHub.

