محیط اجرایی مبتنی بر زبان راست.
این برنامه در یک فرآیند واحد از زبان برنامهنویسی راست (Rust) اجرا میشود. هیچ وابستگی به مرورگر خارجی، WebDriver یا Node.js ندارد.
منبع باز / جعبه (یا ظرف)
"browser-tester" یک محیط تست شبیه به مرورگر است که به طور کامل با زبان راست (Rust) پیادهسازی شده و عملکرد آن قابل پیشبینی است. این ابزار، رفتار عناصر DOM و رویدادها را بدون نیاز به اجرای یک مرورگر واقعی، بررسی و اعتبارسنجی میکند.
ابزار "browser-tester" بیشتر بر روی تستهای مربوط به رفتار قابل پیشبینی فرمها و رابط کاربری تمرکز دارد، تا بررسی سازگاری کامل با موتورهای رندرینگ مختلف مرورگرها.
این برنامه در یک فرآیند واحد از زبان برنامهنویسی راست (Rust) اجرا میشود. هیچ وابستگی به مرورگر خارجی، WebDriver یا Node.js ندارد.
این سیستم طوری طراحی شده است که امکان انجام تستهای تکرارپذیر را فراهم کند: شامل یک ساعت شبیهسازیشده، یک منبع تصادفی قابل پیشبینی و رابطهای برنامهنویسی (API) برای کنترل دقیق زمانبندی.
این ابزار از جریانهای کاری مشابه مرورگرهای وب پشتیبانی میکند، از جمله: انتخاب عناصر، اجرای اسکریپتهای درونخطی، انتشار رویدادها و بهروزرسانیهای DOM (مدل شیء سند).
چرخه بازخورد سریع برای تستهای رابط کاربری مبتنی بر فرم، در حالی که خروجیهای مربوط به خطاها بر روی انتخابگرها و مقادیر مورد انتظار/واقعی متمرکز میماند.
یک محیط تست (هarness) با استفاده از HTML ایجاد کنید، تعاملات را اجرا کنید و نتایج مربوط به DOM را بررسی کنید. با یک ساختار آزمایشی کوچک شروع کنید و سپس با استفاده از تایمرها و APIهای شبیهسازیشده، آن را گسترش دهید.
نصب کنید.
اضافه کردن بار کاری با نام "browser_tester".
مثال ساده.
عملیات اصلی تست DOM: `Harness::from_html`، `type_text`، `set_checked`، `click`، `submit`، و همچنین ابزارهای کمکی برای بررسی متن، مقدار، وضعیت انتخابشده بودن و وجود یک عنصر.
کنترل رفتار ناهمزمان را با استفاده از یک ساعت شبیهسازیشده انجام دهید. زمان را به صورت قطعی با استفاده از توابع `advance_time`، `advance_time_to`، `flush` و همچنین با بررسی تنظیمات تایمر، جلو ببرید.
برای حفظ جداسازی تستها، از توابع `set_fetch_mock`، `enqueue_confirm_response` و `enqueue_prompt_response` برای شبیهسازی پاسخهای دریافتی و نتایج تعاملات استفاده کنید.
برای فعالسازی گزارشهای جزئی و استخراج اطلاعات مربوط به جریان رویدادها و زمانبندیها در هنگام بروز خطا در تستها، از این قابلیت استفاده کنید. این ویژگی برای اشکالزدایی و بررسی ترتیب رویدادها و نحوه عملکرد اقدامات پیشفرض بسیار مفید است.
اگر برای مجموعه تستهای خود به APIهای اضافی مرورگر نیاز دارید، یک درخواست (issue) با یک نمونه آزمایشی ساده ایجاد کنید تا در مورد دامنه و اولویت آن بحث شود.