#
را فرمت JUnit XML یکی از پرکاربردترین راهها برای چارچوبهای اتوماسیون تست و ابزارهای CI برای ذخیره و اشتراکگذاری نتایج تست است.
را TestRail CLI می تواند:
- گزارش JUnit XML را بخوانید
- محتوای آن را به موجودیت های TestRail (مجموعه ها، بخش ها، موارد، نتایج)
- آنها را با استفاده از API به TestRail وارد کنید
این راهنما توضیح می دهد:
- نحوه نگاشت JUnit XML به TestRail
- چگونه
<testsuite>و<testcase>برچسب ها پردازش می شوند - نحوه استفاده خواص سفارشی در JUnit برای TestRail
- چگونه به نتایج اتوماسیون نقشه به وضعیت های سفارشی با
<case_results_statuses>
نمونه گزارش JUnit #
<testsuites name="test suites root">
<testsuite failures="0" errors="0" skipped="1" tests="1" time="3049" name="tests.LoginTests">
<properties>
<property name="setting1" value="True"/>
<property name="setting2" value="value2"/>
</properties>
<testcase classname="tests.LoginTests" name="test_case_1" time="159">
<skipped type="pytest.skip" message="Please skip">skipped by user</skipped>
</testcase>
<testcase classname="tests.LoginTests" name="test_case_2" time="650">
</testcase>
<testcase classname="tests.LoginTests" name="test_case_3" time="121">
<failure type="pytest.failure" message="Fail due to...">failed due to...</failure>
</testcase>
</testsuite>
</testsuites>
تگ های JUnit به TestRail Mapping #
هنگامی که توسط TestRail CLI تجزیه می شود، طبق جدول زیر، هر تگ گزارش JUnit به یک موجودیت TestRail تبدیل می شود.
| تگ های XML JUnit | موجودیت TestRail |
|---|---|
<testsuites> |
سوئیت |
<testsuite> |
بخش |
<testcase> |
تستکیس |
JUnit <testsuite> دست زدن #
عناصر با <testsuite> برچسب تبدیل می شوند بخش های TestRail و خصوصیات آنها به توضیحات اجرای تست در TestRail اضافه می شود. در زیر می توانید نمونه ای از a را مشاهده کنید <testsuite> با <property> برچسب های کودک
<testsuites name="test suites root">
<testsuite failures="0" errors="0" skipped="1" tests="1" time="3049" name="tests.LoginTests">
<properties>
<property name="setting1" value="True"/>
<property name="setting2" value="value2"/>
</properties>
(...)
</testsuite>
</testsuites>
| ویژگی یا برچسب | نقشه برداری TestRail |
|---|---|
<name> |
نام بخش |
<property> |
نامها و مقادیر ویژگیها به هم پیوسته و به شرح اجرای تست اضافه میشوند |
JUnit <testcase> دست زدن #
عناصر با <testcase> برچسب تبدیل می شوند تستکیسها TestRail و تست مربوطه نتایج
| صفت | نقشه برداری TestRail |
|---|---|
<name> |
نام تستکیس |
<time> |
زمان سپری شده نتیجه آزمایش |
- هر کدام
<testcase>به صورت الف وارد می شود کیس تست TestRail با یک نتیجه آزمایش - نتیجه وضعیت توسط برچسب های فرزند تعیین می شود
اگر برچسب وجود نداشته باشد، نتیجه آزمایش خواهد بود گذشت، در حالی که اگر وجود داشته باشد <failure> نتیجه آزمایش را تگ کنید شکست خورد، و اگر وجود داشته باشد <skipped> نتیجه را تگ کنید دوباره تست کنید. نمونه هایی در جدول زیر قابل مشاهده است.
| ساختار XML | وضعیت TestRail |
|---|---|
|
گذشت |
|
شکست خورد |
|
دوباره تست کنید |
داده ها در ویژگی ها و متن از <failure> و <skipped> برچسب ها در قالبی مانند زیر به نظر نتیجه آزمایش اضافه می شود.
Type: errorType
Message: Failure message
Text: Error (stacktrace)
افزودن داده های تست سفارشی از طریق <property>
#
می توانید اضافه کنید فیلدها، مراحل، نظرات و پیوست های اضافی با استفاده از نام های خاص. ویژگی های پشتیبانی شده و معنای آنها در جدول زیر آمده است.
| نام | نقشه برداری TestRail |
|---|---|
testrail_case_field |
فیلد تستکیس (field_name:field_value) |
testrail_result_field |
فیلد نتیجه آزمایش (field_name:field_value) |
testrail_result_comment |
متن را به نظر نتیجه اضافه می کند |
testrail_result_step |
یک مرحله و وضعیت اضافه می کند (passed، failed، untested) |
testrail_attachment |
آپلود پیوست در مسیر نتیجه آزمایش (حداکثر ۲۵۶ مگابایت) |
در زیر نمونه ای از گزارش با تمام فیلدهای فهرست شده است. برای اطلاعات بیشتر در مورد نحوه استفاده از این ویژگی ها، لطفاً به ادامه مطلب مراجعه کنید صفحه نمونه های استفاده از TestRail CLI.
<testsuites name="test suites root">
<testsuite failures="0" errors="0" skipped="1" tests="1" time="3049" name="tests.LoginTests">
<testcase classname="tests.LoginTests" name="test_case_1" time="650">
<properties>
<property name="testrail_case_field" value="custom_case_custom_preconds:My preconditions"/>
<property name="testrail_case_field" value="custom_case_type_id:3"/>
<property name="testrail_case_field" value="refs:SAMPLE-1,SAMPLE-2"/>
<property name="testrail_result_field" value="custom_result_version:1.1"/>
<property name="testrail_result_field" value="custom_result_custom_field:custom_value"/>
<property name="testrail_result_step" value="passed: Insert login credentials"/>
<property name="testrail_result_step" value="failed: Click submit"/>
<property name="testrail_result_step" value="untested: User should be logged in"/>
<property name="testrail_result_comment" value="Finding 1"/>
<property name="testrail_result_comment" value="Finding 2"/>
<property name="testrail_attachment" value="path_to/logs.log"/>
<property name="testrail_attachment" value="path_to/screenshot.jpg"/>
</properties>
</testcase>
</testsuite>
</testsuites>
نگاشت تست های خودکار به شناسه های موردی TestRail موجود #
هنگام استفاده از TestRail CLI برای وارد کردن نتایج JUnit XML، میتوانید با استفاده از test_id دارایی
این به شما امکان می دهد به جای ایجاد خودکار موارد جدید، تست های اتوماسیون خود را با موارد مربوطه در TestRail پیوند دهید.
چرا از نگاشت موارد صریح استفاده کنیم؟ #
نگاشت صریح زمانی مفید است که:
- تیم شما حفظ می کند پوشش دستی و خودکار برای تستکیسها مشابه
- شما می خواهید نتایج اتوماسیون برای به روز رسانی موارد TestRail موجود
- شما می خواهید گزارش دهی ثابتی داشته باشید خطوط لوله CI/CD و TestRail اجرا می شود
نقشه برداری با استفاده از <property> برچسب داخل a <testcase> عنصر
فرمت های نقشه برداری پشتیبانی شده #
را test_id اموال هر دو را پشتیبانی می کند مجرد و چندگانه شناسه های کیس TestRail.
۱. نگاشت به یک کیس تست ریل #
اگر تست خودکار دقیقاً با یک تستکیس TestRail مطابقت دارد، از شناسه تک موردی استفاده کنید. مثال:
<testcase classname="tests.LoginTests" name="test_valid_login" time="120">
<properties>
<property name="test_id" value="C123"/>
</properties>
</testcase>
آنچه در TestRail اتفاق می افتد
- نتیجه آزمون خودکار در آپلود خواهد شد کیس TestRail
C123 - وضعیت نتیجه (مورد قبولی، ناموفق، آزمایش مجدد) از ساختار نتیجه آزمون JUnit تعیین می شود
۲. نگاشت یک تست خودکار به چندین کیس TestRail #
یک تست خودکار می تواند چندین مورد TestRail را تأیید کند.
برای حمایت از این سناریو، test_id دارایی الف را می پذیرد لیست شناسه های پرونده جدا شده با کاما. مثال:
<testcase classname="tests.LoginTests" name="test_login_validation" time="200">
<properties>
<property name="test_id" value="C123, C456, C789"/>
</properties>
</testcase>
آنچه در TestRail اتفاق می افتد #
هنگامی که چندین شناسه پرونده ارائه می شود:
- TestRail CLI ایجاد می کند نتایج تست فردی برای هر مورد ارجاع شده
- هر مورد (
C123،C456،C789) دریافت می کند وضعیت نتیجه یکسان - نتایج به طور جداگانه در اجرای تست TestRail ظاهر می شوند
نتیجه مثال در TestRail:
| کیس TestRail | نتیجه |
|---|---|
| C123 | گذشت |
| C456 | گذشت |
| C789 | گذشت |
این رویکرد زمانی مفید است که الف تست اتوماسیون واحد چندین الزام یا رفتار را تأیید می کند توسط موارد مختلف TestRail نشان داده شده است.
نمونه گزارش JUnit با نگاشت موردی #
در زیر یک مثال ساده نشان داده شده است که هر دو سبک نقشه برداری را نشان می دهد.
<testsuites name="automation suite">
<testsuite name="Login Tests">
<!-- Single case mapping -->
<testcase classname="tests.LoginTests" name="test_valid_login" time="120">
<properties>
<property name="test_id" value="C123"/>
</properties>
</testcase>
<!-- Multiple case mapping -->
<testcase classname="tests.LoginTests" name="test_login_validation" time="200">
<properties>
<property name="test_id" value="C123, C456, C789"/>
</properties>
</testcase>
</testsuite>
</testsuites>
بهترین شیوه ها #
- مطمئن شوید که همه شناسههای مورد ارجاعشده از قبل در TestRail وجود دارند.
- استفاده کنید شناسه های جدا شده با کاما بدون کاراکتر اضافی (به عنوان مثال،
C123, C456). - هنگامی که یک تست اتوماسیون را پوشش می دهد از این ویژگی استفاده کنید چند تستکیس دستی.
اگر ویژگی نگاشت ارائه نشده باشد، TestRail CLI تلاش خواهد کرد تا با استفاده از موارد موارد را ایجاد یا مطابقت دهد شناسه اتوماسیون تولید شده از JUnit classname و name صفات.
خوراکی های کلیدی #
- JUnit XML یک فرمت جهانی برای نتایج اتوماسیون است.
- را TestRail CLI آنها را به عنوان Suites، Sections، Cases و Results به TestRail وارد می کند.
-
case_results_statusesتضمین می کند که وضعیت های اتوماسیون با گردش کار TestRail شما هماهنگ است. - استفاده کنید خواص سفارشی برای غنی سازی نتایج با زمینه، مراحل و پیوست های اضافی.
-
آزمایشهای خودکار میتوانند نقشهبرداری کنند یک یا چند مورد TestRail
-
استفاده کنید
test_idدارایی در JUnit<testcase>عنصر -
با استفاده از شناسههای موردی متعدد پشتیبانی میشوند مقادیر جدا شده با کاما
-
هر مورد دریافت می کند یک نتیجه فردی در TestRail
مراحل بعدی #
- بررسی کنید پروژه نمونه Cypress-saucectl در GitHub برای مثال های عملی
- بررسی کنید مستندات TestRail CLI برای پارامترهای اضافی
- از طریق پشتیبانی GitHub یا TestRail تیم خود به بهبودها کمک کنید یا سؤالات خود را مطرح کنید.
🎓 سطح مهارت های تست خود را با آکادمی تست ریل!
دورههای رایگان و خودسرانه را کاوش کنید تا بیشترین بهره را از TestRail ببرید.


