میتوانید TestRail را با سیستمهای احراز هویت خارجی مانند Active Directory، پایگاههای داده، سایر برنامهها و APIها برای پیادهسازی Single sign-on و ایجاد حسابهای کاربری اولیه TestRail ادغام کنید. این مقاله جزئیات فنی یکپارچه سازی را مورد بحث قرار می دهد و نحوه ساخت اسکریپت های یکپارچه سازی خود را توضیح می دهد. اگر فقط به دنبال جزئیاتی در مورد نحوه ادغام TestRail با Active Directory هستید، لطفاً این مقاله را بخوانید.
جزئیات پیاده سازی #
برای اینکه TestRail تقریباً با هر سیستم خارجی یکپارچه شود، TestRail از اسکریپت های احراز هویت پشتیبانی می کند. اگر یک اسکریپت احراز هویت نصب کنید، TestRail از اسکریپت شما میپرسد که آیا اعتبار کاربری در زمانی که کاربر سعی میکند وارد سیستم شود معتبر است یا خیر.
اینکه چگونه یک اسکریپت احراز هویت اعتبار را تأیید می کند به سیستم احراز هویت خارجی بستگی دارد. به عنوان مثال، اسکریپت می تواند از یک پایگاه داده برای تأیید نام کاربری و ورود به سیستم پرس و جو کند. یا می تواند وب را صدا کند API برای بررسی اعتبار صرف نظر از روشی که برای تأیید اعتبار استفاده می شود، اسکریپت نتیجه احراز هویت را به TestRail برمی گرداند تا کاربر را رد کند یا اجازه ورود به سیستم را بدهد.
اصول اسکریپت #
یک اسکریپت احراز هویت برای TestRail به طور کلی با PHP نوشته می شود. اگر می خواهید TestRail را با استفاده از ابزار یا زبان برنامه نویسی دیگری ادغام کنید، این کار به سادگی با تماس با ابزار خارجی یا حتی وب امکان پذیر است. API از اسکریپت احراز هویت
آناتومی اسکریپت احراز هویت TestRail بسیار ساده است. شما اساسا فقط نیاز به پیاده سازی یک واحد دارید authenticate_user تابع نام کاربری و رمز عبور توسط TestRail به این تابع ارسال می شود. پس از تأیید اعتبار، اسکریپت باید نتیجه احراز هویت را به TestRail برگرداند.
// The anatomy of a basic authentication script
function authenticate_user($name, $password)
{
// Verify the credentials and return result
// ..
}
نکته: توصیه می شود نه را ببند <?php در انتهای فایل تگ کنید. این تضمین می کند که هیچ فضای سفیدی در انتهای فایل وجود ندارد که بتواند رفتار خروجی PHP را تغییر دهد.
برگرداندن نتیجه #
هنگامی که اسکریپت اعتبارنامه ها را تأیید کرد، باید نتیجه احراز هویت را به TestRail برگرداند. این کار با ایجاد یک AuthResult شی و ارسال تمام آرگومان های مرتبط. یک اسکریپت همچنین می تواند یک استثنا برای سیگنال دادن به یک خطای غیرقابل جبران ایجاد کند، مانند خطای اتصال به یک سیستم خارجی که اسکریپت به آن وابسته است. بخشهای زیر نحوه بازگرداندن نتایج به TestRail را توضیح میدهند.
خطاهای سیگنالینگ #
اگر در حین تأیید اعتبار کاربر خطایی رخ دهد، توصیه میشود یک استثنا مطرح کنید. به عنوان مثال، اگر اسکریپت شما برای تأیید نام کاربری و رمز عبور به پایگاه داده متصل می شود، اما دسترسی به پایگاه داده امکان پذیر نیست، به سادگی با یک پیام خطای مناسب، یک استثنا مطرح کنید. توصیه می شود از TestRail استفاده کنید AuthException نوع استثنا برای این:
// The anatomy of a basic authentication script
function authenticate_user($name, $password)
{
// Verify the credentials and return result
// ..
}
احراز هویت رد شد #
اگر اسکریپت شما تشخیص داد که احراز هویت ناموفق بوده و دسترسی کاربر رد شده است، به سادگی یک نمونه از AuthResultDenied کلاس
function authenticate_user($name, $password)
{
// [..]
return new AuthResultDenied();
}
موفقیت در احراز هویت #
برای مجوز دادن به یک کاربر، به سادگی یک نمونه از آن را برگردانید AuthResultSuccess کلاس TestRail به آدرس ایمیل کاربر نیاز دارد تا نتیجه احراز هویت را به حساب های کاربری داخلی TestRail پیوند دهد.
اگر از آدرس ایمیل کاربر به عنوان ورود به سیستم استفاده می کنید، می توانید به سادگی لاگین را به TestRail برگردانید. در غیر این صورت، باید آدرس ایمیل را به عنوان بخشی از احراز هویت (به عنوان مثال، با خواندن آدرس ایمیل کاربر از پایگاه داده احراز هویت یا سیستم خارجی خود) جستجو کنید.
function authenticate_user($name, $password)
{
// [..]
return new AuthResultSuccess($user_email);
}
TestRail همچنین به شما اجازه می دهد تا به طور خودکار حساب های کاربری جدید برای کاربرانی که برای اولین بار وارد سیستم می شوند ایجاد کنید. این یک راه عالی برای ایجاد خودکار تمام حساب های کاربری اولیه است.
برای مثال، اگر میخواهید TestRail را با Active Directory ادغام کنید، میتوانید از TestRail بخواهید یک حساب کاربری برای کاربرانی که برای اولین بار وارد سیستم میشوند ایجاد کند. سپس به سادگی پیوندی به نصب TestRail خود از طریق ایمیل برای همه کاربران ارسال می کنید و TestRail به طور شفاف حساب های کاربری جدید ایجاد می کند. برای استفاده از این ویژگی، لازم است که TestRail با نام کامل (نام + نام خانوادگی) کاربر نیز ارائه شود.
function authenticate_user($name, $password)
{
// [..]
$result = new AuthResultSuccess($user_email);
$result->create_account = true; // Create an account, if needed
$result->name = $user_name; // 'Bob Smith'
$result->role_id = 3; // Optional: ID of the user's role
$result->group_ids = array(1, 2); // Optional: IDs of the user's groups
$result->is_admin = true; // Optional: Admin privileges
return $result;
}
بازگشت مجدد احراز هویت #
شرایطی وجود دارد که نمیتوانید یا نمیخواهید کاربران خاصی را احراز هویت کنید، اما میخواهید از سیستم احراز هویت داخلی TestRail استفاده کنید. برای این موارد میتوانید از TestRail بخواهید که به سیستم احراز هویت خودش برگردد. البته می توانید این کار را به صورت موردی انجام دهید.
به عنوان مثال، می توانید به کاربران اجازه دهید همزمان با اعتبار Active Directory و همچنین حساب TestRail خود وارد سیستم شوند. اگر کاربر یک آدرس ایمیل را به عنوان نام کاربری وارد می کند (به جای ورود به Active Directory)، می توانید از TestRail بخواهید که از سیستم احراز هویت خود برای این کاربر استفاده کند. برای انجام این کار، به سادگی یک نمونه از را برگردانید AuthResultFallback کلاس
function authenticate_user($name, $password)
{
// [..]
return new AuthResultFallback();
}
نصب و راه اندازی #
برای نصب یک اسکریپت احراز هویت، به سادگی آن را نامگذاری کنید auth.php و آن را در خود قرار دهید custom/auth/ دایرکتوری زیر نصب TestRail شما. هنگامی که اسکریپت به TestRail اضافه شد، برای احراز هویت کاربران استفاده خواهد شد. همچنین می توانید مسیر و وضعیت دقیق اسکریپت احراز هویت را در TestRail در زیر مشاهده کنید مدیر > تنظیمات سایت > احراز هویت.
برای غیرفعال کردن اسکریپت، به سادگی آن را حذف یا تغییر نام دهید auth.php فایل سپس کاربران می توانند با آدرس ایمیل و رمز عبور TestRail وارد سیستم شوند.

