با GitLab CI/CD میتوانید تمام مراحل مورد نیاز برای ساخت، آزمایش و استقرار کد خود را خودکار کنید. معمولاً تیمها از GitLab برای ذخیره کد منبع خود استفاده میکنند و با قابلیتهای CI/CD، کد خود را در GitLab با ایجاد خطوط لوله برای سادهسازی ساخت و آزمایش کد قبل از استقرار میسازند و آزمایش میکنند.
به عنوان بخشی از خط لوله، تیم ها معمولاً می خواهند آزمایش های خودکار خود را اجرا کنند. برای بهبود دید در تستهای خودکار خود و مدیریت آسانتر همه تستکیسها و نتایج تست – اعم از دستی و خودکار -، میتوانید نتایج تست خودکار خود را مستقیماً از GitLab به TestRail ارسال کنید. در این مقاله به بررسی نحوه استفاده از مزایای آن می پردازیم GitLab CI/CD و TestRail CLI تا این وظیفه را به راحتی انجام دهد.
نتایج تست به TestRail این XML به سبک JUnit را از فریمورک هایی مانند پشتیبانی می کند
یونیت،
TestNG، Pytest، و Cypress – تا زمانی که از استاندارد JUnit XML پیروی کنند
ساختار
همچنین از تجزیه پیشرفته برای فرمت هایی مانند Robot Framework و the
OpenAPI
مشخصات.
#
در این مثال، ما از آن استفاده خواهیم کرد GitLab CI/CD همراه با نمایشنامه نویس.
اگر میخواهید نمونههای بیشتری ببینید، لطفاً نگاهی به Automation Frameworks Integration بیندازید .gitlab-ci.yml فایل
استفاده از TestRail CLI در خطوط لوله GitLab #
خطوط لوله GitLab را می توان با افزودن a ایجاد کرد .gitlab-ci.yml فایل به ریشه مخزن GitLab. این فایل به شما این امکان را می دهد که فرآیندهای خود را به صورت ساختاریافته با استفاده از نحو YML مشخص کنید. شما می توانید مراحل متعدد خط لوله خود را با استفاده از کارهایی که ممکن است به صورت متوالی یا موازی اجرا شوند، تعریف کنید.
ساده ترین راه برای ادغام TestRail با GitLab CI/CD، پیکربندی TestRail CLI برای ارسال نتایج خودکار تست به TestRail در یکی از مراحل در شماست. .gitlab-ci.yml فایل در زیر نمونه ای از نحوه استفاده از خط لوله GitLab آورده شده است نمایشنامه نویس به عنوان چارچوب اتوماسیون تست و TestRail CLI برای ارسال نتایج تست به TestRail به نظر می رسد.
stages:
- playwright_tests
- trcli_results_upload
playwright_tests:
stage: playwright_tests
image: node:latest
artifacts:
when: always
paths:
- test-results/
allow_failure: true
script:
- npm install
- npx playwright install-deps
- npx playwright install
- npx playwright test
trcli_results_upload:
stage: trcli_results_upload
image: python:latest
dependencies:
- playwright_tests
script: |
pip install trcli
trcli -y \
-h https://TESTRAIL_INSTANCE.testrail.io/ \
--project "PROJECT NAME" \
-u USER_EMAIL \
-p PASSWORD \
parse_junit \
-f "test-results/junit-report.xml" \
--run-description "URL: $CI_PIPELINE_URL" \
--title "Automated Tests from GitLab CI/CD"
در تفکیک فایل، چند نکته وجود دارد که باید به آنها توجه کنید:
- در این فایل خط لوله دو کار تعریف شده است:
۱.playwright_testsجایی که ما نمونه پروژه تست های خودکار خود را اجرا می کنیم
۲.trcli_results_uploadجایی که نتایج تولید شده را در TestRail آپلود می کنیم - به طور پیش فرض، کارها به صورت موازی اجرا می شوند. در این مورد، ما می خواهیم نتایج را پس از اتمام آزمایش های خودکار ارسال کنیم، بنابراین از
stagesبخش برای تعیین ترتیب اجرای کارها. - برای به اشتراک گذاشتن مصنوعات تولید شده، در این مورد فایل نتایج JUnit ما، ما را اعلام می کنیم
artifactsمسیر درplaywright_testsکار آن را درdependenciesازtrcli_results_uploadشغل
#
در این مثال، اجرای تست و بارگذاری نتایج در دو کار متفاوت اتفاق میافتد، زیرا از فناوریهای متفاوتی استفاده میکنند، بنابراین به یک ظرف مناسب نیاز دارند. image برای اجرا اگر می خواهید هر دو را در یک کار داشته باشید، باید یک کانتینر با Node.js و Python ایجاد کنید.
شما می توانید در مورد ویژگی های خط لوله در رسمی بیشتر بیاموزید اسناد GitLab CI/CD.
مرحله ۱: تست های خودکار نمایشنامه نویس را اجرا کنید #
را playwright_tests job بر روی یک کانتینر Node.js اجرا می شود که دارای فناوری های اصلی است که تحت آن Playwright می تواند اجرا شود.
همانطور که قبلا ذکر شد، artifacts پارامتر برای در دسترس قرار دادن گزارش JUnit در کار زیر لازم است تا توسط TestRail CLI تجزیه شود. توجه کنید when: always پارامتر، که برای حفظ مصنوعات ضروری است حتی اگر کار به دلیل شکست تست های خودکار نیز شکست بخورد. را paths پارامتر شامل لیستی از مسیرهایی است که می خواهیم در دسترس قرار دهیم، در این مورد test-results/ پوشه، جایی است که ما پروژه Playwright را برای خروجی گزارش JUnit پیکربندی کرده ایم.
را allow_failure از پارامتر استفاده می شود تا خط لوله حتی در صورت شکست تست ها مرحله بعدی را اجرا کند، بنابراین نتایج تست را می توان در TestRail بارگذاری کرد.
را script از لیستی از دستورات پوسته ساخته شده است که با نصب پروژه Playwright و وابستگی های آن و در نهایت اجرای تست های خودکار شروع می شود.
playwright_tests:
stage: playwright_tests
image: node:latest
artifacts:
when: always
paths:
- test-results/
allow_failure: true
script:
- npm install
- npx playwright install-deps
- npx playwright install
- npx playwright test
مرحله ۲: نتایج را در TestRail بارگذاری کنید #
را trcli_upload_results job یک اسکریپت پوسته را روی یک کانتینر پایتون اجرا می کند تا TestRail CLI را نصب و فراخوانی کند تا گزارش JUnit تولید شده توسط Playwright را تجزیه کند و نتایج را به TestRail ارسال کند.
را dependencies پارامتر لازم است تا این کار به آن دسترسی داشته باشد playwright_tests فایل نتایج JUnit، برای آپلود نتایج ضروری است.
TestRail CLI یک بسته پایتون است که در فهرست بسته Python میزبانی می شود (PyPI) بنابراین، برای نصب آن، به سادگی دستور را اجرا می کنیم pip install trcli.
پس از نصب TestRail CLI، چند آرگومان اجباری مانند آدرس نمونه TestRail و اعتبار، پروژه ای که می خواهید به آن گزارش دهید، عنوان اجرای تست و مسیر گزارش JUnit وجود دارد. آرگومان توصیف run اجباری نیست، اما توصیه می کنیم از آن برای افزودن پیوندی از TestRail به اجرای خط لوله GitLab خود استفاده کنید. این پیوند را می توان با استفاده از متغیر از پیش تعریف شده GitLab به دست آورد $CI_PIPELINE_URL، مانند قطعه زیر.
برای اطلاعات بیشتر در مورد استدلال، لطفاً TestRail CLI مستندات
trcli_results_upload:
stage: trcli_results_upload
image: python:latest
dependencies:
- playwright_tests
script: |
pip install trcli
trcli -y \
-h https://TESTRAIL_INSTANCE.testrail.io/ \
--project "PROJECT NAME" \
-u USER_EMAIL \
-p PASSWORD \
parse_junit \
-f "test-results/junit-report.xml" \
--run-description "URL: $CI_PIPELINE_URL" \
--title "Automated Tests from GitLab CI/CD"
راه اندازی نمونه کاری شما #
برای استفاده از خطوط لوله CI/CD GitLab، باید یک حساب کاربری فعال داشته باشید GitLab و همچنین کد خود را در آنجا میزبانی کنید.
ایجاد مخزن خود #
ما میخواهیم خط لوله GitLab را با استفاده از ما راهاندازی کنیم نمونه پروژه نمایشنامه نویس، که می توانید با بررسی مستندات ما در مورد آن بیشتر بدانید ادغام با نمایشنامه نویس.
با دنبال کردن مراحل زیر، میتوانید به سرعت یک نمونه کار از خط لوله GitLab را راهاندازی کنید که یک پروژه آزمایشی خودکار را اجرا میکند و نتایج را به TestRail ارسال میکند.
- یک پروژه جدید در GitLab ایجاد کنید
- پروژه جدید ایجاد شده خود را کلون کنید در ماشین محلی شما
- دانلود فایل ها در نمونه پروژه نمایشنامه نویس و آنها را به پروژه محلی خود اضافه کنید
- ایجاد یک
.gitlab-ci.ymlدر ریشه پروژه خود فایل کنید و نمونه قطعه خط لوله ارائه شده در این مقاله را اضافه کنید - جایگزین کنید TESTRAIL_INSTANCE، نام پروژه، USER_EMAIL و رمز عبور در محتوای فایل با استفاده از مشخصات خود (توصیه می کنیم رمز عبور را مستقیماً جایگزین نکنید و استفاده کنید متغیرهای GitLab در عوض)
- فایل های خود را به مخزن پروژه خود فشار دهید در GitLab
اجرای خط لوله #
- این خط لوله برای CI/CD طراحی شده است، به این معنی که هر بار که یک commit جدید وجود داشته باشد اجرا می شود. اولین باری که کد خود را به GitLab فشار میدهید، خط لوله بلافاصله اجرا میشود و پروژه تستهای خودکار را اجرا میکند و نتایج را به TestRail ارسال میکند. برای دیدن خط لوله خود، باید به CI/CD > خطوط لوله در پنل سمت چپ شما باید جزئیات اجرای خط لوله اول را ببینید و اگر همه چیز مطابق انتظار بود، خط لوله باید با یک هشدار عبور می کرد.
- با کلیک بر روی وضعیت از خط لوله، یک صفحه جدید با جزئیات اجرایی بیشتر نمایش داده می شود که یک نمای کلی از خط لوله خود را ارائه می دهد که توسط
playwright_testsشغلی که شکست خورد وtrcli_results_uploadشغلی که موفقیت آمیز بود، همانطور که در تصویر زیر مشاهده می کنید.
- با کلیک بر روی
playwright_testsjob، میتوانید جزئیات اجرای آن کار، مانند مدت زمان، مصنوعات و گزارشهای کنسول را ببینید. با یک مرور سریع در لاگ های کنسول، می بینیم که ۱ تست ناموفق بود، که کار را نیز ناموفق نشان می دهد.
- با کلیک بر روی
trcli_results_uploadشغل، شما می توانید همان اطلاعات را ببینید. با نگاه کردن به گزارشها، از خروجی TestRail CLI، متوجه میشویم که ۷ نتیجه آزمایش به TestRail ارسال شده است و یک URL برای رفتن به اجرای تست که این نتایج تحت آن ارسال شدهاند در دسترس است.
- با کلیک بر روی URL ارائه شده در گزارشها، میتوانیم بلافاصله به TestRail برویم و اجرای تست جدید ایجاد شده را با تمام نتایج تست از پروژه آزمایشهای خودکار Playwright خود ببینیم. همچنین به URL بازگشت به خط لوله GitLab توجه کنید، که برای حفظ قابلیت ردیابی در صورت نیاز به اشکال زدایی هر مشکلی که در طول اجرای تست رخ داده است مفید است.

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


