0Pricing
React Academy · บทเรียน

เริ่มต้นใช้งาน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การทดสอบแบบผสานรวมด้วย React Testing Library
  2. การทดสอบ UI แบบอะซิงก์และการเรียก API ด้วย MSW
  3. เริ่มต้นใช้งาน Playwright สำหรับ React
  4. การทดสอบฟอร์มและขั้นตอนการใช้งานตั้งแต่ต้นจนจบ
← กลับไปที่ React Academy