تاریخ انتشار Cloud: ۱۲ آوریل ۲۰۲۲
تاریخ انتشار Server: ۲۵ آوریل ۲۰۲۲
خوشحالیم اعلام کنیم که TestRail ۷.۵ اکنون برای مشتریان TestRail Cloud و Server بهصورت عمومی در دسترس است.
TestRail ۷.۵ قابلیت webhooks را معرفی میکند؛ قابلیتی که به شما امکان میدهد بر اساس رویدادهای TestRail، مثل ذخیره test caseهای جدید، ایجاد test runهای جدید، افزودن test result و موارد دیگر، اعلانهای لحظهای ارسال کنید. با این قابلیت میتوانید integrationهای سفارشی با ابزارهای دیگر در tech stack خود بسازید؛ مثلا CI buildها را اجرا کنید، test automation را بهصورت برنامهنویسیشده شروع کنید و در کانالهای ارتباطی مثل Slack اعلان بگیرید. در نتیجه، ارتباط بین TestRail و بقیه toolchain توسعه نرمافزار شما سادهتر میشود و همه اعضای تیم دید بهتری نسبت به فعالیتهای تست خواهند داشت.
TestRail ۷.۵ Server اکنون از نظر قابلیتها کاملا با TestRail Cloud ۷.۵ همسطح است؛ از جمله بهبودهای امنیتی با پشتیبانی گستردهتر از استانداردهای پیادهسازی SSO در نسخه Enterprise، احراز هویت چندعاملی (MFA)، و endpointهای جدید API برای مدیریت بهتر کاربران.
نمای کلی #
در مرکز قابلیت جدید webhooks، امکان ارسال خودکار اعلانها و payloadها به سیستمها یا برنامههای خارجی هنگام وقوع رویدادها در TestRail قرار دارد؛ مثلا وقتی test caseهای جدید اضافه میشوند، test runها ساخته میشوند یا test resultها بهروزرسانی میشوند. به این ترتیب، میتوانید از طریق API ابزار CI خود، یک build یا pipeline تست خودکار را اجرا کنید یا بهروزرسانیهای لحظهای را در یک کانال Slack منتشر کنید.
با webhooks میتوانید TestRail را با بقیه tech stack خود یکپارچه کنید، در زمان صرفهجویی کنید و به همه اعضای تیم دید بیشتری نسبت به فعالیتها و پیشرفت تستها بدهید. میتوانید یک webhook را بهصورت سراسری برای همه projectها ایجاد کنید یا projectهای مشخصی را انتخاب کنید که میخواهید workflow جدیدتان روی آنها اعمال شود.
برای مشتریان TestRail Enterprise Server، قابلیت Single Sign-On (SSO) را با افزودن پشتیبانی از استانداردهای OpenID Connect (OIDC) و OAuth ۲.۰ گسترش دادهایم. این موارد به پشتیبانی فعلی TestRail از SAML ۲.۰ اضافه شدهاند. حالا سازمانهای بیشتری میتوانند سیاستهای SSO را اعمال کنند تا از گمشدن، سرقت یا استفاده مجدد از اطلاعات ورود کاربران جلوگیری شود.
برای امن نگه داشتن دادهها در instance شما در TestRail، همه مشتریان TestRail Server اکنون میتوانند مطمئن شوند که کاربران با احراز هویت چندعاملی (MFA) وارد میشوند. با الزام احراز هویت از طریق ایمیل و برنامههای محبوب authenticator مانند Google Authenticator، Microsoft Authenticator و Duo Mobile، در برابر استفاده از اطلاعات ورود سرقتشده برای دسترسی به دادههای حساس، محافظت بیشتری خواهید داشت.
این تمام ماجرا نیست! با endpointهای جدید API، ایجاد کاربران و گروههای کاربری از طریق سرویس LDAP شما، مثل Azure Active Directory، سادهتر شده است. همچنین اکنون میتوانید کنترل کنید کاربران و گروههای کاربری به کدام projectها دسترسی داشته باشند و اطلاعات تکمیلی کاربر، مانند عضویت در گروهها و دسترسی administrator، را دریافت و بهروزرسانی کنید. برای افزودن یک لایه امنیتی دیگر به TestRail API، administratorها اکنون میتوانند الزام کنند که بهجای رمز عبور حساب، از API key استفاده شود.
کنسول جدید مدیریت Webhooks #
به بخش TestRail Administration بروید و سپس به تب Integrations بروید. از آنجا تب Webhooks را انتخاب کنید. کنسول جدید مدیریت webhooks، ساخت webhookهای جدید و همچنین تست، پایش و مدیریت webhookهایی را که قبلا ساختهاید ساده میکند.
پایش و مدیریت webhookهای موجود #
در این مثال، ما قبلا دو webhook ساختهایم. webhook اول اعلانی به Travis CI میفرستد و یک job ساخت روی سرور CI/CD را اجرا میکند که مجموعهای از تستهای خودکار را اجرا میکند. webhook دوم وقتی test caseهای جدید طراحی میشوند، اعلانهایی به Slack میفرستد تا با افزایش test coverage، تیمها بهتر در جریان تلاشهای تست قرار بگیرند.

خبر خوب! ستون status نشان میدهد هر دو webhook ما در حال حاضر درست کار میکنند، چون یک کد پاسخ HTTP از خانواده 2xx دریافت کردهاند. اگر webhook پاسخ متفاوتی مثل ۴۰۴ یا ۵۰۰ دریافت کند، status آن با رنگ قرمز مشخص میشود؛ یعنی باید مشکل را بررسی کنیم.
هر webhook یک نام و اطلاعات تکمیلی درباره projectهای TestRail مرتبط با آن دارد، همچنین رویدادهایی که باعث ایجاد payload برای webhook میشوند مشخص شدهاند. به این ترتیب، مرور فهرست و تشخیص هر webhook آسانتر است.
لازم است یک webhook را بهروزرسانی کنید، فعلا غیرفعالش کنید یا آن را حذف کنید؟ این کار را میتوانید از ستون actions در سمت راست همان webhook انجام دهید؛ مخصوصا وقتی درست کار نمیکند یا دیگر به آن نیازی ندارید.
اما این webhookهای کاربردی را چطور راهاندازی کردیم؟ بیایید نگاهی بیندازیم.
Webhookهای خود را سفارشی کنید #
برای ایجاد یک webhook جدید، روی Add Webhook کلیک کنید. این یکی از webhookهایی است که بالاتر دیدید و یک build را در Travis CI اجرا میکند:

برای ساخت این webhook، ما:
- یک نام نسبتا توصیفی برای آن انتخاب کردیم.
- یک Payload URL وارد کردیم. محتوای webhook هنگام اجرا شدن به این آدرس ارسال میشود.
- یک Method و Content Type مشخص میکند که درخواست را با POST، GET یا یک method دیگر ارسال میکنیم. همچنین مشخص کردیم content type چه باشد.
- چند header پیشفرض (موارد خاکستری) و چند header سفارشی (موارد مشکی) را تنظیم کنید.
همانطور که میبینید، webhook ما هنوز payload زیادی ندارد. در ادامه نشان میدهیم چطور آن را آماده کنید. Travis-CI در این مثال payload زیادی لازم ندارد، به همین دلیل خالی است.
در سمت راست، تحویلهای اخیر webhook را میبینید که نشان میدهد webhook اخیراً چه کارهایی انجام داده است. دکمه Test در بالای سمت راست این بخش به شما امکان میدهد تنظیمات webhook را تست کنید و مطمئن شوید مطابق انتظار کار میکند.
در تنظیمات پایینتر صفحه:

- اگر نیاز دارید، میتوانید یک Secret به webhook اضافه کنید. این مقدار در headerهای webhook قرار میگیرد.
- میتوانید انتخاب کنید کدام eventهای TestRail باعث اجرای webhook شوند و محتوا را به Payload URL مربوطه ارسال کنند. نام eventها معمولاً واضح است، اما اگر event Plan created را انتخاب کنید، برای مثال، وقتی یک plan در محدوده projectهای انتخابشده ایجاد شود، webhook یک payload ارسال میکند.
- در بخش Projects میتوانید projectهایی را انتخاب کنید که eventها باید برای آنها اعمال شوند. در این مثال میبینید که فعلاً فقط یک project در instance ما وجود دارد و همان انتخاب شده است.
- با فعال یا غیرفعال کردن checkbox مربوط به Active میتوانید webhook را روشن یا خاموش کنید.
وقتی پیکربندی webhook کامل شد، میتوانید آن را ذخیره و تست کنید و اجازه دهید طبق تنظیمات شما اجرا شود.
در مثالی که تا اینجا نشان دادم، payload مربوط به webhook بیشتر خالی بوده است (بهجز headerها و محتوای URL). با این حال، بسته به نیازتان ممکن است لازم باشد محتوایی برای payload تعریف کنید؛ بیایید آن را بررسی کنیم.
سفارشیسازی payloadهای webhook #
فیلد payload در webhook طوری طراحی شده که انعطافپذیر باشد؛ بنابراین میتوانید با استفاده از webhooks console تقریباً هر نوع payloadی را که میخواهید بسازید و ارسال کنید.
نمونه use caseها برای TestRail Webhooks #
از آنجا که در TestRail میتوانید webhookها و payloadهای آنها را تقریباً به هر شکلی که میخواهید سفارشی کنید، راههای بسیار زیادی برای اتصال TestRail به ابزارهای دیگر در tech stack شما وجود دارد. با این حال، دو use case رایج که انتظار داریم کاربران TestRail بیشتر از آنها استفاده کنند عبارتاند از: استفاده از webhookها برای trigger کردن jobهای build در CI/CD برای test automation، و ارسال updateها به ابزارهای ارتباطی مانند Slack یا Microsoft Teams.
Trigger کردن buildها برای اجرای test automation در TravisCI #
یکی از use caseهای رایج webhookها این است که از آنها برای trigger کردن job ساخت روی یک سرور CI/CD استفاده شود؛ jobی که ممکن است مجموعهای از تستهای خودکار را با Jenkins یا، در این مثال، TravisCI اجرا کند.
طبق مستندات TravisCI ، برای trigger کردن یک build کافی است از API آن استفاده کنید و مطمئن شوید request شما شامل repository و جزئیات job مربوطه، همراه با authentication مناسب است:

این مثال ساده باعث میشود job ساخت trigger و بدون دستورالعمل اضافه اجرا شود. برای سناریوهای پیچیدهتر میتوانید دستورالعملهایی با فرمت JSON به payload وبهوک اضافه کنید.
برای سناریوها و دستورالعملهای بیشتر مربوط به سرور CI/CD خودتان، پیشنهاد میکنیم مستندات همان ابزار را بررسی کنید.
Trigger کردن notificationها در Slack #
یکی دیگر از use caseهای webhookها میتواند این باشد که کاربران را از eventهای TestRail از طریق یک messaging app مانند Slack یا Microsoft Teams باخبر کنید.
من یک Slack app راهاندازی کردم (دستورالعملهای انجام این کار را میتوانید اینجا ببینید) تا payloadهای ورودی webhook از TestRail را بپذیرد، و سپس یک webhook در TestRail webhooks console ایجاد کردم:

فیلد payload کمی فشرده نمایش داده شده، بنابراین payload کامل JSON را در ادامه آوردهایم تا ببینید با webhookها چه کارهایی میتوانید انجام دهید. (Slack نیز دستورالعملهای بیشتری برای قالبهای مختلف پیام در اینجا ارائه کرده است.)
| { “text”: “%event_creator% یک test case جدید ایجاد کرد:”, “blocks”: [ { “type”: “section”, “text”: { “type”: “mrkdwn”, “text”: “*%event_creator% یک test case جدید ایجاد کرد:*” } }, { “type”: “divider” }, { “type”: “section”, “text”: { “type”: “mrkdwn”, “text”: “*<%url%|%name%>* n اولویت: %case_priority% n نوع: %case_type%” } } ]} |
وقتی webhook اجرا شود، در Slack پیامی شبیه نمونه زیر خواهید دید:

همانطور که در مثال بالا نشان داده شده، میتوانید با استفاده از variableها، payloadهای خود را با دادههای TestRail تکمیل کنید.
از variableها برای گرفتن داده از TestRail و پر کردن آنها بهصورت پویا هنگام اجرا استفاده کنید #
variableهای زیر را برای استفاده در payloadهای webhook در اختیار شما قرار دادهایم:
- %assigned_to% = متن، نام کاربر
- %case_priority% = متن، اولویت اختصاصدادهشده به test case، برای مثال “High”
- %case_type% = متن، برای مثال “Automation”
- %completed_on% = timestamp
- %config% = متن، runs.config
- %custom_x% = object/array، همه فیلدهای مرتبط با فیلدی را برمیگرداند که با “custom_” شروع میشود
- %description% = متن، برای مثال milestone.description
- %due_on% = timestamp
- %entity_created% = timestamp
- %entity_creator% = متن، نام کاربر
- %estimate% = عدد صحیح، estimate اختصاصدادهشده به test case؛ واردشده توسط کاربر
- %event_created% = timestamp
- %event_creator% = متن، نام کاربر
- %event_type% = متن، {created, deleted, updated, assigned}
- %id% = عدد صحیح، ID یکتا، مانند case.id
- %is_deleted% = boolean، مقداری که نشان میدهد case/run/plan/milestone بهعنوان حذفشده علامتگذاری شده است یا نه
- %milestone_id% = عدد صحیح، ID یکتا
- %more_info% = متن، برای مثال: “”/api/v2/<endpoint>/<id>”
- %name% = متن، نام یا عنوان entity، مانند runs.name یا cases.title
- %project_id% = عدد صحیح، ID یکتا
- %refs% = متن، برای مثال: “TR-۷۱, TR-۷۲”
- %section_id% = عدد صحیح، ID یکتا
- %stats% = object/array، {passed_count, blocked_count, untested_count, retest_count, failed_count, custom_status_n_count}
- %suite_id% = عدد صحیح، ID یکتا
- %template_name% = متن، template استفادهشده در test case، مانند “Exploratory Session”
- %url% = متن، برای مثال: “https://sjpknight.testrail.com/index.php?/milestones/view/۶۱”
- %secret% = متن
برای دسترسی به متغیرها، آنها را به فیلد payload اضافه کنید. وقتی webhook اجرا شود، این متغیرها با دادههای متناظر در TestRail پر میشوند:

قابلیت افزودن متغیرها به payloadهای webhook در حال حاضر یک قابلیت بتا است و قصد داریم در نسخههای بعدی آن را بهبود دهیم. اگر بازخورد، پیشنهاد، مثلا برای متغیرهای بیشتر، یا درخواستی برای بهتر شدن این قابلیت دارید، خوشحال میشویم آن را با ما در میان بگذارید.
در همین زمینه، از چند مشکل شناختهشده هم آگاه هستیم.
مشکلات شناختهشده #
- فرآیند ذخیره webhook فعلا کمی پیچیدهتر از چیزی است که میخواهیم. در اولین فرصت برای بهبود این فرآیند اقدام میکنیم.
- در حال حاضر فیلد payload قابل بزرگ کردن نیست و همین موضوع ساخت payloadهای بزرگ را کمی دشوار میکند. انتظار داریم این مورد را هم بهبود دهیم. فعلا اگر payload بزرگی دارید، پیشنهاد میکنیم آن را از یک IDE یا ابزار مشابه کپی و در این فیلد جایگذاری کنید.
- payloadهای webhook با رویدادهای مرتبط با API یا بعضی مسیرهای رویداد در UI اجرا نمیشوند؛ مثلا کپی کردن یک case از نظر عملکرد معادل ایجاد case است، اما رویداد add case را اجرا نمیکند.
- فهرست فعلی متغیرهایی که میتوان در payloadها استفاده کرد، محدودتر از چیزی است که مدنظر ماست. اگر متغیرهای بیشتری نیاز دارید، لطفا به ما اطلاع دهید.
اگر مورد دیگری هم دیدید، لطفا از طریق تماس با ما به ما اطلاع دهید. بهبودهایی برای یک release بهروزرسانی در آینده نزدیک برنامهریزی شده است.
اطلاعات بیشتر درباره webhookها >
TestRail Server: پیادهسازیهای جدید SSO #
قابلیت SSO در TestRail به administratorها اجازه میدهد TestRail را با identity provider یا همان IDP موردنظرشان برای SSO و با استفاده از پروتکلهای SAML ۲.۰، OAuth ۲.۰ و OpenID Connect یکپارچه کنند. در عمل، یعنی مدیریت کاربران سادهتر میشود: کاربر یکبار در IDP ساخته میشود و سپس به برنامههای موردنیازش، در اینجا TestRail، دسترسی پیدا میکند.
برای فعال کردن SSO، به مسیر Administration > Site Settings > SSO بروید، پروتکل موردنظر را انتخاب کنید و تنظیمات لازم را تکمیل کنید. از صفحه پیکربندی SSO میتوانید برای یکپارچهسازی با هر identity providerی استفاده کنید که از SAML ۲.۰، OAuth ۲.۰ یا OpenID Connect پشتیبانی میکند.
اگرچه SSO در TestRail قابلیت جدیدی نیست، پشتیبانی از OAuth ۲.۰ و OIDC اکنون در نسخه ۷.۴ اضافه شده و در کنار پیادهسازی قبلی SAML ۲.۰ قرار گرفته است. مستندات موجود برای پیکربندی SSO را بهروزرسانی کردهایم و برای چند ابزار محبوب، بر اساس هر پروتکل موجود، راهنماهایی آماده کردهایم:
- OAuth 2.0 – Azure
- OAuth 2.0 – Google
- OAuth 2.0 – Okta
- OpenID Connect – Azure
- OpenID Connect – Google
- OpenID Connect – Okta
- SAML 2.0 – Azure
- SAML 2.0 – Google
- SAML 2.0 – Okta
برای کسب اطلاعات بیشتر درباره پیادهسازی Enterprise SSO
TestRail Server: احراز هویت چندعاملی #
برای افزایش امنیت instanceهای TestRail، احراز هویت چندعاملی یا MFA را اضافه کردهایم تا بتوانید مطمئن شوید کاربران ورود خود را از طریق ایمیل یا اپلیکیشنهای رایج authenticator تأیید میکنند. این قابلیت را میتوانید برای instance TestRail خود فعال کنید و سپس برای هر کاربر بهصورت جداگانه روشن کنید. هر administrator میتواند MFA را برای TestRail از مسیر زیر فعال کند Site Settings > Security:

برای اجباری کردن MFA برای کاربران، میتوانید این تنظیم را برای هر کاربر بهصورت جداگانه فعال کنید یا کاربران را بهصورت گروهی ویرایش کنید. اجباری کردن MFA باعث میشود کاربران TestRail که از API استفاده میکنند، به API key هم نیاز داشته باشند.

پس از فعال شدن MFA، کاربران هنگام ورود به TestRail باید یک کد یکبارمصرف وارد کنند:

بهطور پیشفرض، این کد از طریق ایمیل برای کاربر ارسال میشود:

همچنین کاربران میتوانند حساب کاربری خود را به یک authenticator app که از الگوریتم Time-Based One-Time Password پشتیبانی میکند، مثل Authy، Google Authenticator یا Microsoft Authenticator، متصل کنند. برای تنظیم authenticator app، کاربران باید مراحل زیر را انجام دهند:
- به بخش My Settings > Auth بروید و دکمه Connect را برای authenticator app انتخاب کنید:

۲. دستورالعملهای داخل پنجره dialog را دنبال کنید:

- تنظیمات کاربری خود را ذخیره کنید
برای آشنایی بیشتر با MFA اینجا کلیک کنید
TestRail Server: تغییرات API #
API در TestRail چند بهروزرسانی دریافت کرده است تا مدیریت permissionها برای کاربران، user groupها و projectها بهتر شود. اکنون endpointهای مربوط به کاربر جزئیات بیشتری از کاربر برمیگردانند و endpointهای project نیز اطلاعات permission بیشتری برای کاربران و گروهها ارائه میکنند. همچنین endpointهای جدیدی اضافه شدهاند تا ایجاد و مدیریت کاربران و user groupهای TestRail امکانپذیر شود.
در ادامه خلاصهای از تغییرات endpointهای موجود آمده است:
get_user و get_users از فیلدهای اضافی زیر برای کاربران پشتیبانی میکنند:
- email_notifications
- is_admin
- group_ids
- mfa_required
- assigned_projects
- sso_enabled
get_project ، get_projects ، و update_project اکنون از
فیلدهای زیر پشتیبانی میکنند:
- default_role_id
- default_role
- groups*
- users*
فیلدهای groups و users شامل اطلاعات کاربران و گروههای مربوط به همان project هستند.
برای بهبود مدیریت کاربران و گروهها، endpointهای زیر را به API در TestRail اضافه کردهایم
- add_user – ایجاد یک کاربر جدید در TestRail
- update_user – بهروزرسانی یک کاربر موجود در TestRail
- get_group – دریافت اطلاعات درباره یک user group مشخص
- get_groups – دریافت اطلاعات همه user groupها در TestRail
- add_group – ایجاد یک user group جدید
- update_group – بهروزرسانی یک user group موجود
- delete_group – حذف یک user group
- get_roles – دریافت همه نقشهای کاربری موجود در TestRail
لطفا توجه کنید: اگر Multi-Factor Authentication برای کاربران الزامی باشد، این کاربران صرفنظر از Site Setting فعالشده، به API key نیاز خواهند داشت.
دریافت TestRail ۷.۵ #
میتوانید دوره آزمایشی رایگان ۳۰ روزه TestRail را از اینجا شروع کنید، چه برای Cloud و چه برای Server: https://secure.testrail.com/customers/testrail/trial/
اگر میخواهید برای TestRail Cloud اشتراک تهیه کنید، میتوانید این کار را از داخل TestRail و از مسیر Administration > Subscription انجام دهید. همچنین اگر میخواهید licenseهای TestRail Server را سفارش دهید، میتوانید از این صفحه در وبسایت ما اقدام کنید: https://secure.testrail.com/customers/shop/annual/purchase/
مشتریان ثبتنامشده میتوانند نسخه کامل را از TestRail Billing Portal دانلود کنند: https://secure.testrail.com/customers/auth/login/
TestRail Enterprise #
برای کسب اطلاعات بیشتر درباره SSO، Project Level Administration یا هرکدام از قابلیتهای دیگر TestRail Enterprise، لطفا وارد حساب خود شوید و با تیم پشتیبانی تماس بگیرید؛ یا اگر وارد حساب نشدهاید، روی Submit a request در بالای سمت راست این صفحه کلیک کنید.
مطمئن نیستید از کدام plan در TestRail استفاده میکنید؟ با ما تماس بگیرید؛ خوشحال میشویم کمک کنیم.
بهروزرسانی به TestRail ۷.۵ #
TestRail Cloud #
instanceهای TestRail Cloud بهصورت خودکار به آخرین نسخه بهروزرسانی میشوند. میتوانید نسخه خود را از طریق TestRail Help > About TestRail در منو بررسی کنید.
TestRail Server #
مشتریان ثبتنامشده میتوانند نسخه کامل را از TestRail Billing Portal دانلود کنند: https://secure.testrail.com/customers/auth/login/

