یک سرور توسعه دهنده محلی برای آزمایشات Playwrit خود راه اندازی کنید
نمایشنامه نویس همراه با الف webserver
گزینه ای در فایل پیکربندی که به شما این امکان را می دهد تا قبل از اجرای آزمایشات خود یک سرور توسعه دهنده محلی راه اندازی کنید. این برای زمانی که تستهای خود را در حین توسعه مینویسید و زمانی که نشانی اینترنتی مرحلهبندی یا تولیدی برای آزمایش ندارید، ایدهآل است.
هنگامی که برای اولین بار یک پروژه نمایشنامه نویس ایجاد می کنید یا نمایشنامه نویس را از طریق پسوند VS Code به پروژه خود اضافه می کنید، webServer
گزینه در تنظیمات شما نظر داده شده است. این بخش را از نظر خارج کنید یا آن را به صورت دستی به پیکربندی خود اضافه کنید تا قبل از شروع آزمایش ها، سرور توسعه دهنده محلی خود را اجرا کنید.
import { defineConfig } from '@playwright/test';
export default defineConfig({
// Rest of your config...
// Run your local dev server before starting the tests
webServer: {
command: 'npm run start',
url: 'http://127.0.0.1:3000',
reuseExistingServer: !process.env.CI,
},
});
فرمان
این command
دستور پوسته برای راه اندازی سرور توسعه دهنده محلی برنامه شما است. این می تواند هر دستوری باشد که یک سرور توسعه دهنده محلی را راه اندازی می کند. به عنوان مثال، برای اکثر فریم ورک های وب این کار وجود دارد npm run start
برای راه اندازی سرور توسعه دهنده
import { defineConfig } from '@playwright/test';
export default defineConfig({
// Rest of your config...
// Run your local dev server before starting the tests
webServer: {
command: 'npm run start',
},
});
URL
این url
ویژگی URL سرور http شما است که انتظار می رود زمانی که سرور آماده پذیرش اتصالات است، کد وضعیت 2xx، 3xx، 400، 401، 402 یا 403 را برگرداند. این برای مثال است http://127.0.0.1:3000
. پس از آماده شدن سرور، آزمون اجرا کننده شروع به اجرای آزمایش می کند.
import { defineConfig } from '@playwright/test';
export default defineConfig({
// Rest of your config...
// Run your local dev server before starting the tests
webServer: {
command: 'npm run start',
url: 'http://127.0.0.1:3000',
},
});
استفاده مجدد از سرور موجود
اگر true
، در صورت موجود بودن از یک سرور موجود در آدرس اینترنتی استفاده مجدد خواهد کرد. اگر هیچ سروری روی آن url اجرا نشود، دستور راه اندازی سرور جدید را اجرا می کند. اگر false
، اگر یک فرآیند موجود در حال گوش دادن به آدرس اینترنتی باشد، پرتاب می شود. این باید تنظیم شود !process.env.CI
به سرور توسعه دهنده محلی اجازه می دهد از سرور موجود در هنگام اجرای آزمایشات به صورت محلی استفاده مجدد کند اما از سرور موجود در CI استفاده نمی کند.
import { defineConfig } from '@playwright/test';
export default defineConfig({
// Rest of your config...
// Run your local dev server before starting the tests
webServer: {
command: 'npm run start',
url: 'http://127.0.0.1:3000',
reuseExistingServer: !process.env.CI,
},
});
اضافه کردن مهلت زمانی سرور
گاهی اوقات راه اندازی وب سرورها بیشتر طول می کشد. در این صورت می توانید مدت زمان انتظار برای شروع سرور را افزایش دهید.
import { defineConfig } from '@playwright/test';
export default defineConfig({
// Rest of your config...
// Run your local dev server before starting the tests
webServer: {
command: 'npm run start',
url: 'http://127.0.0.1:3000',
reuseExistingServer: !process.env.CI,
timeout: 120 * 1000,
},
});
اضافه کردن یک آدرس baseURL
همچنین توصیه می شود که baseURL
در use: {}
بخش پیکربندی شما، به طوری که آزمایش ها بتوانند از آدرس های اینترنتی نسبی استفاده کنند و مجبور نباشید بارها و بارها URL کامل را مشخص کنید.
import { defineConfig } from '@playwright/test';
export default defineConfig({
// Rest of your config...
// Run your local dev server before starting the tests
webServer: {
command: 'npm run start',
url: 'http://127.0.0.1:3000',
reuseExistingServer: !process.env.CI,
},
use: {
baseURL: 'http://127.0.0.1:3000',
},
});
اکنون می توانید هنگام پیمایش صفحه از یک مسیر نسبی استفاده کنید:
const { test } = require('@playwright/test');
test('my test', async ({ page }) => {
// This will navigate to http://127.0.0.1:3000/about
await page.goto('./about');
});
و بس. اکنون هنگامی که آزمایشهای خود را اجرا میکنید، اگر قبلاً یک سرور را روی آن آدرس اینترنتی راهاندازی نکرده باشید، یک سرور محلی میچرخد و آزمایشهای شما در برابر سرور توسعهدهنده محلی شما اجرا میشود.
لینک های مفید
اسناد نمایشنامه نویس
کانال اختلاف انجمن نمایشنامه نویس
کانال یوتیوب نمایشنامه نویس
نمایشنامه نویس در توییتر