JUnit5 یکی از محبوبترین چارچوبهای تست واحد در اکوسیستم جاوا است و با کتابخانههای مناسب، میتوان از آن برای سطوح آزمایشی دیگر مانند یکپارچهسازی یا حتی تستهای سیستم با تعاملات UI استفاده کرد. در این آموزش، نحوه ادغام نتایج آزمون تولید شده توسط تست خودکار JUnit5 را در TestRail با استفاده از TestRail CLI. این به شما این امکان را می دهد که نتایج تست خودکار خود را متمرکز کنید و از تمام قابلیت های تحلیلی و گزارش دهی TestRail استفاده کنید.
نمای کلی #
در طول این آموزش، ما از یک پروژه نمونه استفاده خواهیم کرد تا شما را در فرآیند راهاندازی یک پروژه تستهای خودکار JUnit5 که با TestRail CLI سازگار است و بارگذاری نتایج تست تولید شده، راهنمایی کنیم.
پس از مطالعه این آموزش، شما قادر خواهید بود:
- آزمایشات را از یک پروژه ساده JUnit5 اجرا کنید
- TestRail CLI را نصب کنید
- نمونه TestRail خود را پیکربندی کنید
- CLI را اجرا کنید
- تستکیسها و نتایج تست خود را در TestRail مشاهده کنید
پیش نیازها #
برای اینکه بتوانید یک پروژه آزمایشی جاوا JUnit5 را نصب و اجرا کنید، تنها چیزی که نیاز دارید این است که کیت توسعه Java SE را نصب کنید. در زمینه پروژه نمونه ما، شما همچنین باید Maven را نصب کنید که برای مدیریت وابستگی و اجرای مراحل پروژه استفاده می شود.
همچنین برای نصب و اجرای TestRail CLI که برای وارد کردن نتایج تست به TestRail استفاده می شود، به پایتون نیاز دارید.
| پیش نیاز | توضیحات |
|---|---|
| کیت توسعه Java SE ۱۱ | نسخه را برای سیستم عامل خود دانلود کنید و دستورالعمل های جادوگر نصب را دنبال کنید. برای اطمینان از موفقیت آمیز بودن نصب، دستور را اجرا کنید java --version و javac --version از خط فرمان شما و آنها باید نسخه نصب شده را خروجی بگیرند. |
| Maven3 |
نسخه را برای سیستم عامل خود دانلود کنید و آن را در مکان دلخواه خود از حالت فشرده خارج کنید. محل پوشه bin را به متغیر محیطی PATH خود اضافه کنید. برای اطمینان از موفقیت آمیز بودن نصب، اجرا را امتحان کنید |
| پایتون ۳.۱۰.۴ |
نسخه را برای سیستم عامل خود دانلود کنید و دستورالعمل های جادوگر نصب را دنبال کنید. برای اطمینان از موفقیت آمیز بودن نصب، دستورات را اجرا کنید |
نصب نمونه پروژه #
بیایید با واکشی کد پروژه نمونه و نصب وابستگی های مورد نیاز شروع کنیم.
- کلون یا دانلود کنید نمونه پروژه
- خط فرمان خود را در پوشه ریشه پروژه باز کنید و دستور زیر را اجرا کنید
$ mvn clean compile
| مورد نیاز | توضیحات |
|---|---|
| (وابستگی) جونیت-مشتری-موتور | چارچوب اتوماسیون آزمایشی که یک TestEngine برای اجرای آزمایشهای مبتنی بر مشتری بر روی پلت فرم ارائه میکند |
| (وابستگی) junit-jupiter-params |
برنامه افزودنی برای فعال کردن نوشتن تست های پارامتری |
| (وابستگی) testrail-junit-extensions | برنامه افزودنی برای فعال کردن تنظیم ویژگی های گزارش سفارشی (به عنوان مثال: برای افزودن پیوست یا هر ابرداده دیگری) |
| (پلاگین) پلاگین maven-surfire | پلاگینی که آزمایش ها را اجرا می کند و گزارش های سبک JUnit را تولید می کند |
| (پلاگین) افزونه maven-site |
پلاگین برای اجرای هدف سایت maven |
بررسی پروژه نمونه #
از IDE مورد علاقه خود برای باز کردن پروژه نمونه استفاده کنید و شروع به حفاری در فایل های آزمایشی کنید. ما کد تست های خودکار را ساده نگه داشته ایم تا تمرکز این آموزش بر نحوه وارد کردن نتایج اجرا باقی بماند. این آزمون ها از اعتبار سنجی ساده ریاضی تشکیل شده است که در مثال زیر مشاهده می کنید.
package com.idera.testrail.tests;
import com.testrail.junit.customjunitxml.TestRailTestReporter;
import com.testrail.junit.customjunitxml.TestRailTestReporterParameterResolver;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class SumTests {
@Test
@DisplayName("Add Two Numbers")
void AddTwoNumbers() {
assertEquals(3, 1+2, "1 + 2 should equal 3");
}
@Test
@DisplayName("Add Two Numbers With Decimals")
void AddTwoNumbersWithDecimals(TestRailTestReporter customReporter) {
// Sets the "testrail_attachment" property on the report with a path to a file to be uploaded with the test result
customReporter.setProperty("testrail_attachment", "sample_reports/testrail.jpg");
assertEquals(3, 1.5+1.4, "1.5+1.4 should equal 3");
}
@Nested
class AddMoreNumbersTests {
@Test
@DisplayName("Add Three Numbers")
void AddThreeNumbers() {
assertEquals(3, 1+1+1, "1+1+1 should equal 3");
}
}
}
پیوست فایل به گزارش #
با استفاده از testrail-junit-extensions، می توانید ویژگی هایی را به گزارش JUnit در کد خود اضافه کنید. این به شما امکان می دهد تنظیم کنید، به عنوان مثال، testrail_tachment ویژگی هایی با مسیرهای فایل هایی که می خواهید هنگام آپلود گزارش از طریق TestRail CLI به نتیجه آزمایش شما در TestRail پیوست شوند.
برای اینکه بتوانید از قابلیت های ارائه شده توسط شنونده اجرای تست testrail-junit-extensions استفاده کنید، ابتدا باید آن را ثبت کنید. این کار در فایل انجام می شود org.junit.platform.launcher.TestExecutionListener، با تنظیم فضای نام شنونده testrail-junit-extensions در قطعه کد زیر. این فایل قبلاً در پروژه راه اندازی شده است، بنابراین لازم نیست خود را با آن درگیر کنید.
com.testrail.junit.customjunitxml.EnhancedLegacyXmlReportGeneratingListener
سپس در کلاس های آزمایشی خود، به سادگی آنها را با حاشیه نویسی در قطعه کد زیر گسترش دهید و TestRailTestReporter استدلال به روش های تست شما تنظیم خواص به سادگی استفاده از آن است setProperty() روش با کلید و مقدار مورد نظر. در قطعه زیر می توانید نمونه ای از تنظیم یک پیوست را برای ارسال به TestRail به همراه نتیجه آزمایش مشاهده کنید.
@ExtendWith(TestRailTestReporterParameterResolver.class)
class SumTests {
@Test
@DisplayName("Add Two Numbers With Decimals")
void AddTwoNumbersWithDecimals(TestRailTestReporter customReporter) {
// Sets the "testrail_attachment" property on the report with a path to a file to be uploaded with the test result
customReporter.setProperty("testrail_attachment", "sample_reports/testrail.jpg");
assertEquals(3, 1.5+1.4, "1.5+1.4 should equal 3");
}
}
اجرای نمونه پروژه #
در همان خط فرمان، دستور زیر را برای اجرای تست های JUnit5 در پروژه اجرا کنید و نتایج را با فرمت JUnit XML ذخیره کنید.
$ mvn clean compile test
اگر دستور maven به درستی اجرا شده باشد، باید بتوانید نتایج تست خود را در آن مشاهده کنید هدف پوشه باید حاوی یک فایل XML به نام باشد TEST-junit-jupiter.xml. این فایل توسط TestRail CLI تجزیه خواهد شد تا اجرای تست ایجاد شود و در مرحله بعد نتایج تست شما در TestRail بارگذاری شود.
<?xml version="1.0" encoding="UTF-8"?>
<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report-3.0.xsd" version="3.0" name="com.idera.testrail.tests.SumTests$AddMoreNumbersTests" time="0.002" tests="3" errors="0" skipped="0" failures="1">
<properties>
<property name="sun.desktop" value="windows"/>
<property name="awt.toolkit" value="sun.awt.windows.WToolkit"/>
<property name="java.specification.version" value="11"/>
</properties>
<testcase name="AddTwoNumbersWithDecimals" classname="com.idera.testrail.tests.SumTests" time="0.003">
<properties>
<property name="test_summary" value="Add Two Numbers With Decimals"/>
<property name="testrail_attachment" value="sample_reports/testrail.jpg"/>
</properties>
<failure message="1.5+1.4 should equal 3 ==> expected: <3.0> but was: <2.9>" type="org.opentest4j.AssertionFailedError">
<![CDATA[org.opentest4j.AssertionFailedError: 1.5+1.4 should equal 3 ==> expected: <3.0> but was: <2.9>
at org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55)
at org.junit.jupiter.api.AssertionUtils.failNotEqual(AssertionUtils.java:62)
at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:70)
at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:925)
at com.idera.testrail.tests.SumTests.AddTwoNumbersWithDecimals(SumTests.java:20)
(...)
]]>
</failure>
</testcase>
<testcase name="AddTwoNumbers" classname="com.idera.testrail.tests.SumTests" time="0.002"/>
<testcase name="AddThreeNumbers" classname="com.idera.testrail.tests.SumTests$AddMoreNumbersTests" time="0.001"/>
</testsuite>
در حال وارد کردن نتایج به TestRail #
پس از انجام تستها و تولید فایلهای گزارش JUnit، میتوانید به راحتی نتایج تست (و تستکیسها!) خود را به TestRail وارد کنید. این امر باعث می شود تا اجرای تست خودکار شما قابل مشاهده باشد و به شما امکان می دهد تا به تصویر بزرگی از نحوه آزمایش برنامه خود در TestRail نگاه کنید.
نصب TestRail CLI #
با توجه به اینکه قبلا پایتون را روی دستگاه خود نصب کرده اید، نصب TestRail CLI به سادگی اجرای دستور زیر در خط فرمان شما است.
$ pip install trcli
پیکربندی TestRail #
در مرحله دوم، شما باید نمونه TestRail خود را طبق دستورالعمل های زیر پیکربندی کنید.
- را فعال کنید TestRail API با رفتن به مدیر > تنظیمات سایت، روی API برگه، و چک کردن فعال کردن API گزینه
- ایجاد یک فیلد سفارشی به منظور نگاشت کد تستکیسها خودکار خود به موارد واقعی TestRail. شما می توانید این کار را با رفتن به مدیر > سفارشی سازی ها و کلیک کردن فیلد را اضافه کنید. بعد از اینکه به صفحه ایجاد فیلد رسیدید، دو شرط برای این فیلد سفارشی وجود دارد:
- را نام سیستم باید باشد automation_id
- را تایپ کنید باید باشد متن
ارسال نتایج به TestRail #
پس از اتمام نصب TestRail CLI و تکمیل پیکربندی نمونه TestRail، می توانید نتایج تست خود را به سادگی با استفاده از یک خطی مانند زیر آپلود کنید.
$ trcli -y \
> -h https://INSERT-INSTANCE-NAME.testrail.io \
> --project "My Project" \
> --username INSERT-EMAIL \
> --password INSERT-PASSWORD \
> parse_junit \
> --title "JUnit5 Automated Test Run" \
> -f "./target/TEST-junit-jupiter.xml"
توجه داشته باشید که نام فایل بعد از گزینه -f باید با مسیر فایل گزارش شما مطابقت داشته باشد در صورتی که مکان پیش فرض آن را تغییر دهید. همه گزینه های دیگر باید مطابق با نمونه و پروژه TestRail شما باشد. می توانید با علامت زدن گزینه های دیگر خط فرمان را بررسی کنید TestRail CLI README.md از طریق دستورات زیر، در مخزن پروژه، مقاله مستندات TRCLI، یا کمک CLI تعبیه شده فایل کنید.
$ trcli --help
$ trcli parse_junit --help
تجسم نتایج در TestRail #
حالا، اگر شما به تستکیسها در صفحه پروژه TestRail خود، متوجه خواهید شد که TestRail CLI به طور خودکار تستکیسها را که در گزارش نتایج تست شما وجود داشت ایجاد می کند. توجه داشته باشید که با ترکیب کردن یک شناسه اتوماسیون منحصر به فرد اضافه شده است classname و name ویژگی های هر آزمون در گزارش JUnit. این شناسه اتوماسیون برای نگاشت آزمایشهای روی پایه کد اتوماسیون شما به تستکیسها در TestRail استفاده میشود. این بدان معناست که هر بار که TestRail CLI را اجرا میکنید، ابتدا سعی میکند یک تستکیس موجود در TestRail را مطابقت دهد و فقط در صورتی که تستکیس با آن شناسه اتوماسیون وجود نداشته باشد، مورد جدیدی ایجاد میکند.
#
اگر نام آزمایشهای خود، نام فایل یا مکان آن را تغییر دهید، شناسه اتوماسیون آن تستها تغییر میکند و آنها به تستکیسها موجود در TestRail نگاشت نمیشوند.

در اجراهای آزمایشی & نتایج صفحه، ما می توانیم ببینیم که یک آزمایش با نام اجرا می شود اجرای تست خودکار JUnit5 ایجاد شد. با باز کردن آن، میتوانیم جزئیات هر یک از نتایج تست خودکار را بیشتر بررسی کنیم و تجزیه و تحلیل سطح بالایی از علت شکست هر آزمایش انجام دهیم، زیرا پیام خطای ارائه شده توسط چارچوب اتوماسیون تست نیز در نتیجه آزمون ثبت شده است، همانطور که در تصویر زیر مشاهده میکنید.

بعدش چی؟ #
اکنون که نتایج تست خود را روی TestRail متمرکز کردهاید، نه تنها میتوانید نتایج تستهای خودکار خود را به همراه پیامهای خطای آزمایشهای ناموفق بررسی کنید، بلکه میتوانید تلاشهای آزمایشی دستی و خودکار خود را در گزارشهایی که پوشش کامل آزمون پیرامون برنامهتان را به شما نشان میدهند و حتی پیشرفت اتوماسیون آزمایش را ردیابی کنید، تجمیع کنید. همچنین میتوانید یک اشکال را مستقیماً از نتیجه آزمایش خودکار به یک ردیاب مشکل ترجیحی خود گزارش دهید، همانطور که برای نتایج تست دستی خود انجام میدهید!
می توانید به آن نگاه کنید گزارشهای TestRail و ویدئو معیارهای تست برای آشنایی با نحوه استفاده از قابلیت های گزارش دهی TestRail.

