تست خودکار مرورگر برای ساخت برنامههای وب قوی و با کیفیت بالا ضروری است. چه در حال اجرای مجموعههای یکپارچهسازی مداوم (CI) باشید، چه در حال انجام تست رگرسیون در نسخههای مختلف مرورگر، یا خودکارسازی تعاملات مرورگر، کروم مجموعهای اختصاصی از ابزارها و حالتهای اجرا را برای توسعهدهندگان و مهندسان اتوماسیون تست ارائه میدهد.
این مرور کلی، محصولات اصلی در اکوسیستم اتوماسیون و تست کروم - Chrome for Testing ، ChromeDriver ، Puppeteer و Chrome Headless mode - را معرفی میکند و توضیح میدهد که چگونه میتوانید از آنها برای گردشهای کاری تست قابل اعتماد و تکرارپذیر استفاده کنید.
کروم برای آزمایش
کروم برای تست (Chrome for Testing) یک نسخه اختصاصی از کروم است که موارد استفاده از تست برنامههای وب و اتوماسیون را هدف قرار میدهد.
هنگام اجرای مجموعههای تست سرتاسری یا خطوط لوله یکپارچهسازی مداوم (CI)، اغلب به نتایج سازگار و قابل تکرار در طول تستهای مکرر نیاز دارید. به جای تکیه بر نصبهای استاندارد مرورگر، Chrome for Testing به شما امکان میدهد نسخههای خاص Chrome را برای محیطهای تست خود دانلود و پین کنید.
ویژگیهای کلیدی
- دانلودهای نسخهبندیشده بر اساس تقاضا: به فایلهای باینری کروم نسخهبندیشده و خاص دسترسی داشته باشید تا همیشه بتوانید دقیقاً همان نسخهای را که انتخاب میکنید، آزمایش کنید.
- فایلهای باینری جفتشده در کانالهای مختلف: برای هر نسخه کروم در تمام کانالها ( پایدار ، بتا ، توسعهدهندگان و Canary )، Chrome for Testing فایلهای باینری کروم منطبق با فایلهای باینری ChromeDriver مربوطه و همچنین پوسته قدیمی Chrome Headless (
chrome-headless-shell) را برای کسانی که هنوز از آن در تستهای خودکار استفاده میکنند، ارائه میدهد. - خودکارسازی آسان دانلود: فایلهای باینری را میتوان به راحتی با استفاده از ابزار خط فرمان
@puppeteer/browsersدانلود کرد یا از طریق داشبورد دسترسیپذیری، درخواست بررسی داد.
بیشتر بدانید
درایور کروم
ChromeDriver یک سرور مستقل متنباز است که استاندارد W3C WebDriver و پروتکل دوطرفه WebDriver BiDi را پیادهسازی میکند. این سرور به عنوان پلی بین چارچوبهای تست مبتنی بر WebDriver (مانند Selenium، WebDriverIO و Nightwatch) و مرورگر کروم عمل میکند.
ویژگیهای کلیدی
- پشتیبانی از W3C WebDriver و WebDriver BiDi: از دستورات اتوماسیون کلاسیک WebDriver و ارتباط دو طرفه بلادرنگ از طریق WebDriver BiDi برای شنود سریع رویدادها، نظارت بر شبکه و رهگیری گزارشها پشتیبانی میکند.
- انتشار همزمان با Chrome برای آزمایش: نسخههای ChromeDriver مستقیماً در زیرساخت Chrome برای آزمایش ادغام میشوند. برای هر نسخه Chrome برای آزمایش، یک نسخه ChromeDriver منطبق به طور همزمان منتشر میشود و سردردهای ناشی از عدم تطابق نسخه را از بین میبرد.
بیشتر بدانید
عروسکگردان
Puppeteer یک کتابخانه جاوا اسکریپت است که توسط گوگل توسعه داده شده و یک API سطح بالا برای کنترل کروم از طریق پروتکل Chrome DevTools (CDP) یا WebDriver BiDi ارائه میدهد.
ویژگیهای کلیدی
- اتوماسیون بدون نیاز به راهاندازی: Puppeteer به طور خودکار یک فایل باینری سازگار با Chrome برای Testing را به طور پیشفرض دانلود میکند و اتوماسیون مرورگر را به صورت پیشفرض فعال میکند.
- کنترل کامل بر کروم: به راحتی اسکرینشات بگیرید، فایلهای PDF تولید کنید، ارسال فرمها را خودکار کنید، درخواستهای شبکه را رهگیری کنید و تستهای رابط کاربری را در حالت headful یا Headless اجرا کنید.
بیشتر بدانید
حالت بدون سر کروم
حالت Headless کروم به شما امکان میدهد کروم را در محیطی بدون نظارت و بدون هیچ رابط کاربری قابل مشاهدهای اجرا کنید. با ارسال پرچم --headless در خط فرمان، کروم به طور تمیز در محیطهای سرور، کانتینرها و خطوط لوله CI/CD اجرا میشود.
ویژگیهای کلیدی
- موتور مرورگر یکپارچه: حالت مدرن Headless (
--headless) دقیقاً همان پیادهسازی مرورگر headful Chrome را به اشتراک میگذارد. - قابلیتهای غنی اتوماسیون و اشکالزدایی: پشتیبانی از ضبط اسکرینشات، تولید PDF، اشکالزدایی از راه دور و پیکربندی صفحه نمایش مجازی.
بیشتر بدانید
مثال: استفاده از این محصولات با هم
در یک گردش کار تست خودکار یا یکپارچهسازی مداوم (CI)، این محصولات با هم کار میکنند تا یک محیط تست تکرارپذیر و بدون نظارت فراهم کنند:
- فایل باینری مرورگر (کروم برای تست): از یک فایل باینری کروم برای تست که به نسخه خاصی پین شده است استفاده کنید تا نتایج تست شما در طول اجراها قطعی باشد.
- حالت اجرا (حالت بدون سر کروم): آن فایل باینری را در حالت بدون سر (
--headless) اجرا کنید تا تستها به طور تمیز در سرورها، کانتینرها یا خطوط لوله CI بدون نمایش گرافیکی اجرا شوند. - درایور اتوماسیون (Puppeteer یا ChromeDriver): مرورگر را با استفاده از یک کتابخانه اتوماسیون مانند Puppeteer یا هر چارچوب تست دیگری که از طریق WebDriver BiDi متصل است، هدایت کنید.
Puppeteer این قطعات را به طور خودکار به هم متصل میکند. پس از نصب، یک فایل باینری سازگار با Chrome for Testing دانلود میکند و به طور پیشفرض آن را در حالت Headless اجرا میکند.
هنگام استفاده از چارچوبهای W3C WebDriver (مانند Selenium یا WebdriverIO)، میتوانید بهطور خودکار یک جفت فایل باینری Chrome for Testing و ChromeDriver منطبق را دانلود کنید و برای اجرا بدون رابط کاربری، از پرچم --headless استفاده کنید.