آزمایش مهم است. این یک گام کلیدی قبل از ارائه آنچه ساخته اید به کاربران است - خواه یک سایت کامل یا برنامه یا یک ویژگی جدید باشد - تا بررسی کنید که مطابق انتظار کار می کند. با این حال، بسیاری از آزمایشها هنوز به صورت دستی انجام میشود، و از همکاران یا مهندسان آزمایش خواسته میشود ویژگی جدید را بررسی کرده و مشکلات را گزارش کنند.
در حالی که این آزمایش دستی میتواند کلاسهای خاصی از مشکلات را نشان دهد، ممکن است بسیاری موارد دیگر را از دست بدهد. افرادی که آزمایش را انجام می دهند ممکن است موارد لبه را از دست بدهند یا به طور کامل در آزمایش یک سفر خاص از طریق برنامه شکست بخورند. آنها همچنین تمام اطلاعاتی که شما هنگام نوشتن کد داشتید را ندارند، از مسائل خاصی که کدی را برای جلوگیری از آن وارد کرده اید، اطلاعی ندارند. و با گذشت زمان و اضافه شدن ویژگیهای جدید، آیا آنها به عقب برمیگردند و همه مواردی که قبلاً کار میکردند را مجدداً آزمایش میکنند تا مطمئن شوند که تغییرات آنها را خراب نکرده است؟
به همین دلیل است که تیم کروم به اهمیت تست خودکار اعتقاد دارد. با استفاده از مجموعه آزمایشی که به طور قابل اعتماد و مکرر ویژگی شما را از نظر شکستگی آزمایش می کند، می توانید مطمئن باشید که همه جزئیات کوچک در حال حاضر و پس از توسعه آینده آزمایش می شوند. دانش شما به عنوان توسعهدهنده یک ویژگی در یک آزمایش محصور شده است.
با این حال، ما می دانیم که تست خودکار می تواند چالش برانگیز باشد. به همین دلیل است که تیم Chrome ابزارها و راهنمایی های زیر را ارائه می دهد تا آن را تا حد امکان بدون اصطکاک برای شما فراهم کند.
عروسک گردان
Puppeteer یک کتابخانه Node.js است. این به شما امکان میدهد Chrome، Chromium و Firefox را با استفاده از یک API سطح بالا و با کاربری آسان، خودکار کنید.
در حالی که این API در ابتدا بر اساس پروتکل کروم DevTools بود، هدف این است که پروتکل جدید و پیشرفته WebDriver BiDi را تا پایان سال پایه و اساس Puppeteer کند. WebDriver BiDi، که توسط همه فروشندگان بزرگ مرورگر ایجاد شده است، بسیاری از موارد استفاده از اتوماسیون را ساده می کند و موارد جدید زیادی را فعال می کند و با مرورگرها سازگار است.
اما نیازی به انتظار نیست. API Puppeteer در حال حاضر بسیاری از موارد استفاده از اتوماسیون را فعال می کند که فقط با WebDriver BiDi بهبود می یابد. از تست گرفته تا خزیدن بصری و اتوماسیون فرآیند میتوانید با ویژگیهایی مانند تعاملات صفحه ، رهگیری درخواست و اسکرینشات کارهای زیادی انجام دهید. حتی می توانید از آن برای آزمایش مدل های هوش مصنوعی وب خود در فضای ابری با استفاده از WebGPU و WebGL استفاده کنید.
Puppeteer همچنین توسط ابزارهایی مانند WebdriverIO ، یک چارچوب آزمایشی کامل مرورگر، و ابزار تجزیه و تحلیل جعبه ایمنی حریم خصوصی استفاده میشود و به شما امکان میدهد تا استفاده از کوکیها و دادههای کاربر در سایت خود را بهتر درک کنید.
کروم هدلس
اگر تا به حال Chrome را با استفاده از Puppeteer خودکار کرده باشید، ممکن است متوجه شده باشید که هنگام اجرای آزمایشات، پنجره مرورگری نمایش داده نمی شود. بهطور پیشفرض Puppeteer Chrome را در حالت Headless راهاندازی میکند. این به این معنی است که در حالی که اتوماسیون شما در حال اجرا است، پنجره مرورگر واقعی وجود ندارد.
اما آیا میدانستید که حالت هدلس کروم فقط کروم بدون پنجره نبود، بلکه در واقع یک نسخه کاملاً جداگانه از کروم بود؟ برای مدت طولانی که منجر به سردرگمی و ردیابی اشکالات و مشکلات سخت شد.
از Chrome 112، ما یک حالت Headless جدید را معرفی کردیم که اکنون بر اساس همان پایگاه کد کروم معمولی است. این نه تنها سردرگمی قبلی را کاهش نمی دهد، بلکه عملکردی را نیز به ارمغان می آورد که قبلاً امکان پذیر نبود، مانند استفاده از برنامه های افزودنی در طول اتوماسیون.
Puppeteer از این حالت جدید Headless از نسخه 22 بهعنوان پیشفرض استفاده کرده است. اگر از Chrome Headless از طریق راهحلهای اتوماسیون دیگر استفاده میکنید، میتوانید حالت جدید Headless را با سوئیچ --headless=new
خط فرمان اعمال کنید.
در حالی که حالت جدید هدلس کروم قدرتمندتر است، به اندازه حالت هدلس قدیمی سبک وزن نیست. اگر محدودیت منابع فوق العاده دارید یا به همه ویژگی های Chrome نیاز ندارید، می توانید از حالت قدیمی Headless به عنوان chrome-headless-shell
استفاده کنید .
کروم برای آزمایش
هنگام آزمایش، به کنترل دقیقی بر محیط آزمایش خود نیاز دارید: سیستم عامل، مرورگر و نسخه مرورگر. با بهروزرسانی خودکار Chrome، این ممکن است دشوار باشد.
به همین دلیل ما Chrome for Testing را ایجاد کردیم—نسخهای از Chrome بدون بهروزرسانی خودکار، که در کنار هر نسخه Chrome، برای هر سیستم عامل اصلی منتشر شده و از یک بایگانی نسخهشده قابل دسترسی است. این به شما امکان میدهد گردشهای کاری اتوماسیون خود را در برابر نسخه خاصی از Chrome بدون دردسر زیاد اجرا کنید.
میتوانید باینریهای Chrome for Testing را از داشبورد در دسترس بودن Chrome for Testing ، JSON API یا با ابزار خط فرمان Puppeteer دسترسی داشته باشید.
Puppeteer، حالت Headless بهروزرسانی شده Chrome، و Chrome for Testing تنها بخشی از کاری است که تیم ما در حال حاضر انجام میدهد تا اتوماسیون مرورگر و اجرای آزمایشها را تا حد امکان برای شما راحتتر کند. و ابزارهای مرتبط، مانند DevTools Recorder ، از شما در ایجاد آزمایشها پشتیبانی میکنند: یک جریان کاربر را در Chrome ضبط کنید و آن را دوباره در Puppeteer پخش کنید.
آموزش تست در web.dev
ابزارهای پوشش داده شده در این پست به شما کمک می کند تا تست خودکار خود را بهبود بخشید. اما، اگر تازه شروع کرده اید، می تواند چیزهای زیادی برای درک و یادگیری به نظر برسد. بنابراین، ما یک دوره آموزشی جدید با 10 ماژول ایجاد کردهایم— Learn Testing on web.dev . این دوره آموزشی عمیق، مفاهیم اصلی تست، مکان و نحوه اجرای آزمونها، انواع تستها و آنچه را که واقعاً باید آزمایش کنیم را پوشش میدهد. این یک نقطه شروع عالی برای سفر آزمایشی شما است. هنگامی که موارد ضروری را به دست آوردید، با خیال راحت به مجموعه اتوماسیون تست ما با غواصی عمیق و نکات عملی در مورد سؤالات تستی خاص تر بروید.