جنکینز بهترین سرور اتوماسیون منبع باز است که صدها افزونه را برای پشتیبانی از ساخت، استقرار و خودکارسازی هر پروژه ارائه می کند. جنکینز را می توان به عنوان یک سرور CI ساده استفاده کرد یا به هاب تحویل پیوسته برای هر پروژه تبدیل کرد و می توان آن را به راحتی از طریق رابط وب آن تنظیم و پیکربندی کرد.
یک مورد رایج برای Jenkins ساختن و آزمایش برنامه شما در زمان ارسال تغییرات کد است. به منظور استفاده کامل از TestRail و مدیریت تمام تستکیسها و نتایج تستات، چه دستی و چه خودکار، می توانید نتایج تست خودکار خود را مستقیماً از Jenkins به TestRail ارسال کنید. در این مقاله به بررسی نحوه استفاده از مزایای آن می پردازیم پروژه های سبک آزاد جنکینز و TestRail CLI تا این وظیفه را به راحتی انجام دهد.
#
لطفا توجه داشته باشید که TestRail CLI مستلزم آن است که یک سازگار گزارش JUnit توسط چارچوب اتوماسیون تست شما تولید می شود.
در این مثال، ما از آن استفاده خواهیم کرد جنکینز همراه با GitHub و Pytest.
پیش نیازها #
#
دستورالعمل های این مقاله فرض می کند که شما از یک عامل جنکینز استفاده می کنید که پایتون ۳.۱۰ را نصب کرده است و باید بتوانید آن را از پوسته خود با استفاده از نام مستعار فراخوانی کنید. python3.10. اگر یک نمونه جنکینز دارید که قبلاً به درستی پیکربندی شده است، می توانید به بخش بعدی بروید.
اگر می خواهید به سرعت یک نمونه Jenkins را برای دنبال کردن مراحل تنظیم کنید، می توانید Dockerfile را بسازید (بر اساس تصویر رسمی جنکینز داکر) در زیر و با دنبال کردن این دستورالعمل ها آن را اجرا کنید:
-
محتوای زیر را در فایلی به نام Dockerfile ذخیره کنید
FROM jenkins/jenkins:lts USER root RUN apt-get update RUN apt-get install -y \ build-essential \ zlib1g-dev \ libncurses5-dev \ libgdbm-dev \ libnss3-dev \ libssl-dev \ libreadline-dev \ libffi-dev \ libsqlite3-dev \ wget \ libbz2-dev RUN wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz && \ tar -xvf Python-3.10.0.tgz && \ cd Python-3.10.0 && \ ./configure --enable-optimizations && \ make -j 2 && \ make altinstall && \ python3.10 --version USER jenkins - خط فرمان خود را در مکانی که فایل را در آن ذخیره کرده اید باز کنید
-
دستورات زیر را اجرا کنید
docker build -t jenkins:local . docker run -p 8080:8080 -p 50000:50000 jenkins:local - کلید روی کنسول را کپی کنید و http://localhost:۸۰۸۰ را در مرورگر خود باز کنید
- جادوگر نصب را دنبال کنید
ایجاد یک شغل جدید جنکینز #
-
نمونه جنکینز خود را باز کنید و کلیک کنید آیتم جدید

-
خود را وارد کنید نام مورد جدید، انتخاب کنید پروژه سبک آزاد و کلیک کنید باشه

راه اندازی مخزن Git #
در این مثال، ما از یک مخزن Git برای واکشی پروژه تست های خودکار از آن استفاده خواهیم کرد. در این صورت، از یک نمونه پروژه از پروژه GitHub خود استفاده خواهیم کرد اتوماسیون-چارچوب-ادغام.
- در مدیریت کد منبع بخش، با انتخاب شروع کنید Git
- را تنظیم کنید URL مخزن (در مثال ما،
https://github.com/gurock/automation-frameworks-integration.git) - را تنظیم کنید مشخص کننده شاخه (در مثال ما،
*/main)

پیکربندی مرحله ساخت #
-
در ساخت بخش، استفاده کنید مرحله ساخت را اضافه کنید کشویی برای اضافه کردن یک شل را اجرا کنید گام

-
در شل را اجرا کنید گام فرمان، اسکریپت را با دستورات مورد نیاز وارد کنید:
- محیط را تنظیم کنید
- پروژه تست ها را اجرا کنید
- نتایج آزمون را با استفاده از TestRail CLI

تجزیه اسکریپت پوسته #
در زیر یک کپی از اسکریپت استفاده شده در بالا و توضیح مختصری در مورد هر بخش آورده شده است.
# Go to test project folder
cd samples/python/pytest
# Setup virtual environment
python3.10 -m venv ./venv
. ./venv/bin/activate
# Install and run test project
pip install -r requirements.txt
pytest --junitxml "reports/junit-report.xml" "./tests" || pytest_exit_code=$?
# Install TestRail CLI and upload test results
pip install trcli
trcli -y \
-h "https://INSTANCE.testrail.io" \
-u "USER_EMAIL" \
-p "API_TOKEN" \
--project "PROJECT NAME" \
parse_junit \
--title "Automated Test Run" \
--run-description "CI Build: ${BUILD_URL}" \
-f "reports/junit-report.xml"
# Exit with Pytest exit code
exit $pytest_exit_code
# Go to test project folder #
اسکریپت با پیمایش به قسمت شروع می شود نمونه پروژه Pytest پوشه پایه که شامل پروژه تست های خودکاری است که می خواهیم اجرا کنیم.
# Setup virtual environment #
گام بعدی ایجاد یک محیط مجازی پایتون است که به این پروژه اختصاص داده شده است، که تمرین خوبی برای اطمینان از شروع از یک پایه ثابت است. پس از ایجاد محیط مجازی، باید آن را فعال کنید، به این معنی که پوسته شما به جای نصب جهانی پایتون از آن استفاده خواهد کرد.
# Install and run test project #
پس از فعال سازی محیط مجازی، می توانید مستقیماً پروژه تست های Pytest را نصب و اجرا کنید. توجه کنید --junitxml "reports/junit-report.xml" گزینه ای که به Pytest دستور می دهد تا یک گزارش سبک JUnit تولید کند تا توسط آن استفاده شود TestRail CLI. شما می توانید جزئیات بیشتر در مورد این را در اسناد مربوط به پیدا کنید ادغام با Pytest. یکی دیگر از جزئیات این اسکریپت است || pytest_exit_code=$? بعد از pytest فرمان این به پوسته میگوید حتی در صورت شکست تستها ادامه دهد، که باعث میشود Pytest یک کد خروج شکست را برگرداند و در غیر این صورت کل اجرای کار را متوقف میکند. بعداً با اسکریپت خارج خواهیم شد pytest_exit_code با توجه به نتایج تست، ساخت را قبول کنید یا شکست بخورید. راههای متعددی برای دستیابی به این رفتار و افزونههایی وجود دارد که ممکن است در انجام این کار به شما کمک کند، این سادهترین راه برای تحقق هدف این مثال بود.
# Install TestRail CLI and upload test results #
اگر اجرای آزمایش با موفقیت به پایان رسید (خواه تست های ناموفق وجود داشته باشد یا نه)، اکنون باید یک گزارش سبک JUnit داشته باشید تا بتوانید نتایج خود را در TestRail بارگذاری کنید. برای انجام این کار، شما فقط نصب کنید TestRail CLI با استفاده از pip و سپس آن را با جزئیات نمونه TestRail خود اجرا کنید. شما باید متغیرهایی را جایگزین کنید -h، -u، -p و --project. یکی دیگر از جزئیات کوچک اما مفید در trcli گزینه call در این اسکریپت است --run-description "CI Build: ${BUILD_URL}". این نشانی وب ساخت فعلی جنکینز را به اجرای تست TestRail شما اضافه می کند، بنابراین می توانید به راحتی به آن بازگردید. به عنوان آخرین توصیه، از رمز عبور یا نشانه API خود مستقیماً روی اسکریپت استفاده نکنید، از آن استفاده کنید مدیر اعتبارنامه جنکینز.
# Exit with Pytest exit code #
همانطور که قبلاً ذکر شد، ما به سادگی با کد خروجی اصلی Pytest از اسکریپت خارج میشویم، که جنکینز را از نتیجه اجرای آزمایشهای خودکار واقعی مطلع میکند.
اجرای کار #
-
بعد از اینکه کار را با تنظیمات بالا ذخیره کردید، زمان اجرای آن فرا می رسد. برای انجام این کار، شما به سادگی دکمه را بزنید اکنون بسازید عمل در پانل سمت چپ

-
پس از اتمام کار، باید بتوانید ببینید که اسکریپت همانطور که انتظار می رود با نگاه کردن به گزارش های موجود در آن اجرا شده است. خروجی کنسول صفحه ساخت اگر اجرای آزمایش بدون هیچ گونه برآمدگی کامل شد و TestRail CLI به درستی پیکربندی شده بود و نتایج تست را گزارش JUnit در مکانی که قرار بود پیدا کرد، باید در گزارشها ببینید که نتایج تست را به نمونه TestRail شما ارسال کرده است.

-
در نهایت، اگر نمونه TestRail خود را باز کنید و به اجراهای آزمایشی & نتایج، باید بتوانید اجرای جدید ایجاد شده را با نام پیدا کنید اجرای تست خودکار و نتایج آزمون خود را به همراه پیوندی به ساخت شغل جنکینز که این آزمایش را ایجاد کرده است، مشاهده کنید.

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








