تکنولوژی نوین اینترنتی
Laravel Dusk ابزاری برای تست خودکار صفحات وب در محیط مرورگر واقعی (با استفاده از ChromeDriver) است. اما میتونیم ازش برای تست APIها هم استفاده کنیم، بهویژه زمانی که API در قالب UI یا فرمها فراخوانی میشه.
این فایل در مسیر زیر ساخته میشه:
اگه API شما از طریق یک فرم HTML یا دکمه با AJAX فراخوانی میشه، میتونی با Dusk همون رفتار رو شبیهسازی کنی.
فرض کن یک دکمه در صفحه لاگین داریم که به /api/login
درخواست POST میفرسته:
🔎 این روش برای تست APIهایی که از طریق مرورگر فرستاده میشن (فرم یا JavaScript) بسیار کاربردیه.
Dusk برای این سناریو مناسب نیست چون مرورگر UI محور هست. بهتره از Laravel HTTP Test استفاده کنی:
📌 برای این نوع تستها بهتره از تستهای معمول Feature
یا API
استفاده کنی، نه Dusk
.
نکته | توضیح |
---|---|
اجرای تست | php artisan dusk |
اجرای فقط یک تست | php artisan dusk tests/Browser/ApiTest.php |
مشاهده مرورگر | در تستهای شکست خورده، Dusk اسکرینشات میگیره |
پاکسازی دادهها | از DatabaseMigrations در تستها استفاده کن |
اگر میخوای بدون زدن درخواست واقعی API رو تست کنی، میتونی از کتابخونههایی مثل Mock Service Worker استفاده کنی تا پاسخ API رو فیکسازی کنی داخل مرورگر.
سناریو | ابزار مناسب |
---|---|
تست API با فرم | ✅ Laravel Dusk |
تست API صرفاً JSON | ✅ Feature Test (postJson ) |
تست کلاینت JavaScript | ✅ Dusk + JavaScript |
شبیهسازی مرورگر واقعی | ✅ فقط با Dusk ممکنه |
فرض میگیریم:
مسیر ورود /login
مسیر لیست پستها /posts
فرم ایجاد پست، ورودیهایی به نام title
و body
داره.
فرم و عملیاتها از طریق رابط گرافیکی HTML انجام میشن (نه صرفاً API خام).
tests/Browser/PostCrudTest.php
در HTML باید المانهایی که قراره Dusk پیدا کنه، Selector داشته باشن:
یا فقط تست خاص:
عملیات | با چه چیزی تست شد؟ |
---|---|
ورود | فرم لاگین با Dusk |
ایجاد پست | پر کردن فرم و ارسال |
ویرایش پست | کلیک روی لینک و بروزرسانی فرم |
حذف پست | کلیک روی دکمه حذف و بررسی تغییرات |