Travis CI یک ابزار CI/CD (یکپارچهسازی و استقرار مستمر) است که به تیمهای توسعه کمک میکند کد را سریعتر منتشر کنند و فرایندهای build، test و deployment برنامههای خود را خودکار کنند. با Travis CI، مهندسان میتوانند کل مجموعه تستهای خود را برای commitهای جدید بهصورت خودکار اجرا کنند و احتمال خطای انسانی را کاهش دهند.
یکی از کاربردهای رایج Travis CI این است که هر بار تغییرات کد ارسال میشود، برنامه شما build و test شود. برای استفاده کامل از TestRail و مدیریت همه test caseها و نتایج تست، چه دستی و چه خودکار، میتوانید نتایج تستهای خودکار را مستقیماً از Travis CI به TestRail ارسال کنید. در این مقاله میبینیم چگونه میتوانید بهسادگی از Travis CI و TestRail CLI برای انجام این کار استفاده کنید.
لطفاً توجه داشته باشید که TestRail CLI نیاز دارد که یک گزارش JUnit XML سازگار توسط فریمورک test automation شما تولید شود.
استفاده از TestRail CLI در buildهای Travis CI #
فرایندهای خودکار را میتوان در Travis CI با استفاده از یک .travis.yml فایل پیکربندی کرد. این .travis.yml فایل فرایند build را توصیف میکند. این فایلهای YAML به شما امکان میدهند فرایند build خود را بهشکلی ساختاریافته مشخص کنید. در بخش .travis.yml ، میتوانید برای هر زبان برنامهنویسی یک محیط build پیشفرض و مجموعهای پیشفرض از phaseها را مشخص کنید.
سادهترین راه برای یکپارچهسازی TestRail با Travis CI این است که .travis.yml را طوری پیکربندی کنید که از TestRail CLI برای ارسال نتایج تستهای خودکار به TestRail استفاده کند. در ادامه نمونهای میبینید که نشان میدهد یک workflow file با استفاده از TestRail CLI برای ارسال نتایج تست به TestRail چه شکلی دارد.
dist: xenial
jobs:
include:
- stage: Run tests and upload results to TestRail
language: python
python: 3.9-dev
addons:
chrome: stable
script:
- mvn clean compile test
after_script:
- pip install trcli
- trcli -y
-h https://INSTANCE.testrail.io/
--project "PROJECT NAME"
-u USER_EMAIL
-p PASSWORD
parse_junit
--title "Automated Tests from Travis workflow"
--run-description $TRAVIS_JOB_WEB_URL
-f "./target/surefire-reports/TEST-TestSuite.xml"
یک build در Travis CI دنبالهای از stageها است. هر stage از دنبالهای از jobها تشکیل میشود. هر stage در Travis CI بهصورت یک واحد مستقل در یک container تازه یا یک ماشین مجازی اجرا میشود.
با بررسی .travis.yml ، به چند نکته مهم میرسیم.
- برای اجرای این build، Xenial Build Environment را انتخاب کردهایم.
- این build فقط از یک job تشکیل شده است که مسئول اجرای تستها و آپلود نتایج تست در TestRail است.
- در این job دو phase داریم. phase اول
scriptتستها را اجرا میکند و phase دومafter_scriptبرای نصب TestRail CLI و آپلود نتایج تست در TestRail استفاده میشود.
در مجموع، این job شامل مراحل زیر است:
-
Set up environment for the test automation framework -
Add Chrome browser -
Run the tests Upload the results to TestRail
مرحله ۱: آمادهسازی محیط برای فریمورک test automation #
در job خود از محیط build در Xenial ، که نسخه Python «3.8.13» را از قبل نصب دارد؛ اما برای استفاده از TestRail CLI، باید نسخه جدیدتری از Python را نصب کنیم. برای این کار، نسخه Python «3.9.dev» را با استفاده از کلید python در بخش language specification اضافه میکنیم.
jobs:
include:
- stage: Run tests and upload results to TestRail
language: python
python: 3.9-dev
مرحله ۲: اضافه کردن مرورگر Chrome #
افزونه Google Chrome به buildهای Travis CI امکان میدهد Google Chrome را هنگام اجرا نصب کنند. میتوانید نسخه stable یا beta Chrome را نصب کنید.
addons:
chrome: stable
مرحله ۳: اجرای تستها #
این فاز بهصورت script در job تعریف میشود. این فاز مسئول اجرای تستهاست.
script:
- mvn clean compile test
مرحله ۴: آپلود نتایج در TestRail #
این فاز بهصورت after_script تعریف میشود. این کار دو عمل جداگانه انجام میدهد:
- نصب TestRail CLI.
- فراخوانی TestRail CLI برای آپلود گزارش JUnit که توسط framework اتوماسیون تست شما تولید شده و ارسال نتایج به TestRail.
TestRail CLI یک package پایتون است که در Python Package Index (PyPI) میزبانی میشود. برای نصب آن، دستور را اجرا میکنیم pip install trcli.
بعد از اینکه TestRail CLI نصب شد، چند آرگومان اجباری وجود دارد که باید همراه با after_script دستور ارسال کنیم؛ مثل آدرس instance TestRail و credentials شما، projectی که میخواهید به آن گزارش بدهید، عنوان test run، و مسیر گزارش JUnit.
برای اطلاعات بیشتر درباره آرگومانها، لطفاً به مستندات TestRail CLI مراجعه کنید.
after_script:
- pip install trcli
- trcli -y
-h https://INSTANCE.testrail.io/
--project "PROJECT NAME"
-u USER_EMAIL
-p PASSWORD
parse_junit
--title "Automated Tests from Travis workflow"
--run-description $TRAVIS_JOB_WEB_URL
-f "./target/surefire-reports/TEST-TestSuite.xml"
نمونه عملی با TestNG و Selenium #
Travis CI از ابزارهای کنترل نسخه زیادی مانند GitHub، GitLab و Bitbucket پشتیبانی میکند، اما در این مقاله repository گیتهاب را در نظر میگیریم.
در مثال زیر میبینید چطور selenium tests را در Travis CI اجرا کنید و سپس نتایج را به TestRail گزارش دهید.
- یک repository جدید در GitHub بسازید
- فایلها را از TestNG-Selenium sample project
- مقادیر TESTRAIL_INSTANCE ، PROJECT NAME ، USER_EMAIL ، و PASSWORD را در
.travis.ymlfile با اطلاعات خودتان جایگزین کنید. توصیه میکنیم password را مستقیم در file قرار ندهید و بهجای آن از Travis CI environment variables استفاده کنید. - project را در repository خودتان در GitHub آپلود کنید.
اجرای workflow #
- به Travis CI website بروید و روی Sign In کلیک کنید.

-
با حساب GitHub خود وارد Travis CI شوید. GitHub credentials.

- در Dashboard Travis CI میتوانید همه Active repositories را ببینید و گزینه Trigger a build را داشته باشید.

- برای repository TestNG-Selenium یک build اجرا کنید.
- بعد از trigger شدن build، در dashboard روی لینک repository کلیک کنید. در این صفحه میتوانید وضعیت build را بهصورت Running ببینید.

- پس از کامل شدن build، همانطور که در تصویر زیر میبینید، وضعیت آن با رنگ سبز نمایش داده میشود.

- در Job log میتوانید ببینید که testهای خودکار با موفقیت اجرا شدهاند و نتایج test در TestRail آپلود شده است.




- instance مربوط به TestRail را باز کنید و نتایج Test Run خود را ببینید.

مرحله بعد چیست؟ #
حالا که نتایج testهای خود را در TestRail متمرکز کردهاید، میتوانید نتایج test runهای خودکار و پیامهای خطای testهای ناموفق را بررسی کنید. همچنین میتوانید فعالیتهای testing دستی و خودکار را در گزارشهایی کنار هم ببینید که پوشش کامل test برای اپلیکیشن شما را نشان میدهند و حتی روند پیشرفت test automation را دنبال میکنند. علاوه بر این، همانطور که برای نتایج testهای دستی انجام میدهید، میتوانید bug را مستقیماً از نتیجه test خودکار به issue tracker دلخواه خود گزارش کنید.
برای آشنایی بیشتر میتوانید ویدیوی Reports and Test Metrics در TestRail را ببینید و یاد بگیرید چطور از قابلیتهای گزارشدهی TestRail بهتر استفاده کنید.











