Skip to content
تست ریل |‌ سرویس مدیریت تستتست ریل |‌ سرویس مدیریت تست
  • صفحه اصلی
  • درباره ما
  • تماس با ما
  • -
  • -

Testrail

543
  • راهنمای کاربر
    • آغاز کار با TestRail
      • جستجو
      • پروژه‌ها و انواع آن‌ها
      • نکته‌ها و ترفندهای کاربردی
      • میانبرهای صفحه‌کلید و hotkeyها
      • آشنایی با TestRail
      • مرجع قالب‌بندی ویرایشگر متن
      • صفحه شروع به کار
      • TestRail Server و TestRail Cloud
      • بهترین شیوه‌ها
        • بهترین روش‌ها: تولید کد تست اتوماسیون با هوش مصنوعی
        • راهنمای بهترین روش‌ها: بک‌لاگ اتوماسیون تست
        • راهنمای بهترین روش‌ها: TestRail CLI
        • راهنمای بهترین روش‌ها: معیارهای تست
        • راهنمای بهترین روش‌ها: test runها و نتایج تست
        • راهنمای بهترین روش‌ها: test caseها
        • راهنمای بهترین روش‌ها: Milestoneها
    • هوش مصنوعی در TestRail
      • راهنمای استفاده مسئولانه از هوش مصنوعی
      • اولویت بندی تست ها با هوش مصنوعی
        • درک AI Reasons در قابلیت Prioritise with AI
        • چگونه با Prioritize with AI بهترین نتیجه را بگیریم
        • شروع با اولویت‌بندی تست‌ها با هوش مصنوعی
      • ایجاد تست‌کیس‌ها با هوش مصنوعی
        • چگونه بهترین نتیجه را از AI Test Case Generator در TestRail بگیریم
        • شروع سریع: تولید تست‌کیس با هوش مصنوعی
      • تست ویژگی های هوش مصنوعی با استفاده از TestRail
        • یکپارچه‌سازی ابزارهای ارزیابی هوش مصنوعی با TestRail
        • الگوی AI Evaluation با داشبورد Quality Insights
      • خودکار کردن تست‌کیس‌ها با هوش مصنوعی
        • بیشترین بهره را از اتوماسیون مبتنی بر هوش مصنوعی در TestRail ببرید
        • شروع کار با Automate Test Cases with AI
    • تست‌کیس‌ها
      • توسعه رفتارمحور (BDD)
      • وارد کردن test caseها از CSV یا Excel
      • مراحل مشترک
      • وارد کردن test caseها از XML
      • انتقال، کپی، حذف و بازیابی test caseها
      • جدا کردن مراحل تست از نتایج تست
      • برچسب‌گذاری
      • Test suiteها
      • فیلتر کردن و مرتب‌سازی
      • خروجی گرفتن از test caseها
      • قالب‌های test case
      • افزودن test caseها
      • بخش‌ها
      • فیلدهای test case
    • برنامه‌ریزی و اجرای تست
      • به‌روزرسانی نتایج تست
      • ایجاد test run جدید
      • ایجاد test plan جدید
      • Configurations
      • اختصاص دادن تست‌ها برای اجرا
      • اجرای مجدد test caseها
      • بستن test run و test plan
      • ثبت نتایج تست
      • Milestoneها
    • گزارش‌گیری و تحلیل
      • سؤالات متداول درباره گزارش‌ها
      • سفارشی‌سازی نمودارها
      • نمای کلی گزارش‌ها
      • تنظیمات کلی reportها
      • چاپ reportها
      • نمودارها و داشبوردها
      • موارد کاربرد reportها
      • گزارش موارد
        • گزارش Status Tops (Cases)
        • گزارش توزیع ویژگی‌ها (test caseها)
        • گزارش پوشش مراجع (test caseها)
        • گزارش خلاصه فعالیت (test case ها)
      • گزارش های بین پروژه ای
        • حجم کاری کاربر (اجرای تست)
        • خلاصه Projectها (Test Execution)
      • گزارش نقص
        • گزارش Summary for References (Defects)
        • گزارش Summary for Cases (Defects)
        • گزارش خلاصه (Defects)
      • گزارش نتایج
        • گزارش Property Distribution (Results)
        • گزارش Comparison for Cases (Results)
        • گزارش Comparison for References (Results)
      • گزارش های خلاصه
        • گزارش Runs (Summary)
        • گزارش پروژه (خلاصه)
        • گزارش Plan (Summary)
        • گزارش Milestone (Summary)
    • مدیریت و سفارشی‌سازی‌ها
      • ذخیره‌سازی و مدیریت داده‌ها
      • مدیریت پیوست‌ها
      • پیکربندی فیلدهای سفارشی
      • افزودن لوگوی سفارشی به محیط TestRail
      • افزودن کاربران به محیط TestRail
      • تنظیم تم Light یا Dark در TestRail
      • بایگانی هوشمند برای Test Runها و Test Planها
      • پیکربندی تنظیمات زبان در TestRail
      • پیکربندی‌ها و integrationهای پشتیبانی‌شده در TestRail
      • پشتیبان‌گیری روزانه TestRail Professional Hosted
      • اسکریپت های رابط کاربری
        • نمونه‌های UI Scripts
        • معرفی UI Scripts
      • مدیریت کاربران و امنیت
        • تنظیم احراز هویت چندعاملی (MFA)
        • مدیریت مجوزها و نقش‌های کاربران
        • مدیریت امنیت کاربران
        • مدیریت امنیت instance
    • راهنمای سازمانی
      • پارامترسازی تست، متغیرها و datasetها
      • نسخه‌بندی test case
      • بررسی و تأیید test caseها
      • مدیریت در سطح project
      • سفارشی‌سازی ایمیل
      • زمان‌بندی قابل تنظیم پشتیبان‌گیری و بازیابی
      • ثبت لاگ حسابرسی
      • خلاصه ویژگی‌های Enterprise
      • پیکربندی یک ورود به سیستم (SSO)
        • پیکربندی SSO با ADFS
        • پیکربندی Okta SSO
        • پیکربندی Google SSO
        • پیکربندی Azure SSO
        • پیکربندی SSO
    • راهنمای مهاجرت
      • مهاجرت: CSV و Excel
      • مهاجرت: مقدمه
      • مهاجرت از TestRail Server به TestRail Cloud
      • مهاجرت از QMetry
      • مهاجرت از TestLink
      • مهاجرت از Azure DevOps
      • مهاجرت از Xray (Cloud)
      • مهاجرت از Xray (Server و Datacenter)
      • مهاجرت از qTest
      • مهاجرت از Zephyr Scale
      • مهاجرت از Zephyr Squad
    • صورتحساب و مدیریت حساب
      • پورتال صورت‌حساب TestRail
      • تغییرات پیش‌رو در قیمت اشتراک ماهانه TestRail
      • درخواست‌های ارزیابی امنیتی
      • گزینه‌های اشتراک و صورت‌حساب
      • صورتحساب و مدیریت – پرسش‌های متداول
  • راهنمای سرور
    • نصب و راه اندازی
      • فعال‌سازی کار پس‌زمینه
      • بازگرداندن TestRail به نسخه قدیمی‌تر
      • نصب TestRail Enterprise Server
      • به‌روزرسانی license key ویرایشگر Rich Text Editor (۲۰۲۶)
      • نسخه‌های پشتیبانی‌شده TestRail Server
      • نصب نسخه های 9.4.1 تا 10.4.1
        • ارتقای TestRail از ۹.۴.۱ تا ۱۰.۴.۱ در Windows
        • ارتقای TestRail از ۹.۴.۱ تا ۱۰.۴.۱ در Unix/Linux
        • الزامات نصب نسخه‌های ۹.۴.۱ تا ۱۰.۴.۱
        • نصب با داکر
          • نصب نسخه‌های ۹.۴.۱ تا ۱۰.۴.۱ با Docker
        • نصب با یونیکس/لینوکس
          • آماده‌سازی سرور Unix/Linux برای نصب – از نسخه ۱۰.۰.۱ به بعد
          • نصب TestRail (یونیکس/لینوکس)
          • ایجاد database خالی SQL (Unix / Linux)
          • آماده‌سازی سرور Unix/Linux برای نصب – نسخه‌های ۹.۴.۱ تا ۹.۸.۱
        • نصب روی ویندوز
          • آماده‌سازی سرور ویندوز برای نصب – نسخه‌های ۱۰.۰.۱ به بعد
          • ایجاد پایگاه داده SQL خالی (Windows)
          • آماده‌سازی سرور ویندوز برای نصب – نسخه‌های ۹.۴.۱ تا ۹.۸.۱
          • نصب TestRail (ویندوز)
      • نسخه های قدیمی تر
        • نصب نسخه 9.3.2
          • ارتقای TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰/۹.۰.۰/۹.۱.۰/۹.۲.۱ به ۹.۳.۲ در Windows
          • ارتقای TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰/۹.۰.۰/۹.۱.۰/۹.۲.۱ به ۹.۳.۲ در Unix/Linux
          • نیازمندی‌های نصب – نسخه ۹.۳.۲
          • نصب با داکر
            • نصب ۹.۳.۲.۱۰۰۲ روی داکر
          • نصب با یونیکس / لینوکس
            • نصب TestRail (یونیکس/لینوکس) – نسخه ۹.۳.۲.۱۰۰۲
            • ایجاد پایگاه داده SQL خالی (Unix/Linux) – نسخه ۹.۳.۲.۱۰۰۲
            • نصب پایگاه داده Cassandra NoSQL (یونیکس / لینوکس) – نسخه ۹.۳.۲.۱۰۰۲
            • آماده‌سازی سرور Unix/Linux برای نصب – ۹.۳.۲.۱۰۰۲
          • نصب روی ویندوز
            • نصب TestRail (ویندوز) – نسخه ۹.۳.۲.۱۰۰۲
            • ایجاد دیتابیس SQL خالی (Windows) – نسخه ۹.۳.۲.۱۰۰۲
            • نصب پایگاه داده Cassandra NoSQL در ویندوز – نسخه ۹.۳.۲.۱۰۰۲
            • آماده‌سازی سرور ویندوز برای نصب – نسخه ۹.۳.۲.۱۰۰۲
        • نصب نسخه 9.2.1
          • الزامات نصب – نسخه ۹.۲.۱
          • ارتقای TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰/۹.۰.۰/۹.۱.۰ به ۹.۲.۱ در Unix/Linux
          • ارتقای TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰/۹.۰.۰/۹.۱.۰ به ۹.۲.۱ در Windows
          • نصب با داکر
            • نصب ۹.۲.۱.۱۰۱۰ روی داکر
          • نصب با یونیکس / لینوکس
            • نصب TestRail (Unix/Linux) – نسخه ۹.۲.۱.۱۰۱۰
            • ایجاد پایگاه داده خالی SQL (Unix/Linux) – نسخه ۹.۲.۱.۱۰۱۰
            • نصب پایگاه داده Cassandra NoSQL (یونیکس / لینوکس) – نسخه ۹.۲.۱.۱۰۱۰
            • آماده‌سازی سرور یونیکس/لینوکس برای نصب – ۹.۲.۱.۱۰۱۰
          • نصب روی ویندوز
            • نصب TestRail در ویندوز – نسخه ۹.۲.۱.۱۰۱۰
            • نصب پایگاه داده Cassandra NoSQL در ویندوز – نسخه ۹.۲.۱.۱۰۱۰
            • ایجاد پایگاه داده خالی SQL (Windows) – نسخه ۹.۲.۱.۱۰۱۰
            • آماده‌سازی سرور ویندوز برای نصب – نسخه ۹.۲.۱.۱۰۱۰
        • نصب نسخه 9.1.0
          • ارتقای TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰/۹.۰.۰ به ۹.۱.۰ در Windows
          • ارتقای TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰/۹.۰.۰ به ۹.۱.۰ در Unix/Linux
          • الزامات نصب – نسخه ۹.۱.۰
          • نصب با داکر
            • نصب ۹.۱.۰.۱۰۲۵ روی Docker
          • نصب با یونیکس / لینوکس
            • نصب TestRail (Unix/Linux) – نسخه ۹.۱.۰.۱۰۲۵
            • نصب پایگاه داده NoSQL Cassandra (یونیکس / لینوکس) – نسخه ۹.۱.۰.۱۰۲۵
            • ایجاد database خالی SQL در Unix/Linux – نسخه ۹.۱.۰.۱۰۲۵
            • آماده‌سازی سرور Unix/Linux برای نصب – ۹.۱.۰.۱۰۲۵
          • نصب روی ویندوز
            • آماده‌سازی سرور ویندوز برای نصب – نسخه ۹.۱.۰.۱۰۲۵
            • نصب پایگاه داده NoSQL Cassandra در ویندوز – نسخه ۹.۱.۰.۱۰۲۵
            • ایجاد دیتابیس خالی SQL (Windows) – نسخه ۹.۱.۰.۱۰۲۵
            • نصب TestRail (Windows) – نسخه ۹.۱.۰.۱۰۲۵
        • نصب نسخه 9.0.0
          • ارتقای TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰ به ۹.۰.۰ در Windows
          • ارتقای TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰ به ۹.۰.۰ در Unix/Linux
          • الزامات نصب – نسخه ۹.۰.۰
          • نصب با داکر
            • نصب نسخه ۹.۰.۰.۱۰۹۱ در Docker
          • نصب با یونیکس / لینوکس
            • نصب TestRail (یونیکس/لینوکس) – نسخه ۹.۰.۰.۱۰۹۱
            • ایجاد پایگاه داده SQL خالی (Unix/Linux) – نسخه ۹.۰.۰.۱۰۹۱
            • نصب پایگاه داده Cassandra NoSQL در Unix / Linux – نسخه ۹.۰.۰.۱۰۹۱
            • آماده‌سازی سرور یونیکس/لینوکس برای نصب – ۹.۰.۰.۱۰۹۱
          • نصب روی ویندوز
            • نصب TestRail (Windows) – نسخه ۹.۰.۰.۱۰۹۱
            • نصب پایگاه داده NoSQL Cassandra در ویندوز – نسخه ۹.۰.۰.۱۰۹۱
            • ایجاد پایگاه داده SQL خالی (Windows) – نسخه ۹.۰.۰.۱۰۹۱
            • آماده‌سازی سرور Windows برای نصب – نسخه ۹.۰.۰.۱۰۹۱
        • نصب نسخه 8.1.0
          • ارتقای TestRail از ۸.۰.۴/۸.۰.۶ به ۸.۱.۰ در Unix/Linux
          • ارتقای TestRail از ۸.۰.۴/۸.۰.۶ به ۸.۱.۰ در Windows
          • الزامات نصب – نسخه ۸.۱.۰
          • نصب با داکر
            • نصب ۸.۱.۰.۶۱۸۶ روی Docker
          • نصب با یونیکس / لینوکس
            • نصب TestRail (یونیکس/لینوکس) – نسخه ۸.۱.۰.۶۱۸۶
            • نصب پایگاه داده NoSQL Cassandra (Unix / Linux) – نسخه ۸.۱.۰.۶۱۸۶
            • ایجاد دیتابیس خالی SQL در Unix/Linux – نسخه ۸.۱.۰.۶۱۸۶
            • آماده‌سازی سرور Unix/Linux برای نصب – ۸.۱.۰.۶۱۸۶
          • نصب روی ویندوز
            • نصب TestRail (ویندوز) – نسخه ۸.۱.۰.۶۱۸۶
            • ایجاد دیتابیس SQL خالی (Windows) – نسخه ۸.۱.۰.۶۱۸۶
            • نصب پایگاه داده Cassandra NoSQL در ویندوز – نسخه ۸.۱.۰.۶۱۸۶
            • آماده‌سازی سرور ویندوز برای نصب – نسخه ۸.۱.۰.۶۱۸۶
        • نصب نسخه 8.0.6
          • الزامات نصب – نسخه ۸.۰.۶
          • ارتقای TestRail از ۸.۰.۴ به ۸.۰.۶ در ویندوز
          • ارتقای TestRail از ۸.۰.۴ به ۸.۰.۶ در Unix/Linux
          • نصب با داکر
            • نصب نسخه ۸.۰.۶.۱۰۱۹ روی Docker
          • نصب با یونیکس / لینوکس
            • نصب TestRail روی Unix/Linux – نسخه ۸.۰.۶.۱۰۱۹
            • ایجاد پایگاه داده SQL خالی (Unix/Linux) – نسخه ۸.۰.۶.۱۰۱۹
            • نصب پایگاه داده Cassandra NoSQL (یونیکس / لینوکس) – نسخه ۸.۰.۶.۱۰۱۹
            • آماده‌سازی سرور Unix/Linux برای نصب – نسخه ۸.۰.۶.۱۰۱۹
          • نصب روی ویندوز
            • ایجاد پایگاه داده خالی SQL (ویندوز) – نسخه ۸.۰.۶.۱۰۱۹
            • نصب TestRail در ویندوز – نسخه ۸.۰.۶.۱۰۱۹
            • نصب پایگاه داده Cassandra NoSQL در ویندوز – نسخه ۸.۰.۶.۱۰۱۹
            • آماده‌سازی سرور ویندوز برای نصب – نسخه ۸.۰.۶.۱۰۱۹
        • نصب نسخه 8.0.4
          • ارتقای TestRail از ۸.۰.۱ به ۸.۰.۴ در Windows
          • ارتقای TestRail از ۸.۰.۱ به ۸.۰.۴ در Unix/Linux
          • نیازمندی‌های نصب – نسخه ۸.۰.۴
          • نصب با داکر
            • نصب نسخه ۸.۰.۴.۷۰۳۶ روی Docker
          • نصب بر روی یونیکس / لینوکس
            • نصب پایگاه داده NoSQL Cassandra (Unix/Linux) – نسخه ۸.۰.۴.۷۰۳۶
            • ایجاد پایگاه داده SQL خالی (Unix/Linux) – نسخه ۸.۰.۴.۷۰۳۶
            • نصب TestRail (یونیکس/لینوکس) – نسخه ۸.۰.۴.۷۰۳۶
            • آماده‌سازی سرور Unix/Linux برای نصب – نسخه ۸.۰.۴.۷۰۳۶
          • نصب روی ویندوز
            • نصب TestRail (Windows) – نسخه ۸.۰.۴.۷۰۳۶
            • آماده‌سازی سرور ویندوز برای نصب – نسخه ۸.۰.۴.۷۰۳۶
            • نصب پایگاه داده NoSQL Cassandra روی ویندوز – نسخه ۸.۰.۴.۷۰۳۶
            • ایجاد پایگاه داده خالی SQL (ویندوز) – نسخه ۸.۰.۴.۷۰۳۶
        • نصب نسخه 8.0.1
          • ارتقای TestRail از ۷.۵.۳ به ۸.۰.۱ در Unix/Linux
          • ارتقای TestRail از ۷.۵.۳ به ۸.۰.۱ در ویندوز
          • نیازمندی‌های نصب – نسخه ۸.۰.۱
          • نصب با داکر
            • نصب TestRail ۸.۰.۱.۱۰۲۹ روی Docker
          • نصب بر روی یونیکس / لینوکس
            • نصب پایگاه داده Cassandra NoSQL (Unix / Linux) – نسخه ۸.۰.۱.۱۰۲۹
            • نصب TestRail (یونیکس/لینوکس) – نسخه ۸.۰.۱.۱۰۲۹
            • ایجاد پایگاه داده خالی SQL (Unix/Linux) – نسخه ۸.۰.۱.۱۰۲۹
            • آماده‌سازی سرور Unix/Linux برای نصب – نسخه ۸.۰.۱.۱۰۲۹
          • نصب روی ویندوز
            • نصب TestRail (ویندوز) – نسخه ۸.۰.۱.۱۰۲۹
            • ایجاد پایگاه داده خالی SQL (ویندوز) – نسخه ۸.۰.۱.۱۰۲۹
            • نصب پایگاه داده Cassandra NoSQL در ویندوز – نسخه ۸.۰.۱.۱۰۲۹
            • آماده‌سازی سرور ویندوز برای نصب – نسخه ۸.۰.۱.۱۰۲۹
        • نصب نسخه 7.5
          • نیازمندی‌های نصب
          • ارتقای TestRail
          • نصب بر روی یونیکس / لینوکس
            • نصب TestRail
            • ایجاد یک پایگاه داده SQL خالی
            • نصب پایگاه داده NoSQL Cassandra در Unix / Linux
            • آماده‌سازی سرور Unix/Linux برای نصب
          • نصب روی ویندوز
            • نصب TestRail
            • ایجاد پایگاه داده SQL خالی
            • نصب پایگاه داده NoSQL Cassandra
            • آماده‌سازی سرور Windows برای نصب
          • نصب با داکر
            • نصب روی Docker: مهاجرت و ارتقای TestRail
            • نصب روی Docker: فایل‌های Compose
            • نصب روی Docker: شروع کار
            • نصب با Docker: نمای کلی
    • مدیریت سرور
      • راه‌اندازی سرور staging
      • ایمن‌سازی نصب‌های TestRail Server
      • بهینه‌سازی نصب‌های TestRail Server
      • بازیابی بکاپ TestRail
      • تهیه نسخه پشتیبان از نمونه TestRail Server
      • عیب یابی
        • ارتقای PHP ۵.۶ به PHP ۷.x
        • افزایش محدودیت حافظه PHP
        • نصب افزونه SQLsrv برای PHP
        • عیب‌یابی نصب TestRail Server
        • افزایش محدودیت آپلود فایل در PHP
        • اجرای عیب‌یابی با Phpinfo()
        • حذف داده‌های اضافی از نمونه TestRail
        • نصب افزونه SQLsrv PHP – نسخه ۸.۰
        • اجرای عیب‌یابی Phpinfo() – نسخه ۸.۰
    • سفارشی سازی ها و افزونه ها
      • سفارشی‌سازی یک defect plugin
      • ساخت defect plugin سفارشی
      • زبان‌ها: ترجمه رابط کاربری TestRail
      • اشکال‌زدایی اسکریپت‌های سفارشی
      • افزونه های گزارش سفارشی
        • Reports: ساخت افزونه report سفارشی (۳/۳)
        • گزارش‌ها: ساخت report plugin سفارشی (۲/۳)
        • گزارش‌ها: ساخت افزونه گزارش سفارشی (۱/۳)
        • معرفی reportهای سفارشی
    • احراز هویت
      • احراز هویت: پیاده‌سازی Single sign-on با TestRail
      • احراز هویت: LDAP
      • احراز هویت: Active Directory
      • احراز هویت: مقدمه
    • استهلاک کاساندرا
      • پاک‌سازی فایل‌های attachment قدیمی
      • انتقال داده‌های Cassandra به MySQL در TestRail Server برای Linux
      • انتقال داده‌های Cassandra در TestRail Server برای Docker در Windows و Linux
      • انتقال داده‌های Cassandra در TestRail Server به MS SQL Server برای Windows
  • ادغام‌ها
    • ادغام‌های الزامات و نقص‌ها
      • آشنایی با integrationهای Reference و Defect
      • پیکربندی یکپارچه‌سازی‌های مرجع
      • پیکربندی متغیرهای کاربر
      • پیکربندی یکپارچه‌سازی با bug trackerها
      • ادغام با Aha! Develop
      • ادغام های موجود
        • یکپارچه‌سازی با Axosoft
        • ادغام با Trello
        • یکپارچه‌سازی با YouTrack
        • یکپارچه‌سازی با VersionOne
        • Integration با Vault
        • یکپارچه‌سازی با Trac
        • یکپارچه‌سازی با Redmine
        • یکپارچه‌سازی با Rally
        • یکپارچه‌سازی با Pivotal Tracker
        • یکپارچه‌سازی با Mantis
        • یکپارچه‌سازی با Lighthouse
        • یکپارچه‌سازی با FogBugz (یا Manuscript)
        • یکپارچه‌سازی با fixx
        • ادغام با Bugzilla
        • یکپارچه‌سازی با BugTracker.NET
        • یکپارچه‌سازی با Bitbucket
        • یکپارچه‌سازی با ایمیل
        • ادغام با Azure DevOps
        • یکپارچه‌سازی با Axosoft SOAP API
        • یکپارچه‌سازی با Axosoft REST API
        • یکپارچه‌سازی با Assembla
        • یکپارچه‌سازی با Asana
        • اپ TestRail برای Azure DevOps
        • یکپارچه‌سازی با GitLab
        • یکپارچه‌سازی با GitHub
        • یکپارچه‌سازی با ClickUp
        • یکپارچه‌سازی با Monday.com
        • اطلسیان جیرا
          • برنامه TestRail Jira
          • استفاده از فیلدهای سفارشی در یکپارچه‌سازی Jira
          • پیکربندی دستی ادغام Jira
          • اتصال به Jira Server
          • اتصال به Jira Cloud
          • یکپارچه‌سازی با Jira
          • بررسی پوشش Jira
          • سؤالات متداول درباره Integration بین TestRail و Jira
          • اتصال به Jira Data Center
    • یکپارچه سازی امنیتی
      • یکپارچه‌سازی اسکن‌های Kiuwan SAST از طریق UI
      • یکپارچه‌سازی اسکن‌های Kiuwan SAST از طریق CLI
    • داشبوردها
      • مروری بر integrationهای dashboard
      • ادغام با Confluence
    • وب هوک ها
      • وب‌هوک‌ها
  • اتوماسیون تست
    • TestRail CLI
      • شروع کار با TestRail CLI
      • لاگ‌گیری و مشاهده‌پذیری
      • مرجع دستورات توسعه رفتارمحور (BDD)
      • راهنمای عملکرد صفحه‌بندی موازی برای test suiteهای بزرگ
      • TRCLI در pipelineهای CI/CD
      • استفاده بهتر از TRCLI
      • نگاشت JUnit به TestRail
      • منابع پارامتر
      • نمونه‌های استفاده
      • مرجع دستورات CLI
      • گزارش‌های SauceLabs و saucectl
      • گردش کار Specification-first
      • گردش کار Code-First
    • ادغام فریم‌ورک‌های اتوماسیون
      • یکپارچه‌سازی با Playwright
      • یکپارچه‌سازی با Pytest
      • یکپارچه‌سازی با Cypress
      • یکپارچه‌سازی با TestNG
      • یکپارچه‌سازی با Robot Framework
      • یکپارچه‌سازی با NUnit
      • یکپارچه‌سازی با JUnit۵
      • یکپارچه‌سازی با Curiosity Quality Modeller
      • یکپارچه‌سازی با Ranorex
      • یکپارچه‌سازی با k۶
      • یکپارچه‌سازی با Postman
      • یکپارچه‌سازی با WebdriverIO
      • یکپارچه‌سازی با JMeter
      • یکپارچه‌سازی با Robot Framework (با استفاده از Robot parser)
      • یکپارچه‌سازی با Selenium
      • ادغام با testRigor
        • ادغام testRigor در TestRail
        • یکپارچه‌سازی با testRigor
    • ادغام ابزارهای CI/CD
      • یکپارچه‌سازی با Jenkins (freestyle)
      • یکپارچه‌سازی با GitHub Actions
      • یکپارچه‌سازی با Azure Pipelines
      • یکپارچه‌سازی با Bitbucket
      • ادغام با Travis CI
      • ادغام با CircleCI
      • یکپارچه‌سازی با Jenkins (pipeline)
      • یکپارچه‌سازی با GitLab CI/CD
    • اسکریپت های UI برای اتوماسیون تست
      • اسکریپت‌های UI برای اتوماسیون تست
  • راهنمای API
    • شروع کار با TestRail API
      • مدیریت خطا
      • اتصال API برای .NET (C#/VB.NET)
      • اتصال API برای Ruby
      • اتصال API برای Python
      • اتصال API برای PHP
      • آشنایی با TestRail API
      • API binding برای Java
      • دسترسی به TestRail API
    • موارد استفاده از API
      • Export کردن test caseها
      • خروجی گرفتن از نتایج تست
      • ایجاد test caseها
      • وارد کردن نتایج تست
      • معرفی موارد استفاده از API
    • مرجع API
      • BDDها
      • تست‌ها
      • متغیرها
      • کاربران
      • templateها
      • test suiteها
      • Statusها
      • گام‌های مشترک
      • section‌ها
      • test runها
      • فیلدهای نتیجه تست
      • نقش‌ها
      • گزارش‌ها و گزارش‌های بین‌پروژه‌ای
      • نتایج
      • Projectها
      • Priorityها
      • Milestoneها
      • test planها
      • گروه‌ها
      • Datasetها
      • Configurationها
      • انواع test case
      • test caseها
      • فیلدهای test case
      • پیوست‌ها
      • فیلدهای فیلتر پویا
      • برچسب‌ها
  • یادداشت‌های انتشار
    • آهنگ انتشار پیش فرض
      • TestRail ۱۰.۵.۱ پیش‌فرض (۱۰۰۱)
      • TestRail ۱۰.۴.۱ پیش‌فرض (۱۰۰۴)
      • TestRail ۱۰.۳.۱ Default (۱۰۰۹)
      • TestRail ۱۰.۱.۳ پیش‌فرض (۱۰۰۶)
      • TestRail ۱۰.۲.۰ مسیر انتشار پیش‌فرض (۱۰۷۶)
      • TestRail ۱۰.۱.۲ Default (۱۰۰۲)
      • TestRail ۱۰.۱.۱ مسیر انتشار پیش‌فرض (۱۰۱۱)
      • TestRail ۱۰.۰.۱ Default (۱۰۱۰)
      • TestRail ۱۰.۰.۰ پیش‌فرض (۱۰۶۸)
      • TestRail ۹.۸.۱ مسیر انتشار Default (۱۵۰۶)
      • TestRail ۹.۷.۲ Default (۱۰۰۳)
      • TestRail ۹.۷.۱ Default (۱۰۰۹)
      • TestRail ۹.۷.۰ پیش‌فرض (۱۰۳۶)
      • TestRail ۹.۶.۱ Default (۱۰۳۳)
      • TestRail ۹.۶.۰ پیش‌فرض (۱۰۳۲)
      • TestRail ۹.۵.۳ Default (۱۰۵۸)
      • TestRail ۹.۵.۲ Default (۱۰۴۷)
      • TestRail ۹.۵.۰ پیش‌فرض (۱۰۴۰)
      • TestRail ۹.۴.۰ Default (۱۰۵۴)
      • TestRail ۹.۳.۲ Default (۱۰۰۲)
      • TestRail ۹.۳.۱ پیش‌فرض (۱۰۲۰)
      • TestRail ۹.۳.۰ پیش‌فرض (۱۰۸۰)
      • TestRail ۹.۲.۱ پیش‌فرض (۱۰۱۰)
      • TestRail ۹.۲.۰ Default (۱۲۲۵)
      • TestRail ۹.۱.۲ Default (۱۰۲۸)
      • TestRail ۹.۱.۱ Default (۱۰۲۷)
      • TestRail ۹.۱.۰ Default (۱۰۲۵)
      • TestRail ۹.۰.۰ پیش‌فرض (۱۰۹۱)
      • TestRail ۹.۰.۰ Default (۱۰۵۷)
      • TestRail ۹.۰.۰ پیش‌فرض (۱۰۵۶)
    • سرور منتشر می شود
      • TestRail ۱۰.۴.۱.۱۰۰۴ Server
      • Docker Image برای TestRail ۱۰.۴.۱.۱۰۰۴
      • ایمیج Docker برای TestRail ۱۰.۳.۱.۱۰۰۹
      • نسخه Server TestRail ۱۰.۳.۱.۱۰۰۹
      • TestRail ۱۰.۲.۰.۱۰۷۶ Server
      • Docker Image نسخه TestRail ۱۰.۲.۰.۱۰۷۶
      • Docker Image نسخه TestRail ۱۰.۱.۴.۱۰۰۴
      • TestRail ۱۰.۱.۴.۱۰۰۴ Server
      • ایمیج Docker برای TestRail ۱۰.۰.۱.۱۰۱۰
      • TestRail Server ۱۰.۰.۱.۱۰۱۰
      • ایمیج Docker TestRail ۹.۸.۱.۱۵۰۶
      • نسخه Server TestRail ۹.۸.۱.۱۵۰۶
      • نسخه Server TestRail ۹.۶.۱.۱۰۳۳
      • ایمیج Docker نسخه TestRail ۹.۶.۱.۱۰۳۳
      • TestRail ۹.۵.۱.۱۰۴۲ Docker Image
      • TestRail ۹.۵.۱.۱۰۴۲ Server
      • Docker Image برای TestRail ۹.۴.۱.۱۰۰۱
      • نسخه Server TestRail ۹.۴.۱.۱۰۰۱
      • TestRail ۹.۳.۲.۱۰۰۲ Docker Image
      • TestRail ۹.۳.۲.۱۰۰۲ Server
      • Docker Image نسخه TestRail ۹.۳.۱.۱۰۲۰
      • TestRail Server ۹.۳.۱.۱۰۲۰
      • سرور TestRail ۹.۲.۱.۱۰۱۰
      • Docker Image مربوط به TestRail ۹.۲.۱.۱۰۱۰
      • TestRail ۹.۱.۱.۱۰۲۷ Docker Image
      • نسخه Server TestRail ۹.۱.۱.۱۰۲۷
      • TestRail ۹.۱.۰.۱۰۲۵ Docker Image
      • TestRail ۹.۱.۰.۱۰۲۵ Server
      • TestRail Server ۹.۰.۰.۱۰۹۱
      • Docker Image نسخه TestRail ۹.۰.۰.۱۰۹۱
      • Docker Image نسخه TestRail ۹.۰.۰.۱۰۵۷
      • سرور TestRail ۹.۰.۰.۱۰۵۷
      • TestRail Server ۸.۱.۰.۶۱۸۶
      • Docker Image TestRail ۸.۱.۰.۶۱۸۶
      • ایمیج Docker برای TestRail ۸.۱.۰.۶۱۶۵
      • نسخه Server TestRail ۸.۱.۰.۶۱۶۵
      • تصویر Docker TestRail ۸.۰.۶.۱۰۱۹
      • نسخه Server TestRail ۸.۰.۶.۱۰۱۹
      • Docker Image نسخه TestRail ۸.۰.۴.۷۰۳۶
      • سرور TestRail ۸.۰.۴.۷۰۳۶
      • نسخه Server TestRail ۸.۰.۱.۱۰۲۹
      • تصویر Docker برای TestRail ۸.۰.۱.۱۰۲۹
      • TestRail ۸.۰.۰.۱۰۸۹ Server
      • TestRail Server ۷.۵
    • انتشارات تاریخی
      • TestRail ۸.۱.۰ پیش‌فرض (۶۱۸۵)
      • TestRail ۸.۱.۰ مسیر انتشار Default (۶۱۶۵)
      • TestRail ۸.۱.۰ پیش‌فرض (۶۱۶۱)
      • TestRail ۸.۰.۶ پیش‌فرض (۱۰۲۹)
      • TestRail ۸.۰.۶ پیش‌فرض (۱۰۱۹)
      • TestRail ۸.۰.۶ پیش‌فرض (۱۰۱۴)
      • TestRail ۸.۰.۵ Default (۱۰۵۵)
      • TestRail ۸.۰.۵ – مسیر انتشار Default (۱۰۳۹)
      • TestRail ۸.۰.۴ Default (۷۰۳۶)
      • TestRail ۸.۰.۳ پیش‌فرض (۳۰۸۷)
      • TestRail ۸.۰.۳ Default (۳۰۷۰)
      • TestRail ۸.۰.۳ Default (۳۰۶۷)
      • TestRail ۸.۰.۳ Default (۳۰۶۶)
      • TestRail ۸.۰.۳ Default (۳۰۶۴)
      • TestRail ۸.۰.۳ پیش‌فرض (۳۰۶۳)
      • TestRail ۸.۰.۲ Default (۳۱۳۸)
      • TestRail ۸.۰.۱ Default (۱۰۳۳)
      • TestRail ۷.۶ پیش‌فرض
      • TestRail ۶.۶ پیش‌فرض
      • TestRail ۸.۰.۱ Default (۱۰۳۰)
      • TestRail ۵.۲ پیش‌فرض
      • TestRail ۵.۳ پیش‌فرض
      • TestRail ۵.۴ پیش‌فرض
      • TestRail ۵.۴.۱ پیش‌فرض
      • TestRail ۵.۵ پیش‌فرض
      • TestRail ۵.۶ پیش‌فرض
      • TestRail ۵.۷ پیش‌فرض
      • TestRail ۶.۰ پیش‌فرض
      • TestRail ۶.۱ پیش‌فرض
      • TestRail ۶.۲ پیش‌فرض
      • TestRail ۶.۳ پیش‌فرض
      • TestRail ۶.۴ پیش‌فرض
      • TestRail ۶.۵ پیش‌فرض
      • TestRail ۶.۷ پیش‌فرض
      • TestRail ۵.۱ پیش‌فرض
      • TestRail ۵.۰؛ add-on مدیریت تست برای JIRA ۷.۰ و به‌روزرسانی‌ها
      • TestRail ۵.۰ پیش‌فرض
      • TestRail ۴.۲ پیش‌فرض
      • TestRail ۴.۱ پیش‌فرض
      • TestRail ۴.۰ پیش‌فرض
      • TestRail ۳.۱ پیش‌فرض
      • TestRail ۳.۰ پیش‌فرض
      • TestRail ۲.۷.۱ پیش‌فرض
      • TestRail ۲.۷ پیش‌فرض
      • انتشار TestRail ۲.۶
      • TestRail ۲.۵ پیش‌فرض
      • TestRail ۷.۰ پیش‌فرض
      • پیش‌فرض TestRail ۷.۱
      • TestRail ۷.۲ پیش‌فرض
      • TestRail ۷.۳ پیش‌فرض
      • TestRail ۲.۴ پیش‌فرض
      • TestRail ۲.۳ پیش‌فرض
      • نسخه پیش‌فرض TestRail ۲.۲
      • TestRail ۲.۱ به‌صورت پیش‌فرض
      • TestRail ۲.۰ پیش‌فرض
      • TestRail ۱.۳ پیش‌فرض
      • TestRail ۱.۲ پیش‌فرض
      • TestRail ۱.۰ پیش‌فرض
      • TestRail ۱.۱ پیش‌فرض
      • TestRail Beta ۱.۰.۴
      • TestRail Beta ۱.۰.۳
      • TestRail Beta ۱.۰.۲
      • TestRail ۷.۴ پیش‌فرض
      • TestRail ۷.۵ پیش‌فرض
      • TestRail ۸.۰.۱ Default (۱۰۲۹)
      • TestRail ۷.۸.۰ پیش‌فرض (۱۱۴۱)
      • TestRail ۷.۸.۰ Default (۱۱۴۰)
      • دسترسی زودهنگام TestRail ۷.۷
      • TestRail ۷.۸.۰ نسخه Default (۱۱۱۶)
      • TestRail ۷.۸.۰ Default (۱۱۳۶)
      • TestRail ۷.۸.۰ Default (۱۰۵۹)
دسته‌ها را مشاهده کنید
  • خانه
  • مستندات
  • Testrail
  • Testrail
  • راهنمای سرور
  • سفارشی سازی ها و افزونه ها
  • سفارشی‌سازی یک defect plugin

سفارشی‌سازی یک defect plugin

مدت زمان مطالعه: : 13 دقیقه

TestRail چند defect plugin آماده برای bug trackerهای رایج مثل Jira، FogBugz، Bugzilla و ابزارهای دیگر دارد. اگر bug tracker خود را سفارشی کرده‌اید (مثلاً custom field اضافه کرده‌اید) یا می‌خواهید قابلیت‌های بیشتری به یک defect plugin اضافه کنید، می‌توانید defect pluginهای داخلی را مطابق نیازتان سفارشی کنید. TestRail کد منبع کامل defect pluginهای پیش‌فرض را در اختیار شما می‌گذارد و این مقاله چند نمونه از سفارشی‌سازی آن‌ها را نشان می‌دهد.

اگر قصد دارید یکی از defect pluginهای ارائه‌شده را سفارشی کنید، توصیه می‌کنیم ابتدا مقاله ساخت defect plugin سفارشی را بخوانید، چون اطلاعات پس‌زمینه‌ای مهمی درباره سازوکار داخلی defect pluginها ارائه می‌دهد. در ادامه، نمونه‌هایی از اضافه کردن فیلدهای بیشتر به Push Defect dialog و پیاده‌سازی user mapping را می‌بینید.

افزودن custom fieldها #

افزودن یک فیلد جدید به Push Defect dialog زمانی مفید است که از custom fieldهای اضافی و الزامی استفاده می‌کنید که defect pluginهای پیش‌فرض از آن‌ها پشتیبانی نمی‌کنند. همچنین ممکن است بخواهید فیلدهای دیگری، مثل Assigned To را به dialog اضافه کنید؛ در این بخش نحوه انجام آن را توضیح می‌دهیم. در این مثال از defect plugin مربوط به Jira استفاده می‌کنیم، اما defect pluginهای دیگر هم مشابه همین کار می‌کنند. قبل از سفارشی‌سازی defect plugin مربوط به Jira، ابتدا آن را کپی می‌کنیم و نامش را تغییر می‌دهیم. قرار است Jira.php فایل plugin را از دایرکتوری برنامه TestRail به دایرکتوری custom کپی کنیم:

Original: <TestRail>/app/plugins/defects/Jira.php
Copy To: <TestRail>/custom/defects/Jira_custom.php

دقت کنید که نام فایل را به Jira_custom.php. تغییر داده‌ایم. این کار مهم است، چون به شما امکان می‌دهد در بخش Administration در TestRail همچنان بین plugin استاندارد Jira و نسخه سفارشی‌شده خودتان یکی را انتخاب کنید. پس از کپی کردن فایل، باید نام class را تغییر دهیم. برای این کار، کافی است Jira_custom.php فایل را در یک text editor باز کنید و نام class را در ابتدای فایل به شکل زیر تغییر دهید:

class Jira_custom_defect_plugin extends Defect_plugin
{
}

در این مثال، می‌خواهیم یک فیلد جدید به Push Defect dialog اضافه کنیم؛ این فیلد به testerها اجازه می‌دهد configuration سخت‌افزاری و نرم‌افزاری سیستم تستی را که issue یا bug روی آن رخ داده است مشخص کنند. فیلد متناظر در Jira یک custom field از نوع Text Field است و نام آن Config است. این فیلد برای همه issue typeها معتبر است و الزامی نیست.

اولین چیزی که باید تغییر دهیم، form schema در prepare_push method است (اگر هنوز مقاله ساخت defect plugin سفارشی را نخوانده‌اید، حتماً آن را بخوانید). کافی است یک string field جدید به dialog اضافه کنیم تا کاربران بتوانند configuration سیستم را برای bug report وارد کنند. نام فیلد را config می‌گذاریم و آن را درست قبل از description field اضافه می‌کنیم:

public function prepare_push($context)
{
  // Return a form with the following fields/properties
  return array(
    'fields' => array(
      'summary' => array(
        'type' => 'string',
        'label' => 'Summary',
        'required' => true,
        'size' => 'full'
      ),
      'type' => array(
        'type' => 'dropdown',
        'label' => 'Issue Type',
        'required' => true,
        'remember' => true,
        'size' => 'compact'
      ),
      'project' => array(
        'type' => 'dropdown',
        'label' => 'Project',
        'required' => true,
        'remember' => true,
        'cascading' => true,
        'size' => 'compact'
      ),
      'component' => array(
        'type' => 'dropdown',
        'label' => 'Component',
        'required' => true,
        'remember' => true,
        'depends_on' => 'project',
        'size' => 'compact'
      ),
      'config' => array(
        'type' => 'string',
        'label' => 'Configuration',
        'remember' => true,
        'size' => 'full'
      ),
      'description' => array(
        'type' => 'text',
        'label' => 'Description'
      )
    )
  );
}

پس از اینکه فیلد را به form schema اضافه کردیم، فیلد config را به prepare_field method اضافه می‌کنیم. این کار را انجام می‌دهیم تا configuration ذخیره‌شده‌ای را که کاربر قبلاً در dialog وارد کرده است بازیابی کنیم. به این ترتیب، کاربر لازم نیست برای هر bug report که ارسال می‌شود دوباره configuration را وارد کند. توجه کنید که کد مربوط به مدیریت preference را به ابتدای method منتقل می‌کنیم تا بتوانیم از آن برای فیلد جدید config استفاده کنیم:

public function prepare_field($context, $input, $field)
{
  $data = array();
 
  // Take into account the preferences of the user, but only
  // for the initial form rendering (not for dynamic loads).
  if ($context['event'] == 'prepare')
  {
    $prefs = arr::get($context, 'preferences');
  }
  else
  {
    $prefs = null;
  }
 
  // Process those fields that do not need a connection to the
  // Jira installation.		
  if ($field == 'summary' || $field == 'description' || $field == 'config')
  {
    switch ($field)
    {
      case 'summary':
        $data['default'] = $this->_get_summary_default(
          $context);
        break;
 
      case 'description':
        $data['default'] = $this->_get_description_default(
          $context);
        break;
 
      case 'config':
        $data['default'] = arr::get($prefs, 'config');
        break;
    }
 
    return $data;
  }
 
  // [ .. ]
}

اکنون که اسکریپت تنظیمات configuration قبلی را بازیابی می‌کند، آخرین گام این است که custom field جدید را به درخواست API اضافه کنیم که برای ایجاد issue به Jira می‌فرستیم. برای این کار، push method را به شکل زیر تغییر می‌دهیم:

public function push($context, $input)
{
  $api = $this->_get_api();
 
  $data = array();
  $data['summary'] = $input['summary'];
  $data['type'] = $input['type'];
  $data['project'] = $input['project'];
  $data['component'] = $input['component'];
  $data['description'] = $input['description'];
  $data['customFieldValues'] = array(
    array(
      'customfieldId' => 'customfield_10000',
      'values' => array($input['config'])
    )
  );
 
  return $api->add_issue($data);
}

باید نام customfield_10000 را تنظیم کنید و از ID واقعی custom fieldهایی که می‌خواهید ارسال شوند استفاده کنید. حالا که فیلد جدید را به custom defect plugin خود اضافه کرده‌ایم، Push Defect dialog به‌روزرسانی‌شده می‌تواند جزئیات configuration را همراه issue ارسال کند (حتماً plugin جدید Jira_custom plugin را از مسیر Administration > Site Settings انتخاب کنید تا فیلد جدید را ببینید).

push-defect-custom.png

می‌توانید فایل نمونه کامل را از لینک زیر دانلود کنید.

  نمونه defect plugin سفارشی Jira #

فایل نمونه PHP شامل کد اسکریپت defect plugin سفارشی Jira

افزودن فیلدهای داخلی #

افزودن فیلدهای داخلیِ بیشتر از bug tracker به فرم Push Defect تفاوت زیادی با افزودن فیلدهای سفارشی bug tracker که در بالا توضیح دادیم ندارد. با این حال، چون این کار بسیار رایج است و API بعضی bug trackerها برای فیلدهای خاص به قراردادهای ویژه‌ای نیاز دارد، در این بخش توضیح می‌دهیم چطور یک فیلد داخلیِ دیگر از bug tracker را به defect plugin اضافه کنید.

در این بخش به‌طور مشخص توضیح می‌دهیم چطور فیلد Affects Version در Jira را اضافه کنید؛ البته bug trackerهای دیگر هم فیلدها و قراردادهای مشابهی دارند. فیلد Affects Version به‌صورت یک dropdown پیاده‌سازی می‌شود تا نسخه‌ای را انتخاب کنید که باگ جدید باید برای آن گزارش شود. ابتدا defect plugin استاندارد Jira را در دایرکتوری سفارشی خود کپی می‌کنیم و نام آن را تغییر می‌دهیم:

Original: <TestRail>/app/plugins/defects/Jira.php
Copy To: <TestRail>/custom/defects/Jira_versions.php

همچنین باید دوباره نام class را در ابتدای فایل تنظیم کنیم:

class Jira_versions_defect_plugin extends Defect_plugin
{
}

اولین تغییر واقعی در کد، اضافه کردن فیلد جدید به schema فرم است. نام این فیلد را می‌گذاریم affects_version:

public function prepare_push($context)
{
  // Return a form with the following fields/properties
  return array(
    'fields' => array(
      'summary' => array(
        'type' => 'string',
        'label' => 'Summary',
        'required' => true,
        'size' => 'full'
      ),
      'type' => array(
        'type' => 'dropdown',
        'label' => 'Issue Type',
        'required' => true,
        'remember' => true,
        'size' => 'compact'
      ),
      'project' => array(
        'type' => 'dropdown',
        'label' => 'Project',
        'required' => true,
        'remember' => true,
        'cascading' => true,
        'size' => 'compact'
      ),
      'component' => array(
        'type' => 'dropdown',
        'label' => 'Component',
        'required' => true,
        'remember' => true,
        'depends_on' => 'project',
        'size' => 'compact'
      ),
      'affects_version' => array(
        'type' => 'dropdown',
        'label' => 'Affects Version',
        'required' => false,
        'remember' => true,
        'depends_on' => 'project',
        'size' => 'compact'
      ),
      'description' => array(
        'type' => 'text',
        'label' => 'Description'
      )
    )
  );
}

برای اینکه بتوانیم نسخه‌های موجود برای یک project را از Jira دریافت کنیم، یک get_versions method جدید به class Jira_api اضافه می‌کنیم:

/**
 * Get Versions
 *
 * Returns a list of versions for a Jira project. The versions
 * are returned as array of objects, each with its ID and name.
 */	
public function get_versions($project_id)
{
  $data = array($project_id);
  $response = $this->_send_command('getVersions', $data);
 
  if (!$response)
  {
    return array();
  }
 
  $result = array();
  foreach ($response as $version)
  {
    $c = obj::create();
    $c->id = (string) $version->id;
    $c->name = (string) $version->name;
    $result[] = $c;
  }
 
  return $result;
}

همچنین باید dropdown خود را با نسخه‌های موجود در Jira پر کنیم؛ بنابراین prepare_field method را به‌روزرسانی می‌کنیم و کد زیر را به دومین switch statement اضافه می‌کنیم:

case 'affects_version':
  if (isset($input['project']))
  {
    $data['default'] = arr::get($prefs, 'affects_version');
    $data['options'] = $this->_to_id_name_lookup(
      $api->get_versions($input['project'])
    );
  }
  break;

در نهایت، باید وقتی کاربر گزارش باگ را ارسال می‌کند، فیلد نسخه را هم به Jira بفرستیم. چون Jira از چند نسخه برای یک issue پشتیبانی می‌کند، باید این فیلد را به‌صورت array ارسال کنیم. برای این کار، کافی است کد زیر را به add_issue method اضافه کنید:

if (isset($options['affects_version']))
{
  $version = array(
    'id' => $options['affects_version'],
    'archived' => false,
    'released' => false
  );
  $options['affectsVersions'] = array(
    $version
  );
}

وقتی Jira_version defect plugin جدید را از مسیر Administration > Site Settings > Integration tab انتخاب کنید، Push Defect dialog به این شکل نمایش داده می‌شود:

push_defect_version.png

می‌توانید فایل نمونه کامل را از لینک زیر دانلود کنید.

  نمونه نسخه‌های سفارشی Jira #

فایل نمونه PHP شامل کد اسکریپت نسخه‌های سفارشی Jira

پیاده‌سازی user mappings #

  #

اکنون راه ساده‌تری برای map کردن کاربران بین TestRail و ابزار bug tracking شما وجود دارد، بدون اینکه لازم باشد تغییری در کد ایجاد کنید. برای اطلاعات بیشتر، به مقاله متغیرهای کاربر.

defect pluginهایی که همراه TestRail ارائه می‌شوند، از یک حساب کاربری واحد برای ارسال bug report به سیستم third-party مربوطه استفاده می‌کنند. این روش در بسیاری از شرایط خوب کار می‌کند و توصیه می‌شود برای این کار یک کاربر ویژه با نام testrail یا نامی مشابه در bug tracker اضافه کنید.

اما اگر می‌خواهید برای کاربری که bug report را ارسال کرده، از حساب کاربری واقعی او در bug tracker استفاده شود، می‌توانید این کار را با اضافه کردن user mapping به defect plugin پیاده‌سازی کنید. برای نمایش این روش، دوباره Jira.php plugin را کپی کرده و نامش را تغییر می‌دهیم:

Original: <TestRail>/app/plugins/defects/Jira.php
Copy To: <TestRail>/custom/defects/Jira_users.php

همچنین نام class مربوط به defect plugin را به‌روزرسانی می‌کنیم:

class Jira_users_defect_plugin extends Defect_plugin
{
}

برای اضافه کردن قابلیت user mapping به script، یک [users] section جدید به configuration اضافه می‌کنیم تا administratorها بتوانند بین کاربر TestRail، که با آدرس ایمیل کاربر شناسایی می‌شود، و اطلاعات ورود ابزار defect tracking یک mapping تعریف کنند. برای مثال، configuration در بخش administration به این شکل خواهد بود:

; Please configure your Jira connection below
[connection]
address=http://jira/
user=testrail
password=secret

[users]
bob@example.com=bob:secret
jim@example.com=jim:secret
jane@example.com=jane:secret

وقتی Bob یک bug report ارسال می‌کند، defect script به‌روزرسانی‌شده از credentials مربوط به Jira برای Bob استفاده می‌کند تا bug را ثبت کند. اگر کاربری که credentials او هنوز تنظیم نشده است بخواهد bug report ارسال کند، script به login سراسری تنظیم‌شده برمی‌گردد؛ همان موردی که در [connection] section مشخص شده است. حالا get_meta method را به‌روزرسانی می‌کنیم تا optionهای جدید configuration نمایش داده شوند:

private static $_meta = array(
  'author' => 'Gurock Software',
  'version' => '1.0',
  'description' => 'Jira defect plugin for TestRail',
  'can_push' => true,
  'can_lookup' => true,
  'default_config' => 
    '; Please configure your Jira connection below
[connection]
address=http:///
user=testrail
password=secret
 
[users]
user@example.com=user:secret'
);

همچنین configure method را به‌روزرسانی می‌کنیم تا [users] section را به یک field داخلی اختصاص دهد:

public function configure($config)
{
  $ini = ini::parse($config);
  $this->_address = str::slash($ini['connection']['address']);
  $this->_user = $ini['connection']['user'];
  $this->_password = $ini['connection']['password'];
 
  if (isset($ini['users']))
  {
    $this->_users = $ini['users'];
  }
  else
  {
    $this->_users = array();
  }
}

مورد بعدی که باید تغییر دهیم، authentication واقعی Jira API است. برای این کار باید کد user mapping را به _get_api method اضافه کنیم، به این شکل:

private function _get_api($context = null)
{
  if ($this->_api)
  {
    return $this->_api;
  }
 
  $user = $this->_user;
  $password = $this->_password;
 
  // Find the appropriate Jira user for the bug reporter
  // (by mapping the current TestRail user to her Jira
  // account).
  if ($context && $this->_users)
  {
    $credentials = arr::get(
      $this->_users,
      str::to_lower($context['user']->email)
    );
 
    if ($credentials)
    {
      if (preg_match('/([^:]+):(.+)/', $credentials, $matches))
      {
        $user = $matches[1];
        $password = $matches[2];
      }
    }
  }
 
  $this->_api = new Jira_api($this->_address);
  $this->_api->login($user, $password);
  return $this->_api;
}

این method سعی می‌کند credentials متناظر با کاربر فعلی را در configuration پیدا کند. اگر credentials پیدا نشود، از credentials سراسری تنظیم‌شده به‌عنوان fallback استفاده می‌کند. توجه کنید که $context argument را به _get_api method اضافه کرده‌ایم. این argument لازم است تا بتوانیم آدرس ایمیل کاربر فعلی TestRail را بگیریم.

حالا فقط باید $context variable را از prepare_field و push methodها به این شکل پاس بدهیم. توجه داشته باشید که نباید $context argument را در lookup method اضافه کنید، چون هیچ context informationای ندارد:

$api = $this->_get_api($context);

تمام شد. حالا که user mapping را به _get_api method اضافه کرده‌ایم و context information را هم به این method پاس داده‌ایم، تنها کاری که باقی می‌ماند این است که defect plugin جدیدمان را از مسیر Administration > Site Settings انتخاب کنیم و حساب‌های کاربری را تنظیم کنیم.

جایگزین user mapping #

  #

اکنون راه ساده‌تری وجود دارد که بدون تغییر در کد، کاربران را بین TestRail و ابزار bug tracking خود map کنید. می‌توانید اطلاعات بیشتر را در مقاله متغیرهای کاربر.

بعضی از issue trackerها و defect trackerها به شما اجازه می‌دهند کاربر reporter را از طریق API تنظیم کنید. به این ترتیب لازم نیست حتما یک user mapping کامل بر اساس loginها پیاده‌سازی کنید؛ می‌توانید فقط username کاربری را مشخص کنید که issue را گزارش کرده است.

برای مثال، فرض کنید آدرس‌های ایمیل سازمان شما و usernameهای متناظر آن‌ها در Jira به این شکل هستند:

bob@example.com -> bob
jan@example.com -> jan
sue@example.com -> sue

بعد می‌توانید به‌سادگی username مربوط به Jira را از آدرس ایمیل کاربر فعلی بسازید و reporter field را در push method به این شکل مشخص کنید:

public function push($context, $input)
{
  if (isset($context['user']->email))
  {
    $email = $context['user']->email;
    $pos = str::pos($email, '@');
    if  ($pos !== false)
    {
      $input['reporter'] = str::sub($email, 0, $pos);
    }
  }
 
  $api = $this->_get_api();
  return $api->add_issue($input);
}

به این شکل، کاربری که issue را گزارش کرده است، بدون اینکه لازم باشد username و password کاربر Jira در TestRail ذخیره شود، به‌درستی به Jira فرستاده می‌شود. بسته به قابلیت‌های API ارائه‌شده، ابزارهای دیگر برای ردیابی issue و defect هم ممکن است از این روش پشتیبانی کنند.

به‌روزرسانی شده در ۱۴۰۵-۰۴-۱۷

احساسات شما چیست؟

  • خوشحال
  • عادی
  • ناراحت

این مقاله را به اشتراک بگذارید:

  • Facebook
  • X
  • LinkedIn
  • Pinterest
اشکال‌زدایی اسکریپت‌های سفارشیساخت defect plugin سفارشی

دیدگاهتان را بنویسید لغو پاسخ

برای نوشتن دیدگاه باید وارد بشوید.

فهرست مطالب
  • افزودن custom fieldها
    •   نمونه defect plugin سفارشی Jira
  • افزودن فیلدهای داخلی
    •   نمونه نسخه‌های سفارشی Jira
  • پیاده‌سازی user mappings
    •  
  • جایگزین user mapping
    •  
تست ریل
  • درباره ما
  • خدمات
  • بلاگ
مطالب مفید
  • امنیت
  • مقالات
logo-samandehi

برای استفاده از مطالب تست ریل، داشتن «هدف غیرتجاری» و ذکر «منبع» کافیست. تمام حقوق اين وب‌سايت نیز برای وبسایت تست ریل است.

  • صفحه اصلی
  • درباره ما
  • تماس با ما