เริ่มต้นใช้งาน Playwright สำหรับ React
เขียนการทดสอบด้วย Playwright เพื่อเปิดเบราว์เซอร์ โต้ตอบกับแอป React และตรวจสอบผลลัพธ์
เริ่มต้นใช้งาน Playwright สำหรับ React เป็นบทเรียน React Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน React Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน
Playwright คืออะไร
Playwright คือกรอบงานการทดสอบตั้งแต่ต้นจนจบของ Node.js ที่ควบคุมเบราว์เซอร์ Chromium, Firefox และ WebKit จริง เหมาะอย่างยิ่งสำหรับการทดสอบลำดับการทำงานทั้งหมดของแอป React ซึ่งรวมถึงการกำหนดเส้นทาง การยืนยันตัวตน และการโต้ตอบกับ API
การติดตั้ง
ติดตั้ง Playwright และไบนารีของเบราว์เซอร์ด้วยคำสั่งเดียว
# npm init playwright@latest
# or
# npx playwright install
# playwright.config.ts is created automaticallyการกำหนดค่า Playwright สำหรับ React
กำหนดค่า Playwright ให้เริ่มเซิร์ฟเวอร์พัฒนาของคุณก่อนเรียกใช้การทดสอบ
import { defineConfig } from '@playwright/test';
export default defineConfig({
testDir: './e2e',
use: { baseURL: 'http://localhost:5173' },
webServer: {
command: 'npm run dev',
url: 'http://localhost:5173',
reuseExistingServer: !process.env.CI,
},
});เขียนการทดสอบแรกของคุณ
การทดสอบใช้ page ซึ่งเป็นออบเจ็กต์หน้าเบราว์เซอร์ ให้ไปยัง URL โต้ตอบกับองค์ประกอบ และยืนยันผลลัพธ์
import { test, expect } from '@playwright/test';
test('home page shows heading', async ({ page }) => {
await page.goto('/');
await expect(page.getByRole('heading', { name: 'Welcome' })).toBeVisible();
});ตัวระบุตำแหน่ง
ตัวระบุตำแหน่งของ Playwright คล้ายกับคำค้นหาของ RTL ควรเลือกตัวระบุตำแหน่งตามบทบาทเพื่อให้ทนทานต่อการเปลี่ยนแปลง
// By role
const button = page.getByRole('button', { name: 'Submit' });
// By label
const input = page.getByLabel('Email address');
// By text
const link = page.getByText('Sign in');
// By placeholder
const search = page.getByPlaceholder('Search products');การคลิกและการพิมพ์
โต้ตอบกับองค์ประกอบด้วย click(), fill(), press() และ selectOption()
await page.getByLabel('Email').fill('user@example.com');
await page.getByLabel('Password').fill('secret');
await page.getByRole('button', { name: 'Log in' }).click();การรอการนำทาง
Playwright จะรอให้องค์ประกอบพร้อมใช้งานโดยอัตโนมัติ แต่คุณสามารถรออย่างชัดเจนให้การนำทางหรือคำขอเครือข่ายเสร็จสมบูรณ์ได้
// Wait for URL to change after form submit
await page.waitForURL('/dashboard');
// Wait for a specific request
const [response] = await Promise.all([
page.waitForResponse('/api/users'),
page.click('button[type="submit"]'),
]);การยืนยัน
ใช้ expect(locator) ร่วมกับตัวจับคู่ที่มีมาให้ของ Playwright ตัวจับคู่เหล่านี้จะรอโดยอัตโนมัติจนกว่าเงื่อนไขจะเป็นจริง
await expect(page.getByRole('heading')).toHaveText('Dashboard');
await expect(page.getByTestId('user-count')).toContainText('5 users');
await expect(page.getByRole('button', { name: 'Delete' })).toBeDisabled();
await expect(page).toHaveURL('/success');การจับภาพหน้าจอเมื่อการทดสอบล้มเหลว
Playwright จะจับภาพหน้าจอและร่องรอยโดยอัตโนมัติเมื่อการทดสอบล้มเหลว หากมีการกำหนดค่าไว้ ให้เปิดใช้งานฟังก์ชันนี้ในการกำหนดค่า
use: {
screenshot: 'only-on-failure',
trace: 'retain-on-failure',
video: 'retain-on-failure',
}การเรียกใช้การทดสอบ
เรียกใช้การทดสอบทั้งหมดในโหมดไม่มีส่วนติดต่อผู้ใช้ หรือใช้ --ui สำหรับเครื่องมือสำรวจการทดสอบแบบโต้ตอบ ซึ่งช่วยให้คุณดูการทดสอบทีละขั้นด้วยภาพ
# Run all tests
npx playwright test
# Run with UI mode
npx playwright test --ui
# Run a specific file
npx playwright test e2e/login.spec.ts
# Debug mode
npx playwright test --debugตัวแสดงร่องรอย Playwright
เมื่อการทดสอบล้มเหลว ให้เปิดไฟล์ร่องรอยด้วย npx playwright show-trace เพื่อเล่นการทดสอบซ้ำทีละขั้น พร้อมภาพหน้าจอ คำขอเครือข่าย และบันทึกคอนโซล
การผสานรวมอย่างต่อเนื่อง
Playwright จะทำงานในโหมดไม่มีส่วนติดต่อผู้ใช้เป็นค่าเริ่มต้นในระบบผสานรวมอย่างต่อเนื่อง ติดตั้งเบราว์เซอร์ด้วย npx playwright install --with-deps และเรียกใช้การทดสอบเป็นสคริปต์ npm ตามปกติ
# .github/workflows/e2e.yml
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npx playwright testตรวจสอบอย่างรวดเร็ว
คุณควรใช้เมธอดใดของ Playwright เพื่อกรอกข้อมูลลงในช่องป้อนข้อความ
สรุปทบทวน
การทดสอบของ Playwright ทดสอบเบราว์เซอร์จริงและรอให้องค์ประกอบพร้อมใช้งานโดยอัตโนมัติ ใช้ตัวระบุตำแหน่งตามบทบาท ใช้ fill() และ click() สำหรับการโต้ตอบ ใช้ expect(locator) สำหรับการยืนยัน และใช้โหมด --ui เพื่อแก้ไขข้อผิดพลาดด้วยภาพระหว่างการพัฒนา
คำถามที่พบบ่อย
บทเรียน “เริ่มต้นใช้งาน Playwright สำหรับ React” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เริ่มต้นใช้งาน Playwright สำหรับ React” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส React Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส React Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เริ่มต้นใช้งาน Playwright สำหรับ React”
เขียนการทดสอบด้วย Playwright เพื่อเปิดเบราว์เซอร์ โต้ตอบกับแอป React และตรวจสอบผลลัพธ์ คุณปฏิบัติ React Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน React Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน React Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “เริ่มต้นใช้งาน Playwright สำหรับ React” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน React Academy นี้ได้ไหม
ได้ บทเรียน React Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การทดสอบแบบผสานรวมด้วย React Testing Library
- การทดสอบ UI แบบอะซิงก์และการเรียก API ด้วย MSW
- เริ่มต้นใช้งาน Playwright สำหรับ React
- การทดสอบฟอร์มและขั้นตอนการใช้งานตั้งแต่ต้นจนจบ