Skip to content
تست ریل |‌ سرویس مدیریت تستتست ریل |‌ سرویس مدیریت تست
  • صفحه اصلی
  • درباره ما
  • تماس با ما
  • ورود / عضویت
  • سبد خرید
    • سبد خرید شما خالی است.

      بازگشت به فروشگاه

  • سبد خرید

    سبد خرید شما خالی است.

    بازگشت به فروشگاه

Testrail

543
  • راهنمای کاربر
    • آغاز کار با TestRail
      • جستجو کنید
      • پروژه ها و انواع آنها
      • نکات و ترفندهای استفاده
      • میانبرها و کلیدهای میانبر صفحه کلید
      • مقدمه ای بر TestRail
      • مرجع قالب بندی ویرایشگر متن
      • صفحه شروع به کار
      • سرور TestRail در مقابل TestRail Cloud
      • بهترین شیوه‌ها
        • بهترین روش ها: کد تست اتوماسیون را با هوش مصنوعی ایجاد کنید
        • راهنمای بهترین روش ها: بک الگ اتوماسیون تست
        • راهنمای بهترین روش ها: TestRail CLI
        • راهنمای بهترین روش ها: معیارهای تست
        • راهنمای بهترین تمرین‌ها: آزمایش‌ها و نتایج
        • راهنمای بهترین روش ها: تست‌کیس‌ها
        • راهنمای بهترین اقدامات: نقاط عطف
    • هوش مصنوعی در TestRail
      • راهنمای استفاده از هوش مصنوعی مسئول
      • اولویت بندی تست ها با هوش مصنوعی
        • درک دلایل هوش مصنوعی در اولویت بندی با هوش مصنوعی
        • چگونه با اولویت با هوش مصنوعی بهترین نتایج را بدست آوریم
        • شروع با تست های اولویت بندی با هوش مصنوعی
      • ایجاد تست‌کیس‌ها با هوش مصنوعی
        • چگونه می‌توان بهترین نتایج را از TestRail&#۸۲۱۷;s AI Test Case Generator دریافت کرد
        • شروع سریع: تست‌کیس‌ها را با هوش مصنوعی ایجاد کنید
      • تست ویژگی های هوش مصنوعی با استفاده از TestRail
        • ادغام ابزارهای ارزیابی هوش مصنوعی با TestRail
        • الگوی ارزیابی هوش مصنوعی با داشبورد Quality Insights
      • خودکار کردن تست‌کیس‌ها با هوش مصنوعی
        • بیشترین بهره را از اتوماسیون مبتنی بر هوش مصنوعی در TestRail ببرید
        • شروع کار با Automate Test Cases با هوش مصنوعی
    • تست‌کیس‌ها
      • توسعه رفتار محور (BDD)
      • تست‌کیس‌ها را از CSV یا Excel وارد کنید
      • مراحل مشترک
      • تست‌کیس‌ها را از XML وارد کنید
      • جابجایی، کپی، حذف و بازیابی تست‌کیس‌ها
      • مراحل آزمون و نتایج آزمون را جدا کنید
      • برچسب زدن
      • مجموعه های آزمایشی
      • فیلتر کردن و مرتب سازی
      • تست‌کیس‌ها صادرات
      • قالب های تست‌کیس
      • اضافه کردن تست‌کیس‌ها
      • بخش ها
      • فیلدهای تست‌کیس
    • برنامه‌ریزی و اجرای تست
      • به روز رسانی نتایج آزمون
      • ایجاد اجرای تست جدید
      • برنامه های آزمایشی جدید ایجاد کنید
      • تنظیمات
      • تعیین تست برای اجرا
      • اجرای مجدد تست‌کیس‌ها
      • بسته شدن برنامه ها و برنامه های آزمایشی
      • ارائه نتایج آزمون
      • نقاط عطف
    • گزارش‌گیری و تحلیل
      • سوالات متداول را گزارش می دهد
      • سفارشی کردن نمودارها
      • نمای کلی گزارشات
      • تنظیمات کلی برای گزارش ها
      • چاپ گزارش ها
      • نمودارها و داشبوردها
      • گزارش موارد استفاده
      • گزارش موارد
        • گزارش وضعیت برتر (موارد).
        • گزارش توزیع اموال (موارد).
        • گزارش پوشش مراجع (موارد).
        • گزارش خلاصه فعالیت (موارد).
      • گزارش های بین پروژه ای
        • کاربر (اجرای تست) حجم کاری
        • خلاصه پروژه ها (اجرای تست).
      • گزارش نقص
        • خلاصه برای مراجع (نقایص) گزارش
        • گزارش خلاصه برای موارد (نقایص).
        • گزارش خلاصه (نقایص).
      • گزارش نتایج
        • گزارش توزیع اموال (نتایج).
        • گزارش مقایسه موارد (نتایج).
        • گزارش مقایسه برای مراجع (نتایج).
      • گزارش های خلاصه
        • گزارش اجراها (خلاصه).
        • گزارش پروژه (خلاصه).
        • گزارش طرح (خلاصه).
        • گزارش Milestone (خلاصه).
    • مدیریت و سفارشی‌سازی‌ها
      • ذخیره سازی و مدیریت داده ها
      • مدیریت پیوست ها
      • پیکربندی فیلدهای سفارشی
      • اضافه کردن یک لوگوی سفارشی به نمونه TestRail
      • افزودن کاربران به نمونه TestRail
      • پیکربندی یک تم (روشن یا تاریک) در TestRail
      • بایگانی هوشمند برای اجرای تست و طرح
      • پیکربندی تنظیمات زبان در TestRail
      • تنظیمات و ادغام های پشتیبانی شده از TestRail
      • پشتیبان گیری روزانه حرفه ای TestRail میزبانی شد
      • اسکریپت های رابط کاربری
        • نمونه اسکریپت های رابط کاربری
        • معرفی اسکریپت های رابط کاربری
      • مدیریت کاربران و امنیت
        • پیکربندی احراز هویت چند عاملی (MFA)
        • مدیریت مجوزها و نقش های کاربر
        • مدیریت امنیت کاربر
        • مدیریت امنیت نمونه
    • راهنمای سازمانی
      • تست پارامتر، متغیرها و مجموعه داده ها
      • نسخه آزمایشی
      • بررسی و تایید تست‌کیس‌ها
      • مدیریت در سطح پروژه
      • سفارشی سازی ایمیل
      • زمان پشتیبان گیری و بازیابی قابل تنظیم
      • ثبت حسابرسی
      • خلاصه ای از ویژگی های سازمانی
      • پیکربندی یک ورود به سیستم (SSO)
        • پیکربندی ADFS SSO
        • پیکربندی Okta SSO
        • پیکربندی Google SSO
        • پیکربندی Azure SSO
        • SSO را پیکربندی کنید
    • راهنمای مهاجرت
      • مهاجرت: CSV و Excel
      • مهاجرت: مقدمه
      • از سرور TestRail به TestRail Cloud مهاجرت کنید
      • مهاجرت از QMetry
      • از TestLink مهاجرت کنید
      • از Azure DevOps مهاجرت کنید
      • مهاجرت از Xray (ابر)
      • مهاجرت از Xray (سرور و دیتاسنتر)
      • مهاجرت از qTest
      • مهاجرت از مقیاس Zephyr
      • مهاجرت از Zephyr Squad
    • صورتحساب و مدیریت حساب
      • پورتال صورتحساب TestRail
      • تغییرات آتی در قیمت اشتراک ماهانه TestRail
      • درخواست های ارزیابی امنیتی
      • گزینه های اشتراک و صورتحساب
      • صورتحساب و مدیریت &#۸۲۱۱; سوالات متداول
  • راهنمای سرور
    • نصب و راه اندازی
      • فعال کردن کار پس زمینه
      • تنزل رتبه TestRail
      • نصب سرور سازمانی
      • به روز رسانی کلید مجوز ویرایشگر متن غنی (۲۰۲۶)
      • نسخه های پشتیبانی شده از سرور TestRail
      • نصب نسخه های 9.4.1 تا 10.4.1
        • ارتقا TestRail از ۹.۴.۱ به ۱۰.۴.۱ در ویندوز
        • ارتقا TestRail از ۹.۴.۱ به ۱۰.۴.۱ در یونیکس/لینوکس
        • الزامات نصب ۹.۴.۱ تا ۱۰.۴.۱
        • نصب با داکر
          • نصب ۹.۴.۱ تا ۱۰.۴.۱ در Docker
        • نصب با یونیکس/لینوکس
          • آماده سازی سرور یونیکس/لینوکس برای نصب &#۸۲۱۱; نسخه های ۱۰.۰.۱ به بعد
          • نصب TestRail (یونیکس/لینوکس)
          • ایجاد پایگاه داده خالی SQL (یونیکس / لینوکس)
          • آماده سازی سرور یونیکس/لینوکس برای نصب &#۸۲۱۱; نسخه های ۹.۴.۱ تا ۹.۸.۱
        • نصب روی ویندوز
          • آماده سازی سرور ویندوز خود برای نصب &#۸۲۱۱; نسخه های ۱۰.۰.۱ به بعد
          • ایجاد پایگاه داده SQL خالی (ویندوز)
          • آماده سازی سرور ویندوز خود برای نصب &#۸۲۱۱; نسخه های ۹.۴.۱ تا ۹.۸.۱
          • نصب TestRail (ویندوز)
      • نسخه های قدیمی تر
        • نصب نسخه 9.3.2
          • ارتقا TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰/۹.۰.۰/۹.۱.۰/۹.۲.۱ به ۹.۳.۲ در ویندوز
          • ارتقا TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰/۹.۰.۰/۹.۱.۰/۹.۲.۱ به ۹.۳.۲ در یونیکس/لینوکس
          • الزامات نصب &#۸۲۱۱; نسخه ۹.۳.۲
          • نصب با داکر
            • نصب ۹.۳.۲.۱۰۰۲ روی داکر
          • نصب با یونیکس / لینوکس
            • نصب TestRail (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۹.۳.۲.۱۰۰۲
            • ایجاد پایگاه داده خالی SQL (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۹.۳.۲.۱۰۰۲
            • نصب پایگاه داده Cassandra NoSQL (یونیکس / لینوکس) &#۸۲۱۱; نسخه ۹.۳.۲.۱۰۰۲
            • آماده سازی سرور یونیکس/لینوکس برای نصب &#۸۲۱۱; ۹.۳.۲.۱۰۰۲
          • نصب روی ویندوز
            • نصب TestRail (ویندوز) &#۸۲۱۱; نسخه ۹.۳.۲.۱۰۰۲
            • ایجاد پایگاه داده خالی SQL (ویندوز) &#۸۲۱۱; نسخه ۹.۳.۲.۱۰۰۲
            • نصب پایگاه داده Cassandra NoSQL در ویندوز &#۸۲۱۱; نسخه ۹.۳.۲.۱۰۰۲
            • آماده سازی سرور ویندوز خود برای نصب &#۸۲۱۱; نسخه ۹.۳.۲.۱۰۰۲
        • نصب نسخه 9.2.1
          • الزامات نصب &#۸۲۱۱; نسخه ۹.۲.۱
          • ارتقا TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰/۹.۰.۰/۹.۱.۰ به ۹.۲.۱ در یونیکس/لینوکس
          • ارتقا TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰/۹.۰.۰/۹.۱.۰ به ۹.۲.۱ در ویندوز
          • نصب با داکر
            • نصب ۹.۲.۱.۱۰۱۰ روی داکر
          • نصب با یونیکس / لینوکس
            • نصب TestRail (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۹.۲.۱.۱۰۱۰
            • ایجاد پایگاه داده خالی SQL (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۹.۲.۱.۱۰۱۰
            • نصب پایگاه داده Cassandra NoSQL (یونیکس / لینوکس) &#۸۲۱۱; نسخه ۹.۲.۱.۱۰۱۰
            • آماده سازی سرور یونیکس/لینوکس برای نصب &#۸۲۱۱; ۹.۲.۱.۱۰۱۰
          • نصب روی ویندوز
            • نصب TestRail (ویندوز) &#۸۲۱۱; نسخه ۹.۲.۱.۱۰۱۰
            • نصب پایگاه داده Cassandra NoSQL در ویندوز &#۸۲۱۱; نسخه ۹.۲.۱.۱۰۱۰
            • ایجاد پایگاه داده خالی SQL (ویندوز) &#۸۲۱۱; نسخه ۹.۲.۱.۱۰۱۰
            • آماده سازی سرور ویندوز شما برای نصب &#۸۲۱۱; نسخه ۹.۲.۱.۱۰۱۰
        • نصب نسخه 9.1.0
          • ارتقا TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰/۹.۰.۰ به ۹.۱.۰ در ویندوز
          • ارتقا TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰/۹.۰.۰ به ۹.۱.۰ در یونیکس/لینوکس
          • الزامات نصب &#۸۲۱۱; نسخه ۹.۱.۰
          • نصب با داکر
            • نصب ۹.۱.۰.۱۰۲۵ در داکر
          • نصب با یونیکس / لینوکس
            • نصب TestRail (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۹.۱.۰.۱۰۲۵
            • نصب پایگاه داده Cassandra NoSQL (یونیکس / لینوکس) &#۸۲۱۱; نسخه ۹.۱.۰.۱۰۲۵
            • ایجاد پایگاه داده خالی SQL (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۹.۱.۰.۱۰۲۵
            • آماده سازی سرور یونیکس/لینوکس برای نصب &#۸۲۱۱; ۹.۱.۰.۱۰۲۵
          • نصب روی ویندوز
            • آماده سازی سرور ویندوز خود برای نصب &#۸۲۱۱; نسخه ۹.۱.۰.۱۰۲۵
            • نصب پایگاه داده Cassandra NoSQL در ویندوز &#۸۲۱۱; نسخه ۹.۱.۰.۱۰۲۵
            • ایجاد پایگاه داده خالی SQL (ویندوز) &#۸۲۱۱; نسخه ۹.۱.۰.۱۰۲۵
            • نصب TestRail (ویندوز) &#۸۲۱۱; نسخه ۹.۱.۰.۱۰۲۵
        • نصب نسخه 9.0.0
          • ارتقا TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰ به ۹.۰.۰ در ویندوز
          • ارتقا TestRail از ۸.۰.۴/۸.۰.۶/۸.۱.۰ به ۹.۰.۰ در یونیکس/لینوکس
          • الزامات نصب &#۸۲۱۱; نسخه ۹.۰.۰
          • نصب با داکر
            • نصب ۹.۰.۰.۱۰۹۱ در داکر
          • نصب با یونیکس / لینوکس
            • نصب TestRail (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۹.۰.۰.۱۰۹۱
            • ایجاد پایگاه داده خالی SQL (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۹.۰.۰.۱۰۹۱
            • نصب پایگاه داده Cassandra NoSQL (یونیکس / لینوکس) &#۸۲۱۱; نسخه ۹.۰.۰.۱۰۹۱
            • آماده سازی سرور یونیکس/لینوکس برای نصب &#۸۲۱۱; ۹.۰.۰.۱۰۹۱
          • نصب روی ویندوز
            • نصب TestRail (ویندوز) &#۸۲۱۱; نسخه ۹.۰.۰.۱۰۹۱
            • نصب پایگاه داده Cassandra NoSQL در ویندوز &#۸۲۱۱; نسخه ۹.۰.۰.۱۰۹۱
            • ایجاد پایگاه داده خالی SQL (ویندوز) &#۸۲۱۱; نسخه ۹.۰.۰.۱۰۹۱
            • آماده سازی سرور ویندوز شما برای نصب &#۸۲۱۱; نسخه ۹.۰.۰.۱۰۹۱
        • نصب نسخه 8.1.0
          • ارتقا TestRail از ۸.۰.۴/۸.۰.۶ به ۸.۱.۰ در یونیکس/لینوکس
          • ارتقا TestRail از ۸.۰.۴/۸.۰.۶ به ۸.۱.۰ در ویندوز
          • الزامات نصب &#۸۲۱۱; نسخه ۸.۱.۰
          • نصب با داکر
            • نصب ۸.۱.۰.۶۱۸۶ در داکر
          • نصب با یونیکس / لینوکس
            • نصب TestRail (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۸.۱.۰.۶۱۸۶
            • نصب پایگاه داده Cassandra NoSQL (یونیکس / لینوکس) &#۸۲۱۱; نسخه ۸.۱.۰.۶۱۸۶
            • ایجاد پایگاه داده خالی SQL (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۸.۱.۰.۶۱۸۶
            • آماده سازی سرور یونیکس/لینوکس برای نصب &#۸۲۱۱; ۸.۱.۰.۶۱۸۶
          • نصب روی ویندوز
            • نصب TestRail (ویندوز) &#۸۲۱۱; نسخه ۸.۱.۰.۶۱۸۶
            • ایجاد پایگاه داده خالی SQL (ویندوز) &#۸۲۱۱; نسخه ۸.۱.۰.۶۱۸۶
            • نصب پایگاه داده Cassandra NoSQL در ویندوز &#۸۲۱۱; نسخه ۸.۱.۰.۶۱۸۶
            • آماده سازی سرور ویندوز خود برای نصب &#۸۲۱۱; نسخه ۸.۱.۰.۶۱۸۶
        • نصب نسخه 8.0.6
          • الزامات نصب &#۸۲۱۱; نسخه ۸.۰.۶
          • ارتقا TestRail از ۸.۰.۴ به ۸.۰.۶ در ویندوز
          • ارتقا TestRail از ۸.۰.۴ به ۸.۰.۶ در یونیکس/لینوکس
          • نصب با داکر
            • نصب ۸.۰.۶.۱۰۱۹ روی داکر
          • نصب با یونیکس / لینوکس
            • نصب TestRail (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۸.۰.۶.۱۰۱۹
            • ایجاد پایگاه داده خالی SQL (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۸.۰.۶.۱۰۱۹
            • نصب پایگاه داده Cassandra NoSQL (یونیکس / لینوکس) &#۸۲۱۱; نسخه ۸.۰.۶.۱۰۱۹
            • آماده سازی سرور یونیکس/لینوکس برای نصب &#۸۲۱۱; نسخه ۸.۰.۶.۱۰۱۹
          • نصب روی ویندوز
            • ایجاد پایگاه داده خالی SQL (ویندوز) &#۸۲۱۱; نسخه ۸.۰.۶.۱۰۱۹
            • نصب TestRail (ویندوز) &#۸۲۱۱; نسخه ۸.۰.۶.۱۰۱۹
            • نصب پایگاه داده Cassandra NoSQL در ویندوز &#۸۲۱۱; نسخه ۸.۰.۶.۱۰۱۹
            • آماده سازی سرور ویندوز خود برای نصب &#۸۲۱۱; نسخه ۸.۰.۶.۱۰۱۹
        • نصب نسخه 8.0.4
          • ارتقا TestRail از ۸.۰.۱ به ۸.۰.۴ در ویندوز
          • ارتقا TestRail از ۸.۰.۱ به ۸.۰.۴ در یونیکس/لینوکس
          • الزامات نصب &#۸۲۱۱; نسخه ۸.۰.۴
          • نصب با داکر
            • نصب ۸.۰.۴.۷۰۳۶ در داکر
          • نصب بر روی یونیکس / لینوکس
            • نصب پایگاه داده Cassandra NoSQL (یونیکس / لینوکس) &#۸۲۱۱; نسخه ۸.۰.۴.۷۰۳۶
            • ایجاد پایگاه داده خالی SQL (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۸.۰.۴.۷۰۳۶
            • نصب TestRail (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۸.۰.۴.۷۰۳۶
            • آماده سازی سرور یونیکس/لینوکس برای نصب &#۸۲۱۱; نسخه ۸.۰.۴.۷۰۳۶
          • نصب روی ویندوز
            • نصب TestRail (ویندوز) &#۸۲۱۱; نسخه ۸.۰.۴.۷۰۳۶
            • آماده سازی سرور ویندوز خود برای نصب &#۸۲۱۱; نسخه ۸.۰.۴.۷۰۳۶
            • نصب پایگاه داده Cassandra NoSQL در ویندوز &#۸۲۱۱; نسخه ۸.۰.۴.۷۰۳۶
            • ایجاد پایگاه داده خالی SQL (ویندوز) &#۸۲۱۱; نسخه ۸.۰.۴.۷۰۳۶
        • نصب نسخه 8.0.1
          • ارتقا TestRail از ۷.۵.۳ به ۸.۰.۱ در یونیکس/لینوکس
          • ارتقا TestRail از ۷.۵.۳ به ۸.۰.۱ در ویندوز
          • الزامات نصب &#۸۲۱۱; نسخه ۸.۰.۱
          • نصب با داکر
            • نصب ۸.۰.۱.۱۰۲۹ در داکر
          • نصب بر روی یونیکس / لینوکس
            • نصب پایگاه داده Cassandra NoSQL (یونیکس / لینوکس) &#۸۲۱۱; نسخه ۸.۰.۱.۱۰۲۹
            • نصب TestRail (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۸.۰.۱.۱۰۲۹
            • ایجاد پایگاه داده خالی SQL (یونیکس/لینوکس) &#۸۲۱۱; نسخه ۸.۰.۱.۱۰۲۹
            • آماده سازی سرور یونیکس/لینوکس برای نصب &#۸۲۱۱; نسخه ۸.۰.۱.۱۰۲۹
          • نصب روی ویندوز
            • نصب TestRail (ویندوز) &#۸۲۱۱; نسخه ۸.۰.۱.۱۰۲۹
            • ایجاد پایگاه داده خالی SQL (ویندوز) &#۸۲۱۱; نسخه ۸.۰.۱.۱۰۲۹
            • نصب پایگاه داده Cassandra NoSQL در ویندوز &#۸۲۱۱; نسخه ۸.۰.۱.۱۰۲۹
            • آماده سازی سرور ویندوز شما برای نصب &#۸۲۱۱; نسخه ۸.۰.۱.۱۰۲۹
        • نصب نسخه 7.5
          • الزامات نصب
          • ارتقاء TestRail
          • نصب بر روی یونیکس / لینوکس
            • نصب TestRail
            • ایجاد پایگاه داده SQL خالی
            • نصب پایگاه داده Cassandra NoSQL در یونیکس / لینوکس
            • آماده سازی سرور یونیکس/لینوکس برای نصب
          • نصب روی ویندوز
            • نصب TestRail
            • ایجاد پایگاه داده SQL خالی
            • نصب پایگاه داده Cassandra NoSQL
            • در حال آماده سازی سرور ویندوز خود برای نصب
          • نصب با داکر
            • نصب در Docker: انتقال و ارتقا TestRail
            • نصب در Docker: فایل ها را بنویسید
            • نصب در Docker: شروع به کار
            • نصب در Docker: نمای کلی
    • مدیریت سرور
      • راه اندازی یک سرور مرحله بندی
      • ایمن سازی نصب های سرور TestRail
      • بهینه سازی نصب های سرور TestRail
      • بازیابی نسخه پشتیبان TestRail
      • ایجاد یک نسخه پشتیبان از نمونه سرور TestRail خود
      • عیب یابی
        • PHP ۵.۶ را به PHP ۷.x ارتقا دهید
        • افزایش محدودیت حافظه PHP
        • نصب پسوند SQLsrv PHP
        • عیب یابی نصب سرور TestRail
        • افزایش محدودیت آپلود فایل PHP
        • اجرای تشخیص Phpinfo().
        • حذف داده های اضافی از نمونه TestRail شما
        • نصب پسوند SQLsrv PHP &#۸۲۱۱; نسخه ۸.۰
        • در حال اجرا Phpinfo() diagnostics &#۸۲۱۱; نسخه ۸.۰
    • سفارشی سازی ها و افزونه ها
      • سفارشی کردن یک پلاگین نقص
      • ساخت پلاگین نقص سفارشی
      • زبان ها: ترجمه رابط کاربری TestRail
      • اشکال زدایی اسکریپت های سفارشی
      • افزونه های گزارش سفارشی
        • گزارش ها: ساخت پلاگین گزارش سفارشی (۳/۳)
        • گزارش ها: ساخت افزونه گزارش سفارشی (۲/۳)
        • گزارش ها: ساخت یک افزونه گزارش سفارشی (۱/۳)
        • معرفی گزارش های سفارشی
    • احراز هویت
      • احراز هویت: پیاده سازی یک ورود به سیستم با TestRail
      • احراز هویت: LDAP
      • احراز هویت: Active Directory
      • احراز هویت: مقدمه
    • استهلاک کاساندرا
      • پاک کردن فایل های پیوست قدیمی
      • سرور TestRail Cassandra انتقال داده به MySQL برای لینوکس
      • TestRail Server Cassandra Data Migration برای Docker برای ویندوز و لینوکس
      • TestRail Server Cassandra Data Migration به MS SQL Server برای ویندوز
  • ادغام‌ها
    • ادغام‌های الزامات و نقص‌ها
      • مقدمه ای بر ادغام های مرجع و نقص
      • پیکربندی ادغام های مرجع
      • پیکربندی متغیرهای کاربر
      • پیکربندی ادغام نقص
      • ادغام با Aha! توسعه دهید
      • ادغام های موجود
        • ادغام با Axosoft
        • ادغام با Trello
        • با YouTrack یکپارچه شوید
        • ادغام با VersionOne
        • ادغام با Vault
        • ادغام با Trac
        • با Redmine یکپارچه شوید
        • با Rally یکپارچه شوید
        • ادغام با Pivotal Tracker
        • ادغام با مانتیس
        • ادغام با Lighthouse
        • ادغام با FogBugz (یا دستنوشته)
        • ادغام با fixx
        • ادغام با Bugzilla
        • ادغام با BugTracker.NET
        • ادغام با Bitbucket
        • ادغام با ایمیل
        • ادغام با Azure DevOps
        • ادغام با Axosoft SOAP API
        • ادغام با Axosoft REST API
        • ادغام با Assembla
        • با آسانا یکپارچه شوید
        • برنامه TestRail Azure DevOps
        • ادغام با GitLab
        • ادغام با GitHub
        • با ClickUp یکپارچه شوید
        • ادغام با Monday.com
        • اطلسیان جیرا
          • برنامه TestRail Jira
          • استفاده از فیلدهای سفارشی با ادغام Jira
          • ادغام Jira را به صورت دستی پیکربندی کنید
          • به سرور Jira متصل شوید
          • به Jira Cloud متصل شوید
          • با Jira یکپارچه شوید
          • بررسی پوشش جیرا
          • سوالات متداول ادغام TestRail Jira
          • به مرکز داده Jira متصل شوید
    • یکپارچه سازی امنیتی
      • یکپارچه سازی اسکن های Kiuwan SAST از طریق UI
      • یکپارچه سازی اسکن های Kiuwan SAST از طریق CLI
    • داشبوردها
      • مروری بر ادغام های داشبورد
      • ادغام با Confluence
    • وب هوک ها
      • وب هوک ها
  • اتوماسیون تست
    • TestRail CLI
      • شروع کار با TestRail CLI
      • ورود به سیستم و قابلیت مشاهده
      • مرجع دستورات توسعه رفتار محور (BDD).
      • راهنمای عملکرد صفحه بندی موازی برای مجموعه آزمایشی بزرگ
      • TRCLI در خطوط لوله CI/CD
      • دریافت بیشتر از TRCLI
      • نقشه برداری JUnit به TestRail
      • منابع پارامتر
      • نمونه های استفاده
      • مرجع دستورات CLI
      • SauceLabs و saucectl گزارش می دهند
      • گردش کار Specification-first
      • گردش کار کد اول
    • ادغام فریم‌ورک‌های اتوماسیون
      • ادغام با نمایشنامه نویس
      • ادغام با Pytest
      • ادغام با Cypress
      • ادغام با TestNG
      • ادغام با Robot Framework
      • ادغام با NUnit
      • ادغام با JUnit۵
      • با Curiosity Quality Modeller یکپارچه شوید
      • ادغام با Ranorex
      • ادغام با K۶
      • ادغام با Postman
      • ادغام با WebdriverIO
      • ادغام با JMeter
      • ادغام با Robot Framework (با استفاده از Robot Parser)
      • ادغام با سلنیوم
      • ادغام با testRigor
        • testRigor ادغام در TestRail
        • ادغام با testRigor
    • ادغام ابزارهای CI/CD
      • ادغام با جنکینز (استایل آزاد)
      • ادغام با GitHub Actions
      • ادغام با Azure Pipelines
      • ادغام با Bitbucket
      • ادغام با Travis CI
      • ادغام با CircleCI
      • ادغام با جنکینز (خط لوله)
      • ادغام با GitLab CI/CD
    • اسکریپت های UI برای اتوماسیون تست
      • اسکریپت های UI برای اتوماسیون تست
  • راهنمای API
    • شروع کار با TestRail API
      • رسیدگی به خطا
      • اتصال دات نت (C#/VB.NET)
      • یاقوت صحافی
      • پایتون صحافی
      • اتصال PHP
      • مقدمه ای بر TestRail API
      • اتصال جاوا
      • دسترسی به TestRail API
    • موارد استفاده از API
      • خروجی گرفتن از تست‌کیس‌ها
      • صادرات نتایج آزمون
      • ایجاد تست‌کیس‌ها
      • واردات نتایج آزمون
      • API از معرفی موارد استفاده می کند
    • مرجع API
      • BDD ها
      • تست ها
      • متغیرها
      • کاربران
      • قالب ها
      • سوئیت ها
      • وضعیت ها
      • مراحل مشترک
      • بخش ها
      • اجرا می شود
      • فیلدهای نتیجه
      • نقش ها
      • گزارش ها و گزارش های بین پروژه ای
      • نتایج
      • پروژه ها
      • اولویت ها
      • نقاط عطف
      • طرح ها
      • گروه ها
      • مجموعه داده ها
      • تنظیمات
      • انواع مورد
      • موارد
      • فیلدهای تست‌کیس
      • پیوست ها
      • فیلدهای فیلتر پویا
      • برچسب ها
  • یادداشت‌های انتشار
    • آهنگ انتشار پیش فرض
      • TestRail ۱۰.۵.۱ پیش فرض (۱۰۰۱)
      • TestRail ۱۰.۴.۱ پیش فرض (۱۰۰۴)
      • TestRail ۱۰.۳.۱ پیش فرض (۱۰۰۹)
      • TestRail ۱۰.۱.۳ پیش فرض (۱۰۰۶)
      • TestRail ۱۰.۲.۰ پیش فرض (۱۰۷۶)
      • TestRail ۱۰.۱.۲ پیش فرض (۱۰۰۲)
      • TestRail ۱۰.۱.۱ پیش فرض (۱۰۱۱)
      • TestRail ۱۰.۰.۱ پیش فرض (۱۰۱۰)
      • TestRail ۱۰.۰.۰ پیش فرض (۱۰۶۸)
      • TestRail ۹.۸.۱ پیش فرض (۱۵۰۶)
      • TestRail ۹.۷.۲ پیش فرض (۱۰۰۳)
      • TestRail ۹.۷.۱ پیش فرض (۱۰۰۹)
      • TestRail ۹.۷.۰ پیش فرض (۱۰۳۶)
      • TestRail ۹.۶.۱ پیش فرض (۱۰۳۳)
      • TestRail ۹.۶.۰ پیش فرض (۱۰۳۲)
      • TestRail ۹.۵.۳ پیش فرض (۱۰۵۸)
      • TestRail ۹.۵.۲ پیش فرض (۱۰۴۷)
      • TestRail ۹.۵.۰ پیش فرض (۱۰۴۰)
      • TestRail ۹.۴.۰ پیش فرض (۱۰۵۴)
      • TestRail ۹.۳.۲ پیش فرض (۱۰۰۲)
      • TestRail ۹.۳.۱ پیش‌فرض (۱۰۲۰)
      • TestRail ۹.۳.۰ پیش فرض (۱۰۸۰)
      • TestRail ۹.۲.۱ پیش فرض (۱۰۱۰)
      • TestRail ۹.۲.۰ پیش فرض (۱۲۲۵)
      • TestRail ۹.۱.۲ پیش فرض (۱۰۲۸)
      • TestRail ۹.۱.۱ پیش فرض (۱۰۲۷)
      • TestRail ۹.۱.۰ پیش فرض (۱۰۲۵)
      • TestRail ۹.۰.۰ پیش‌فرض (۱۰۹۱)
      • TestRail ۹.۰.۰ پیش فرض (۱۰۵۷)
      • TestRail ۹.۰.۰ پیش فرض (۱۰۵۶)
    • سرور منتشر می شود
      • سرور TestRail ۱۰.۴.۱.۱۰۰۴
      • TestRail ۱۰.۴.۱.۱۰۰۴ Docker Image
      • TestRail ۱۰.۳.۱.۱۰۰۹ Docker Image
      • سرور TestRail ۱۰.۳.۱.۱۰۰۹
      • سرور TestRail ۱۰.۲.۰.۱۰۷۶
      • TestRail ۱۰.۲.۰.۱۰۷۶ Docker Image
      • TestRail ۱۰.۱.۴.۱۰۰۴ Docker Image
      • سرور TestRail ۱۰.۱.۴.۱۰۰۴
      • TestRail ۱۰.۰.۱.۱۰۱۰ Docker Image
      • سرور TestRail ۱۰.۰.۱.۱۰۱۰
      • TestRail ۹.۸.۱.۱۵۰۶ Docker Image
      • سرور TestRail ۹.۸.۱.۱۵۰۶
      • سرور TestRail ۹.۶.۱.۱۰۳۳
      • TestRail ۹.۶.۱.۱۰۳۳ Docker Image
      • TestRail ۹.۵.۱.۱۰۴۲ Docker Image
      • سرور TestRail ۹.۵.۱.۱۰۴۲
      • TestRail ۹.۴.۱.۱۰۰۱ Docker Image
      • سرور TestRail ۹.۴.۱.۱۰۰۱
      • TestRail ۹.۳.۲.۱۰۰۲ Docker Image
      • سرور TestRail ۹.۳.۲.۱۰۰۲
      • TestRail ۹.۳.۱.۱۰۲۰ Docker Image
      • سرور TestRail ۹.۳.۱.۱۰۲۰
      • سرور TestRail ۹.۲.۱.۱۰۱۰
      • TestRail ۹.۲.۱.۱۰۱۰ Docker Image
      • TestRail ۹.۱.۱.۱۰۲۷ Docker Image
      • سرور TestRail ۹.۱.۱.۱۰۲۷
      • TestRail ۹.۱.۰.۱۰۲۵ Docker Image
      • سرور TestRail ۹.۱.۰.۱۰۲۵
      • سرور TestRail ۹.۰.۰.۱۰۹۱
      • TestRail ۹.۰.۰.۱۰۹۱ Docker Image
      • TestRail ۹.۰.۰.۱۰۵۷ Docker Image
      • سرور TestRail ۹.۰.۰.۱۰۵۷
      • سرور TestRail ۸.۱.۰.۶۱۸۶
      • TestRail ۸.۱.۰.۶۱۸۶ Docker Image
      • TestRail ۸.۱.۰.۶۱۶۵ Docker Image
      • سرور TestRail ۸.۱.۰.۶۱۶۵
      • TestRail ۸.۰.۶.۱۰۱۹ Docker Image
      • سرور TestRail ۸.۰.۶.۱۰۱۹
      • TestRail ۸.۰.۴.۷۰۳۶ Docker Image
      • سرور TestRail ۸.۰.۴.۷۰۳۶
      • سرور TestRail ۸.۰.۱.۱۰۲۹
      • TestRail ۸.۰.۱.۱۰۲۹ Docker Image
      • سرور TestRail ۸.۰.۰.۱۰۸۹
      • سرور TestRail ۷.۵
    • انتشارات تاریخی
      • TestRail ۸.۱.۰ پیش فرض (۶۱۸۵)
      • TestRail ۸.۱.۰ پیش فرض (۶۱۶۵)
      • TestRail ۸.۱.۰ پیش فرض (۶۱۶۱)
      • TestRail ۸.۰.۶ پیش‌فرض (۱۰۲۹)
      • TestRail ۸.۰.۶ پیش‌فرض (۱۰۱۹)
      • TestRail ۸.۰.۶ پیش‌فرض (۱۰۱۴)
      • TestRail ۸.۰.۵ پیش‌فرض (۱۰۵۵)
      • TestRail ۸.۰.۵ پیش‌فرض (۱۰۳۹)
      • TestRail ۸.۰.۴ پیش فرض (۷۰۳۶)
      • TestRail ۸.۰.۳ پیش‌فرض (۳۰۸۷)
      • TestRail ۸.۰.۳ پیش‌فرض (۳۰۷۰)
      • TestRail ۸.۰.۳ پیش‌فرض (۳۰۶۷)
      • TestRail ۸.۰.۳ پیش‌فرض (۳۰۶۶)
      • TestRail ۸.۰.۳ پیش‌فرض (۳۰۶۴)
      • TestRail ۸.۰.۳ پیش‌فرض (۳۰۶۳)
      • TestRail ۸.۰.۲ پیش فرض (۳۱۳۸)
      • TestRail ۸.۰.۱ پیش فرض (۱۰۳۳)
      • TestRail ۷.۶ پیش فرض
      • TestRail ۶.۶ پیش فرض
      • TestRail ۸.۰.۱ پیش فرض (۱۰۳۰)
      • TestRail ۵.۲ پیش فرض
      • TestRail ۵.۳ پیش فرض
      • TestRail ۵.۴ پیش فرض
      • TestRail ۵.۴.۱ پیش فرض
      • TestRail ۵.۵ پیش فرض
      • TestRail ۵.۶ پیش فرض
      • TestRail ۵.۷ پیش فرض
      • TestRail ۶.۰ پیش فرض
      • TestRail ۶.۱ پیش فرض
      • TestRail ۶.۲ پیش فرض
      • TestRail ۶.۳ پیش فرض
      • TestRail ۶.۴ پیش فرض
      • TestRail ۶.۵ پیش فرض
      • TestRail ۶.۷ پیش فرض
      • TestRail ۵.۱ پیش فرض
      • TestRail ۵.۰ (افزونه و به روز رسانی مدیریت تست 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 ۸.۰.۱ پیش‌فرض (۱۰۲۹)
      • TestRail ۷.۸.۰ پیش‌فرض (۱۱۴۱)
      • TestRail ۷.۸.۰ پیش فرض (۱۱۴۰)
      • TestRail ۷.۷ دسترسی زودهنگام
      • TestRail ۷.۸.۰ پیش فرض (۱۱۱۶)
      • TestRail ۷.۸.۰ پیش فرض (۱۱۳۶)
      • TestRail ۷.۸.۰ پیش‌فرض (۱۰۵۹)
دسته‌ها را مشاهده کنید
  • خانه
  • مستندات
  • Testrail
  • Testrail
  • راهنمای سرور
  • سفارشی سازی ها و افزونه ها
  • ساخت پلاگین نقص سفارشی

ساخت پلاگین نقص سفارشی

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

افزونه های نقص TestRail برای ادغام TestRail با ابزارهای ردیابی اشکال و اشکال شخص ثالث مفید هستند. TestRail با اسکریپت های پلاگین آماده برای ادغام با بسیاری از ابزارهای محبوب ارائه می شود. با این اوصاف، پلاگین‌های نقصی که با TestRail ارسال می‌شوند برای کار با تنظیمات استاندارد ابزارهای ردیابی نقص طراحی شده‌اند و می‌توانید افزونه‌های نقص را برای نیازهای خود سفارشی کنید.

اگر ابزار ردیابی نقص خود را سفارشی کرده اید (مثلاً با افزودن فیلدهای سفارشی مورد نیاز جدید) یا می خواهید رفتار یکپارچه سازی نقص را تغییر دهید، می توانید افزونه های نقص را سفارشی کنید یا حتی افزونه های جدیدی بسازید. سفارشی کردن پلاگین های نقص یا ساخت افزونه های جدید می تواند برای سناریوهای زیر مفید باشد:

  • شما ابزار ردیابی نقص خود را طوری پیکربندی کرده‌اید که به فیلدهای سفارشی اضافی نیاز دارد و می‌خواهید آن فیلدها را به نقص فشار گفتگو
  • می‌خواهید رفتار افزونه‌های نقص پیش‌فرض را تغییر دهید (به عنوان مثال اضافه کردن نقشه کاربر، افزودن اطلاعات اضافی به گزارش‌های اشکال ارسال شده، و غیره)
  • شما از یک ابزار سفارشی/هنوز پشتیبانی نشده استفاده می کنید و می خواهید برای آن ابزار یکپارچه سازی کنید.

این مقاله معماری پایه پلاگین های نقص و نحوه سفارشی سازی آنها را توضیح می دهد. بتن هم داریم صفحه نمونه پلاگین نقص در مورد نحوه افزودن فیلدهای جدید به گفتگوی نقص فشار و نحوه افزودن قابلیت های نقشه برداری کاربر به اسکریپت نقص.

  #

اگر افزونه نقص خود را نوشته‌اید و می‌خواهید آن را با سایر کاربران به اشتراک بگذارید، می‌توانید به عموم ما کمک کنید TestRail Customizations مخزن GitHub.

شروع کردن #

پلاگین های نقص در PHP توسعه داده شده اند و هنگام سفارشی سازی یا ساخت افزونه نقص خود باید درک اولیه ای از PHP داشته باشید. در صورت داشتن هر گونه سوال خاص با تیم پشتیبانی Gurock Software تماس بگیرید.

دو دایرکتوری وجود دارد که در آن TestRail به دنبال پلاگین های معیوب در هنگام اولیه سازی برنامه می گردد. دایرکتوری اول جایی است که TestRail افزونه های پیش فرض داخلی خود را نیز ذخیره می کند. شما هرگز نباید اسکریپت های افزونه را در این فهرست اضافه کنید یا تغییر دهید، زیرا این فایل ها با به روز رسانی TestRail لغو می شوند:

<TestRail>/app/plugins/defects

اسکریپت های اصلاح شده یا جدید باید همیشه در فهرست پلاگین نقص سفارشی قرار داده شوند:

<TestRail>/custom/defects

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

افزونه نقص یک اسکریپت ساده PHP است که کلاسی را پیاده سازی می کند که توسط TestRail برای برقراری ارتباط با ابزار ردیابی نقص استفاده می شود. برای سفارشی کردن یا ایجاد پلاگین نقص خود، می توانید یک اسکریپت آماده برای استفاده را از فهرست برنامه ذکر شده در بالا در پوشه افزونه نقص سفارشی کپی کنید و نام فایل را تغییر دهید. همچنین می توانید با اسکلت اسکریپت زیر شروع کنید.

به عنوان مثال، اگر می خواهید افزونه نقص Jira TestRail را سفارشی کنید، فایل را از آن کپی کنید <TestRail>/app/plugins/defects به <TestRail>/custom/defects. همچنین باید نام فایل را تغییر دهید، زیرا TestRail از نام فایل افزونه نقص به عنوان شناسه منحصر به فرد (کلاس) آن استفاده می کند. به عنوان مثال، می توانید نام فایل را به Jira_ExampleInc.php به طوری که شامل نام سازمان شما یا نام ابزار سفارشی است که می خواهید TestRail را با آن ادغام کنید. لطفاً به بخش بعدی در مورد نحوه تنظیم نام کلاس نقص برای مطابقت با نام فایل مراجعه کنید.

اصول پلاگین #

افزونه نقص یک کلاس PHP ساده است که روش های خاصی را پیاده سازی می کند که TestRail برای برقراری ارتباط با ابزار ردیابی نقص فراخوانی می کند. TestRail از نام فایل اسکریپت به عنوان شناسه منحصر به فرد اسکریپت استفاده می کند. نام کلاس افزونه باید بر اساس نام فایل باشد. به عنوان مثال، اگر فایل اسکریپت افزونه نام دارد Jira.php، نام کلاس افزونه باید فراخوانی شود Jira_defect_plugin.

هر کلاس افزونه نقص باید TestRail را گسترش دهد Defect_plugin کلاس پایه اسکلت کلاس زیر تمام متدهای پایه را پیاده سازی می کند و متدها و آرگومان های اصلی را توضیح می دهد.

// MyPlugin.php
class MyPlugin_defect_plugin extends Defect_plugin
{
  // Get Meta
  //
  // Expected to return meta data for this plugin such as Author,
  // Version, Description and supported plugin capabilities.
  public function get_meta()
  {
  }
 
  // Validate Config
  //
  // Validates the plugin configuration that is entered in the site
  // or project settings. Expected to throw a ValidationException
  // in case the passed configuration does not validate.
  public function validate_config($config)
  {
  }
 
  // Configure
  //
  // Passes the configuration for the plugin as specified in the
  // site or project settings (as string).
  public function configure($config)
  {
  }
 
  // Prepare Push
  //
  // Signals if the plugin requires/supports a form to submit the
  // defect. Returns 'false' to signal that no form is required.
  // Otherwise the plugin should return the form description that
  // is used to render the form and display it to the user.
  public function prepare_push($context)
  {
  }
 
  // Prepare Field
  //
  // Called for each field of the push form to gather the field
  // data for the form. The plugin can return default values or
  // available options for the field (in case of a dropdown
  // box, for example), among other values.
  public function prepare_field($context, $input, $field)
  {
  }
 
  // Validate Push
  //
  // Called before the actual push attempt is processed (in case
  // the plugin uses a custom form). Useful for adding custom
  // validation functionality for the form that is not covered by
  // TestRail itself. Expected to throw a ValidationException in
  // case the passed input of the custom form does not validate.
  public function validate_push($context, $input)
  {
  }
 
  // Push
  //
  // Executes the actual push request by adding a new case to the
  // defect tracker. Expected to return the new defect ID (as
  // string or integer).
  public function push($context, $input)
  {
  }
 
  // Lookup
  //
  // Looks up the defect/issue/case with the given ID and returns
  // its properties as key/value array. The following return values
  // are required:
  // 
  // id:           The ID of the defect (usually the same as the
  //               passed ID)
  // title:        The title/summary of the defect
  // status_id:    The status ID of the defect. Possible values
  //               are:
  //               - GI_DEFECTS_STATUS_OPEN
  //               - GI_DEFECTS_STATUS_RESOLVED
  //               - GI_DEFECTS_STATUS_CLOSED
  // status:       The status as text
  // 	             
  //
  // The following properties are optional:
  //
  // url:          The full HTTP url to view the defect
  // description:  The description of the defect (supports HTML,
  //               the plugin is responsible for providing well-
  //               formed and valid HTML and must escape data
  //               that is not expected to be rendered as HTML).
  // attributes:   A key/value list of additional attributes.
  //               The value also supports HTML with the same
  //               implications as for the description.
  public function lookup($defect_id)
  {
  }
}

اگرچه همیشه لازم نیست همه روش ها را به طور کامل پیاده سازی کنید. افزونه‌های نقص (در حال حاضر) دو قابلیت را ارائه می‌دهند: انتقال نقص به یک برنامه خارجی و جستجوی اطلاعات نقص. بسته به افزونه ای که قصد دارید بنویسید و بسته به زمینه، اجرای تنها یکی از این قابلیت ها منطقی است.

برای مثال، اگر قصد داشتید افزونه‌ای را پیاده‌سازی کنید که به آزمایش‌کنندگان اجازه می‌دهد از طریق کادر گفتگوی Push ایمیل ارسال کنند، نیازی به پیاده‌سازی عملکرد جستجو وجود نخواهد داشت. به همین ترتیب، اگر ابزار ردیابی نقص به شما امکان می دهد اطلاعات نقص را بازیابی کنید اما ترجیح می دهید از فرم گزارش اشکال ردیاب نقص استفاده کنید، نیازی به اجرای عملکرد فشار ندارید.

پلاگین های نقص به طور کلی کاملاً انعطاف پذیر هستند. برای مثال، در حالی که همه افزونه‌های نقصی که در حال حاضر با TestRail ارسال می‌شوند، یک گفتگو را نمایش می‌دهند تا به آزمایش‌کنندگان اجازه می‌دهد گزارش اشکال وارد شده را سفارشی کنند، داشتن یک گفتگو همیشه ضروری نیست. افزونه نقص می تواند به طور خودکار گزارش اشکال را در پس زمینه بدون هیچ گونه تعامل کاربر ارسال کند.

پلاگین خود را بسازید #

این بخش شما را در ایجاد اولین پلاگین نقص خود راهنمایی می کند و روش ها و اصطلاحات مختلف افزونه را توضیح می دهد. حتی اگر قصد ندارید پلاگین خود را از ابتدا ایجاد کنید، اما فقط می خواهید یک افزونه موجود را سفارشی کنید، این بهترین راه برای یادگیری در مورد عملکرد داخلی افزونه ها است. ما یک افزونه نقص جدید برای ابزار ردیابی اشکال خیالی Bugs ایجاد خواهیم کرد و بخش‌های زیر مراحل ایجاد یک افزونه جدید را توضیح می‌دهند.

قبل از شروع کار با افزونه جدید، مهم است که توجه داشته باشیم که TestRail تمام رشته‌ها و متن‌ها را در رمزگذاری UTF-۸ انتظار دارد (و ارائه می‌کند). این بدان معنی است که تمام رشته ها و متن هایی که به TestRail برمی گردانید (یا از آن دریافت می کنید) باید در UTF-۸ کدگذاری شوند. اگر کاراکترهای غیرغربی را پردازش می کنید، این امر به ویژه وارد می شود، اما باید این را برای کاراکترهای ویژه غیر ASCII و غیره نیز در نظر بگیرید.

ایجاد فایل #

اولین قدم برای ایجاد یک افزونه نقص جدید، ایجاد فایل اسکریپت واقعی است. ما فایل را فراخوانی می کنیم Bugs.php برای این مثال و قرار دادن آن در فهرست پلاگین نقص سفارشی TestRail (<TestRail>/custom/defects). اگر قصد دارید از یک افزونه نقص موجود استفاده کنید (همه افزونه های نقص پیش فرض با کد منبع کامل ارائه می شوند و می توانید آنها را در <TestRail>/app/plugins/defects دایرکتوری)، مطمئن شوید که آن را در فهرست پلاگین نقص سفارشی کپی کرده و نام آن را تغییر دهید. پلاگین نقص اصلی ما برای Bugz به این شکل است (توجه داشته باشید که ما آن را نمی بندیم <?php تگ باز کردن در انتهای فایل؛ این یک ترفند برای جلوگیری از خطوط خالی در انتهای فایل است که ممکن است خروجی هدر PHP را خراب کند:

class Bugs_defect_plugin extends Defect_plugin
{
}

برگرداندن متا دیتا #

اولین چیزی که باید پیاده سازی کنیم این است get_meta روش این روش به TestRail نکاتی را در مورد افزونه می‌گوید، مانند نام نویسنده، نسخه افزونه، قابلیت‌های پشتیبانی‌شده و جزئیات پیکربندی. برای انجام این کار، متد به سادگی یک آرایه با جزئیات زیر را برمی گرداند:

{
  return array(
    'author' => 'Example Inc.',
    'version' => '1.0',
    'description' => 'Bugs defect plugin for TestRail',
    'can_push' => false,
    'can_lookup' => false,
    'default_config' => 
      "; Please configure your Bugs connection below\n" .
      "[connection]\n" .
      "address=http:///\n" .
      "user=testrail\n" .
      "password=secret"
  );
}

به خصوص مهم هستند can_push و can_lookup خواص این ویژگی‌ها به TestRail می‌گویند که کدام قابلیت‌ها توسط افزونه نقص پیاده‌سازی می‌شوند. در حالی که فقط وجود دارد فشار دهید و جستجو در حال حاضر، این امکان وجود دارد که قابلیت‌های جدیدی در نسخه‌های آتی TestRail اضافه شود.

را default_config ملک نیز در اینجا جالب است. پلاگین های نقص را می توان به صورت جهانی در TestRail در زیر پیکربندی کرد اداره > تنظیمات سایت یا در هر پروژه تحت اداره > پروژه ها. هنگامی که یک مدیر یک افزونه را پیکربندی می کند، پیکربندی پیش فرض همانطور که در آن مشخص شده است default_config در قسمت متن پیکربندی بارگذاری می شود.

پیکربندی #

یک افزونه نقص معمولاً به برخی تنظیمات پیکربندی مانند آدرس ردیاب نقص، نام کاربری و رمز عبور و گزینه های مشابه نیاز دارد. هنگامی که یک مدیر یک افزونه نقص را در TestRail پیکربندی می کند، یک فیلد متنی برای وارد کردن تنظیمات پیکربندی استفاده می شود. این به افزونه ها اجازه می دهد تا از قالب پیکربندی خود استفاده کنند، زیرا یک فیلد متنی از نمادهای مختلف (مانند گزینه های INI، XML و غیره) پشتیبانی می کند.

افزونه‌های نقص پیش‌فرض TestRail از نماد فایل INI برای تنظیمات پیکربندی استفاده می‌کنند، بنابراین [sections] و name=value جفت ها برای تعیین تنظیمات استفاده می شوند. از آنجایی که TestRail دارای روش هایی برای خواندن چنین گزینه های پیکربندی است، معمولاً استفاده از نماد INI ایده خوبی است.

هنگامی که یک مدیر یک افزونه را پیکربندی می کند، TestRail از افزونه می خواهد تنظیمات پیکربندی وارد شده را تأیید کند. از آنجایی که TestRail در مورد تنظیمات پیکربندی مورد نیاز (یا حتی فرمت تنظیمات پیکربندی) اطلاعی ندارد، افزونه نقص باید تأیید کند که تمام تنظیمات مورد نیاز مشخص شده است. برای انجام این کار، TestRail را فراخوانی می کند validate_config هر زمان که مدیر سعی می کند پیکربندی را تغییر دهد روش:

public function validate_config($config)
{
  $ini = ini::parse($config);
 
  // Check if the [connection] section exists
  if (!isset($ini['connection']))
  {
    throw new ValidationException('Missing [connection] group');
  }
 
  // Check if the required values exist
  $keys = array('address', 'user', 'password');
  foreach ($keys as $key)
  {
    if (!isset($ini['connection'][$key]) ||
      !$ini['connection'][$key])
    {
      throw new ValidationException(
        "Missing configuration for key '$key'"
      );
    }
  }
 
  $address = $ini['connection']['address'];
 
  // Check whether the address is a valid url (syntax only)
  if (!check::url($address))
  {
    throw new ValidationException('Address is not a valid url');
  }
}

روش بالا بررسی می کند که [connection] بخش وجود دارد و این بخش حاوی کلیدها است address، user و password. همچنین تأیید می کند که کلید آدرس حاوی یک URL معتبر است (از طریق check::url روتین). همچنین به نحوه عملکرد TestRail توجه کنید ini ماژول برای تجزیه تنظیمات پیکربندی در ابتدای روش استفاده می شود. اگر روش مشکلی در پیکربندی پیدا کند (مانند یک کلید گم شده یا یک مقدار نامعتبر)، یک استثنا از نوع ایجاد می کند. ValidationException. TestRail سپس پیام خطا را به مدیر نمایش می دهد.

پس از پیکربندی تنظیمات، افزونه به راهی برای دسترسی به تنظیمات نیاز دارد. TestRail به طور خودکار با آن تماس می گیرد configure روش هر بار که کلاس نقص در حال نمونه سازی است. به عنوان مثال، قبل از اینکه TestRail از یک افزونه نقص بخواهد شناسه نقص را جستجو کند، آن را فراخوانی می کند configure روشی برای ارائه افزونه با تمام تنظیمات پیکربندی لازم. این افزونه مسئول نگه داشتن این تنظیمات تا زمانی است که نمونه فعال است تا برای تماس های متد واقعی به این تنظیمات دسترسی داشته باشد. یک افزونه معمولاً تنظیمات را در یک متغیر نمونه ذخیره می کند تا این کار را انجام دهد:

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'];	
}

این روش تنظیمات پیکربندی را از طریق ini دوباره ماژول و تنظیمات پیکربندی را در متغیرها/فیلدهای نمونه ذخیره می کند. برای دسترسی به آدرس ردیاب نقص در فراخوانی‌های متد بعدی، افزونه می‌تواند به سادگی دسترسی داشته باشد $this→_address.

جستجوی عیوب #

ابتدا به بررسی عملکرد جستجوی نقص می پردازیم زیرا پیاده سازی آن نسبت به عملکرد نقص فشاری ساده تر است و راه خوبی برای آشنایی بیشتر با نحوه عملکرد افزونه های نقص است. وقتی TestRail یک شناسه نقص وارد شده را ارائه می کند (مثلاً به عنوان بخشی از نتیجه آزمایش)، بررسی می کند که آیا افزونه نقص پیکربندی شده (در صورت وجود) از جستجوی نقص پشتیبانی می کند (با بررسی can_lookup گزینه برگردانده شده توسط get_meta).

اگر افزونه از قابلیت جستجو پشتیبانی می‌کند، کاربران می‌توانند نشانگر ماوس خود را روی شناسه نقص نگه دارند تا درباره وضعیت و توضیحات نقص اطلاعات بیشتری کسب کنند. هر زمان که کاربر این کار را انجام می دهد، TestRail از افزونه نقص می خواهد که اطلاعات مربوط به نقص را بازیابی کند تا TestRail بتواند داده ها را نمایش دهد (مفید است بدانید که TestRail ممکن است در آینده از این اطلاعات برای اهداف دیگری مانند محاسبه عیوب باز/بسته شده برای گزارش استفاده کند).

درخواست اطلاعات در مورد یک نقص از طریق انجام می شود lookup روش قبل از فراخوانی این متد، TestRail همیشه the را فراخوانی می کند configure روشی که افزونه تمام تنظیمات پیکربندی لازم را داشته باشد. را lookup روش برای ردیاب نقص خیالی ما اشکالات به نظر می رسد این است:

public function lookup($defect_id)
{
  // Get the defect information via the Bugs API
  $defect = $this->_bugs_get_defect($defect_id);
 
  // Build the status_id based on the status property
  if ($defect['status'] == 'Open')
  {
    $status_id = GI_DEFECTS_STATUS_OPEN;
  }
  elseif ($defect['status'] == 'Resolved')
  {
    $status_id = GI_DEFECTS_STATUS_RESOLVED;
  }
  else
  {
    $status_id = GI_DEFECTS_STATUS_CLOSED;
  }
 
  // Build the bug URL and project link
  $bug_url = str::format('{0}?bug={1}', 
    $this->_address,
    $defect['id']);
  $project_link = str::format(
    '{2}',
    a($this->_address),
    a($defect['project_id']),
    h($defect['project']));
 
  // Build the description
  $description = str::format(
    '{0}',
    nl2br(
      html::link_urls(
        h($defect['description'])
      )
    )
  );	
 
  // Return the defect details
  return array(
    'id' => $defect['id'],
    'title' => $defect['title'],
    'status_id' => $status_id,
    'status' => $defect['status'],
    'url' => $bug_url,
    'description' => $description,
    'attributes' => array(
      'Type' => h($defect['type']),
      'Status' => h($defect['status']),
      'Project' => $project_link
    )
  );
}

این روش کمی طولانی‌تر از سایر پیاده‌سازی‌های متد است که تاکنون دیده‌ایم، بنابراین بیایید نگاهی به مراحل جداگانه‌ای که متد انجام می‌دهد بیاندازیم. ابتدا با تماس با داخلی/خصوصی جزئیات نقص را دریافت می کنیم _bugs_get_defect روش این یا یک روش مشابه معمولاً API ردیاب نقص را فراخوانی می کند یا اطلاعات نقص را در پایگاه داده جستجو می کند. اگر کد منبع این نمونه پلاگین را در زیر دانلود کنید، متوجه خواهید شد که این روش به سادگی تمام جزئیات نقص را کدگذاری می کند و در واقع هیچ تماسی از سرویس وب برقرار نمی کند، اما این برای اهداف نمایشی به خوبی کار می کند.

سپس چند مقدار را برای TestRail آماده می کنیم مانند the status_id یا لینک ها و توضیحات را status_id به TestRail می گوید که آیا نقصی باز است، برطرف شده است یا بسته شده است. اگر یک ردیاب نقص بین حل شده و بسته تمایز قائل نمی شود (مثلاً یک باگ یا باز شده یا برطرف شده است)، مطمئن شوید که GI_DEFECTS_STATUS_CLOSED وضعیت TestRail ممکن است از status_id برای گزارش ها و سایر عملکردها در آینده.

برخی از فیلدهایی که lookup روش از HTML پشتیبانی می کند. این بدان معنی است که بسیار مهم است که از رشته ها و مقادیر خود قبل از بازگرداندن آنها به TestRail فرار کنید (در صورتی که داده ها را به عنوان HTML معتبر از ردیاب نقص خود دریافت نکرده باشید). اگر این کار را انجام ندهید، خطر حملات اسکریپت متقابل سایت (XSS) وجود دارد و این یک خطر امنیتی بالقوه است. برای فرار از یک رشته، TestRail را ارائه می دهد h() و a() روال هایی برای فرار از متون و ویژگی های برچسب، به ترتیب. برای مثال، ویژگی‌های برگشتی می‌توانند حاوی کد HTML (مانند پیوندها) باشند و اگر از مقادیری مانند نام پروژه فرار نکنید، TestRail آن‌ها را همانطور که هست ارائه می‌کند و مهاجم می‌تواند کد جاوا اسکریپت را از طریق نام پروژه تزریق کند. همچنین توجه کنید که این روش چگونه توضیحات باگ را در a قرار می دهد div برای قالب بندی توضیحات با فونت تک فاصله تگ کنید.

آخرین اما نه کم اهمیت، این روش جزئیات نقص را به TestRail برمی گرداند. علاوه بر جزئیاتی مانند شناسه نقص، عنوان، وضعیت و غیره، امکان بازگرداندن ویژگی ها و توضیحات نیز وجود دارد. ویژگی ها می توانند شامل اطلاعاتی مانند پروژه، نوع موضوع، جزء یا منطقه پروژه باشند. دقیقاً مانند ویژگی ها، توضیحات از HTML پشتیبانی می کند و بنابراین می توان از آن برای افزودن انواع اطلاعات اضافی استفاده کرد. لطفاً مطمئن شوید که تمام HTML بازگشتی حاوی برچسب‌ها و قالب‌بندی معتبر هستند، زیرا تگ‌های HTML شکسته می‌توانند طرح‌بندی و عملکرد TestRail را خراب کنند. اسکرین شات زیر نشان می دهد که چگونه TestRail جزئیات نقص برگشتی را ارائه می دهد (توجه کنید که چگونه ویژگی ها در بالای توضیحات با پس زمینه آبی نمایش داده می شوند).

lookup-defects.png

فشار دادن عیوب بدون دیالوگ #

بیایید نگاهی به ارسال گزارش‌های نقص از TestRail به ابزار ردیابی نقص بیندازیم. ابتدا عملکرد فشار را بدون دیالوگ فشار اجرا می کنیم و در بخش بعدی به سناریوی پیچیده تر با یک گفتگوی فشاری نگاهی خواهیم انداخت. دو روش وجود دارد که برای اجرای عملکرد فشار بدون دیالوگ فشار برای ما مرتبط است: prepare_push و push. TestRail را فرا می خواند prepare_push روشی برای درخواست اطلاعات در مورد گفتگو و فیلدهای موجود که باید ارائه شود. اگر به یک گفتگوی فشاری نیازی نداریم و فقط می‌خواهیم گزارش اشکال را بدون تعامل کاربر ارسال کنیم، به سادگی false را در اینجا برمی‌گردانیم:

public function prepare_push($context)
{
  return false;
}

برای فشار واقعی نقص، ما همچنین باید روش فشار را پیاده سازی کنیم. اکنون، برای ایجاد یک گزارش نقص مفید، مطمئناً باید اطلاعاتی در تست‌کیس (مانند عنوان پرونده یا نظر وارد شده) و شاید جزئیات دیگری مانند شخصی که نقص را انجام می دهد، داشته باشیم. اینجاست که $context استدلالی که به همه روش های مربوط به فشار ارسال می شود مفید است. را $context استدلال با بسیاری از اطلاعات زمینه مفید مانند جزئیات تست‌کیس، آزمون، شخصی که نقص را تحت فشار قرار می دهد و غیره ارائه می شود. بیایید نگاهی به برخی از اطلاعاتی که از طریق آن منتقل می شود بیندازیم $context استدلال:

Array
(
    [event] => push
    [tests] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 12
                    [run_id] => 1
                    [case_id] => 128
                    [status_id] => 1
                    [url] => http://testrail/index.php?/tests/view/12
                    [case] => stdClass Object
                        (
                            [id] => 128
                            

Lorem ipsum dolor sit amet... #

=> Verify CSV import with enclosed test data files [url] => http://testrail/index.php?/cases/view/128 ) [run] => stdClass Object ( [id] => 1 [name] => File Formats [config] => [plan_id] => [project_id] => 1 [url] => http://testrail/index.php?/runs/view/1 ) ) ) [test_count] => 1 [test_change] => stdClass Object ( [status_id] => 1 [assignedto] => [comment] => Importing our standard Unicode CSV file (unitest1.csv) failed with the error message `Could not detect file encoding`. [attachments] => [version] => [elapsed] => [defects] => ) [project] => stdClass Object ( [id] => 1 [name] => Datahub [url] => http://testrail/index.php?/projects/overview/1 ) [preferences] => Array ( [type] => 1 [project] => DH [component] => 10010 ) [user] => stdClass Object ( [id] => 2 [name] => .. [email] => test@example.com ) )

همانطور که می بینیم، TestRail جزئیات مربوط به تست(های) انتخابی، تست‌کیس‌ها مرتبط، پروژه، تغییرات تست (یعنی اطلاعاتی که کاربر در آن وارد کرده است را ارائه می دهد. اضافه کردن نتیجه تست گفتگو) و غیره همانطور که از ساختار داده می بینید، تست های متعددی وجود دارد که TestRail به افزونه نقص ارسال می کند. TestRail چندین رکورد تست را به اسکریپت ارسال می کند اگر کاربر چندین تست را انتخاب کرده و از آن استفاده کند اضافه کردن نتیجه تست دکمه ای برای اضافه کردن یک نتیجه به تمام آن تست ها به طور همزمان (یک دکمه اقدام انبوه). فشار دادن نقص و برگرداندن شناسه نقص جدید می تواند به شکل زیر باشد:

public function push($context, $input)
{
  // Build the summary/title
  $test = current($context['tests']);
  $summary = 'Failed test: ' . $test->case->title;
 
  if ($context['test_count'] > 1)
  {
    $summary .= ' (+others)';
  }	
 
  // Build the comment (based on the test result comment
  // and links/URLs of the tests
  if ($context['test_change']->comment)
  {
    $comment = $context['test_change']->comment;
    $comment .= "\n";
  }
  else 
  {
    $comment = '';
  }
 
  $tests = $context['tests'];
  foreach ($tests as $test)
  {
    $comment .= "\nTest: ";
    $comment .= $test->case->title;
    $comment .= "\n";
    $comment .= $test->url;
  }
 
  // We hard code a few other details here for demonstration
  // purposes. We could also select these attributes based
  // on context information such as the test suite or user
  $project = $context['project']->name;
  $type = 'Bug';
  $component = '(default)';
 
  // Push the defect and return the new defect ID
  $defect_id = $this->_bugs_push_defect(
    $summary,
    $comment,
    $project,
    $type,
    $component
  );
  return $defect_id;
}

را push متد عنوان/خلاصه و نظر گزارش اشکال را بر اساس نتیجه تست وارد شده و اطلاعات زمینه ایجاد می کند. سپس داخلی را فرا می خواند _bugs_push_defect روش ارسال گزارش اشکال واقعی این روش فراخوانی واقعی یک API سرویس وب یا نوشتن گزارش اشکال در پایگاه داده را اجرا می کند. ما فقط باید شناسه نقص جدید را به TestRail برگردانیم که شناسه را به آن اضافه می کند نقص زمینه برای ما

فشار دادن عیوب با دیالوگ #

بعد از اینکه ساختن یک افزونه نقص را بررسی کردیم که می تواند گزارش های باگ را بدون هیچ گونه تعامل کاربر ارسال کند، می خواهیم افزونه را برای استفاده از یک به روز رسانی کنیم. نقص فشار گفتگو آزمایش‌کننده‌ها می‌توانند با استفاده از این گفتگو، توضیحات باگ را تغییر دهند یا پروژه دیگری را هنگام فشار دادن نقص به ردیاب نقص انتخاب کنند. اولین چیزی که باید تغییر دهیم به روز رسانی است prepare_push روش به جای برگشتن false برای نشان دادن اینکه ما نیازی به گفتگو نداریم، می‌توانیم طرحی از فرم را به این شکل برگردانیم:

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'
      ),
      'description' => array(
        'type' => 'text',
        'label' => 'Description'
      )
    )
  );
}

طرح فرم به TestRail می گوید که به کدام فیلدهای فرم نیاز داریم. اسکریپت نقص در واقع نباید خود دیالوگ را رندر کند، زیرا TestRail به طور خودکار دیالوگ فشار را برای ما بر اساس طرح فرمی که در ما برمی‌گردانیم ارائه می‌کند. prepare_push روش بیشتر طرحواره فرمی که با مثال بالا بازگردانده شده است باید خود توضیحی باشد. ما لیستی از فیلدهای فرم را که TestRail باید نمایش دهد، برمی گردانیم.

کلید آرایه (به عنوان مثال “توضیح”) یک فیلد نامی است که TestRail برای ارسال داده های ورودی به اسکریپت ما استفاده می کند. را نوع از زمینه در حال حاضر می تواند یکی از text، dropdown یا string و به TestRail می گوید که ما به چه نوع زمینه ای نیاز داریم. الف string یک عنصر ورودی متن تک خطی است، در حالی که text می تواند چندین خط ورودی را بپذیرد. را مورد نیاز است گزینه مشخص می کند که آیا فیلد باید توسط کاربر وارد شود یا اینکه اختیاری است و برچسب نحوه فراخوانی فیلد در دیالوگ را مشخص می کند.

را اندازه گزینه عرض فیلد را مشخص می کند، جایی که full منجر به فیلدی می شود که تمام عرض افقی یک گفتگو را پر می کند. اگر مشخص کنید compact به عنوان اندازه فیلد، TestRail سعی می کند چندین فیلد فشرده را در یک خط نمایش دهد (این فقط برای فیلدهای فشرده که در طرح فرم با هم مشخص شده اند صادق است). اگر مشخص کنید به یاد داشته باشید گزینه، TestRail آخرین مقدار وارد شده از یک مقدار را برای پروژه TestRail فعلی ذخیره می کند. این امر به خاطر سپردن مقادیر فرم قبلاً وارد شده (مانند ناحیه پروژه یا جزء فرعی) را آسان می کند تا کاربر مجبور نباشد بارها و بارها همان داده ها را وارد کند. در ادامه این بخش نگاهی به نحوه عملکرد آن خواهیم داشت.

برخی از فیلدها ممکن است به فیلدهای دیگر بستگی داشته باشند. به عنوان مثال، اگر شما یک پروژه فیلد کشویی، مقادیر مربوط به منطقه پروژه فیلد به پروژه انتخاب شده بستگی دارد. TestRail از وابستگی های فیلد برای این کار پشتیبانی می کند. اگر کاربر پروژه دیگری را انتخاب کند، TestRail از اسکریپت نقص برای مناطق پروژه معتبر برای پروژه جدید انتخاب شده می‌پرسد و مقدار آن را پاک می‌کند. منطقه پروژه زمینه وابستگی های فیلد توسط بستگی_به گزینه و در حال حاضر فقط برای فیلدهای کشویی پشتیبانی می شوند. همچنین باید فیلدهایی را که سایر فیلدها می توانند به آنها وابسته باشند علامت گذاری کنید آبشاری (از طریق گزینه مربوطه).

اکنون که طرح فرم را مشخص کرده‌ایم، باید مقادیر کشویی معتبر و متون پیش‌فرض فیلدهای گفتگو را نیز به TestRail بگوییم. این را می توان از طریق انجام داد prepare_field روش هر زمان که TestRail دیالوگ را مقداردهی اولیه می کند یا اگر فیلدهای آبشاری تغییر کند، TestRail از افزونه نقص می خواهد که اطلاعات مربوط به فیلدهای مربوطه را ارائه دهد. TestRail را فرا می خواند prepare_field روش برای هر زمینه TestRail به اطلاعات نیاز دارد.

public function prepare_field($context, $input, $field)
{
  $data = array();
 
  // Take the preferences of the user into account, but only
  // for the initial form rendering (not for cascading loads).
  if ($context['event'] == 'prepare')
  {
    $prefs = arr::get($context, 'preferences');
  }
  else
  {
    $prefs = null;
  }
 
  // And then build the options and default values for the
  // form fields and return them.
  switch ($field)
  {
    case 'summary':
      $data['default'] = 
        $this->_get_summary_default($context);
      break;
 
    case 'description':
      $data['default'] = 
        $this->_get_description_default($context);
      break;
 
    case 'type':
      $data['options'] = $this->_bugs_get_types();
 
      // Select the stored preference or the first item in
      // the list otherwise.
      $default = arr::get($prefs, 'type');
      if ($default)
      {
        $data['default'] = $default;
      }
      else
      {
        if ($data['options'])
        {
          $data['default'] = key($data['options']);
        }
      }				
      break;
 
    case 'project':
      $data['default'] = arr::get($prefs, 'project');
      $data['options'] = $this->_bugs_get_projects();
      break;
 
    case 'component':
      if (isset($input['project']))
      {
        $data['default'] = arr::get($prefs, 'component');
        $data['options'] = $this->_bugs_get_components(
          $input['project']);
      }
      break;
  }
 
  return $data;
}

TestRail سه آرگومان را به ما ارسال می کند prepare_field روش: $context آرگومان حاوی اطلاعات زمینه ای است که از روش های قبلی می دانیم. را $input آرایه حاوی داده های واقعی است که کاربر در محاوره فشار وارد کرده است (این به ویژه برای تماس های کشویی آبشاری مفید است). را $field آرگومان حاوی نام فیلدی است که متد برای آن فراخوانی شده است (همانطور که متد برای فیلدهای ما به طور جداگانه فراخوانی می شود).

TestRail همچنین ترجیحات کاربر فعلی (برای پروژه فعلی) را به عنوان بخشی از آن ارسال می کند $context استدلال بنابراین اولین چیزی که ما prepare_field اگر TestRail در حال حاضر گفتگو را مقداردهی اولیه می کند، روش انجام می دهد که تنظیمات برگزیده کاربر را در یک متغیر محلی کپی می کند. اگر این یک فراخوان بعدی برای یک فیلد کشویی آبشاری باشد، ترجیحات را نادیده می گیریم.

سپس داده های مناسب فیلد را به TestRail برمی گردانیم. ما این کار را در یک دستور سوئیچ بزرگ انجام می دهیم که اساساً کد مربوطه را بسته به فیلدی که TestRail برای آن درخواست داده است، اجرا می کند.

به عنوان مثال، وقتی TestRail مقادیر ممکن را برای the می‌پرسد پروژه در فیلد، کد زیر اجرا می شود:

case 'project':
  $data['default'] = arr::get($prefs, 'project');
  $data['options'] = $this->_bugs_get_projects();
  break;

TestRail اساساً به دو جزئیات در مورد یک فیلد کشویی نیاز دارد: گزینه های احتمالی که کاربر می تواند انتخاب کند و گزینه پیش فرضی که انتخاب شده است. برای فیلدهای متن و رشته، فقط پیش فرض مقدار باید مشخص شود (هیچ گزینه ای وجود ندارد که کاربر بتواند از میان یک فیلد متن یا رشته انتخاب کند). در مثال ما، گزینه پیش فرض بر اساس ترجیح کاربر انتخاب می شود. بنابراین اگر کاربری قبلاً پروژه خاصی را انتخاب کرده است، ما این پروژه را بازیابی می کنیم تا کاربر مجبور نباشد دوباره پروژه را مشخص کند. به طور مشابه، ما متن‌های پیش‌فرض را برای خلاصه/عنوان و قسمت توضیحات بر اساس جزئیات تست تولید می‌کنیم. بنابراین گفتگوی ما شبیه به تصویر زیر خواهد بود.

push-defect.png

در مثال ما، ما واقعاً به طور کامل روش هایی مانند _bugs_get_projects. در یک افزونه کاملاً کاربردی، این روش از API وب سرویس ردیاب نقص برای دریافت لیستی از پروژه ها استفاده می کند (یا فهرستی از پروژه ها را از پایگاه داده می خواند). در مورد ما، ما به سادگی فهرستی از پروژه‌ها با کد سخت را برمی‌گردانیم (اگر پروژه‌های شما مرتباً تغییر نمی‌کنند، این نیز می‌تواند یک روش معتبر برای اجرای آن باشد):

private function _bugs_get_projects()
{
  return array(
    'dh' => 'Datahub',
    'pr' => 'Presenter',
    'wr' => 'Writer'
  );
}

توجه کنید که چگونه از شناسه ها به عنوان کلیدهای آرایه در اینجا استفاده می کنیم. TestRail زمانی که کاربر روی دکمه ارسال کلیک می کند، آن شناسه ها را به عنوان مقدار ورودی به روش فشار ما ارسال می کند. اما قبل از اجرای روش فشار، اجازه دهید به طور خلاصه به آن نگاه کنیم validate_push روش این روش به ما اجازه می دهد تا قبل از پذیرش مقادیر وارد شده برای گزارش اشکال، ورودی کاربر را تأیید کنیم. اگر نیازی به اعتبارسنجی بیشتر داده‌ها ندارید، پیاده‌سازی این روش ضروری نیست، اما برای اعمال فرمت‌ها یا محدودیت‌های ورودی خاص (مانند تاریخ‌ها و غیره) می‌تواند مفید باشد. مثال زیر از validate_push روش محدود کردن تعداد کاراکترها در قسمت خلاصه به ۱۰۰ کاراکتر:

public function validate_push($context, $input) 
{ 
  if (isset($input['summary'])) 
  { 
    if (str::len($input['summary']) > 100) 
    { 
      throw new ValidationException( 'Field Summary cannot exceed 100 characters.'); 
    } 
  } 
}

هنگامی که کاربر گزارش اشکال را وارد کرد، روی دکمه ارسال کلیک کرده و اسکریپت ورودی را از طریق validate_push روش، TestRail را فراخوانی می کند push روش ارسال گزارش اشکال مشابه مثال ما بدون گفتگو در بالا، ما push روش گزارش را ارسال می کند. توجه داشته باشید که چگونه از آن استفاده می کنیم $input استدلال این بار به جای ساختن گزارش اشکال از $context خودمان استدلال کنیم:

public function push($context, $input)
{
  // Push the defect and return the new defect ID
  $defect_id = $this->_bugs_push_defect(
    $input['summary'],
    $input['description'],
    $input['project'],
    $input['type'],
    $input['component']
  );
  return $defect_id;
}

همین! ما اکنون یک پلاگین نقص کامل را با موفقیت پیاده‌سازی کرده‌ایم که از قابلیت‌های جستجو و فشار پشتیبانی می‌کند، می‌تواند توسط مدیر از داخل TestRail پیکربندی شود و از کشویی آبشاری برای لیست پروژه پشتیبانی می‌کند. می توانید نمونه کامل اسکریپت را در زیر دانلود کنید و همچنین نمونه اسکریپت های بیشتر را مشاهده کنید.

دانلود کنید #

می توانید نمونه کامل اسکریپت مورد بحث در این مقاله را از اینجا دانلود کنید:

  نمونه Bugs.php #

فایل PHP با نمونه کامل اسکریپت

برای مشاهده نمونه‌های بیشتر از افزونه‌های نقص واقعی، توصیه می‌شود به پلاگین‌های نقصی که با TestRail ارسال می‌شوند نگاهی بیندازید. می توانید پلاگین های نقص را در فهرست راهنمای نصب TestRail خود در زیر پیدا کنید app/plugins/defects. اگر سؤال دیگری در مورد ساخت یا سفارشی کردن افزونه های نقص دارید، لطفاً دریغ نکنید با ما تماس بگیرید.

 

 

 

 

 

 

 

 

 

 

 

 

 

به‌روزرسانی شده در 1405-04-15

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

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

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

  • Facebook
  • X
  • LinkedIn
  • Pinterest
سفارشی کردن یک پلاگین نقصزبان ها: ترجمه رابط کاربری TestRail

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

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

فهرست مطالب
  •  
  • شروع کردن
  • فایل های افزونه
  • اصول پلاگین
  • پلاگین خود را بسازید
  • ایجاد فایل
  • برگرداندن متا دیتا
  • پیکربندی
  • جستجوی عیوب
  • فشار دادن عیوب بدون دیالوگ
  • فشار دادن عیوب با دیالوگ
  • دانلود کنید
    •   نمونه Bugs.php
تست ریل
  • درباره ما
  • خدمات
  • بلاگ
مطالب مفید
  • امنیت
  • مقالات
logo-samandehi

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

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

حساب کاربری ندارید؟

ثبت نام

ورود

گذرواژه خود را فراموش کرده اید؟