+3

Bài 2. Cài đặt Playwright

Hi, chào các bạn hôm nay mình sẽ hướng dẫn cài đặt playwright tạo project automation test cho playwright nhé Tạo folder automation-test-with-playwright

sau đó mở folder bằng Visual Studio Code

sau đó vào Termial=> chọn New Termial

Gõ : npm init playwright@latest => nhấn Enter chọn như hình bên dưới

sau khi cài đặt bạn sẽ thấy có các thư mục sau:

Thư mục quan trọng nhất là thư mục tests => Thư mục này sẽ lưu trữ test case chạy

Thư mục tests-examples => Thư mục này chứa các test case ví dụ => Bạn có thể xóa thư mục này đi

Thư mục node_modules => chứa thư viện của node

vì ko sử dụng tests-examples => do vậy mình sẽ xóa thư mục này đi

Thư mục test => có file example.spec.ts

import { test, expect } from '@playwright/test';

test('has title', async ({ page }) => {
  await page.goto('https://playwright.dev/');

  // Expect a title "to contain" a substring.
  await expect(page).toHaveTitle(/Playwright/);
});

test('get started link', async ({ page }) => {
  await page.goto('https://playwright.dev/');

  // Click the get started link.
  await page.getByRole('link', { name: 'Get started' }).click();

  // Expects page to have a heading with the name of Installation.
  await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible();
});

FIle này có 2 test case test case 1 là có title là "has title" test case 2 là có title là "get started link"

Cùng cấp với folder tests có file package.json, playwright.config.ts

package.json => lưu trữ các thư viện sử dụng cho project => sau này các bạn cài thêm thư viện thì sẽ thấy trong package.json sẽ có thông tin thư viện đó

playwright.config.ts=> lưu trữ cấu hình của project

import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
  testDir: './tests',
  fullyParallel: true,
  forbidOnly: !!process.env.CI,
  retries: process.env.CI ? 2 : 0,
  workers: process.env.CI ? 1 : undefined,
  reporter: 'html',
  use: {
    // baseURL: 'http://127.0.0.1:3000',

    trace: 'on-first-retry',
  },

  projects: [
    {
      name: 'chromium',
      use: { ...devices['Desktop Chrome'] },
    },

    {
      name: 'firefox',
      use: { ...devices['Desktop Firefox'] },
    },

    {
      name: 'webkit',
      use: { ...devices['Desktop Safari'] },
    },
  ],
});

Trong đó :

  • testDir => chỉ thư mục test

  • fullyParallel : True => cho phép chạy nhiều test case cùng lúc, False sẽ chạy test case 1 cách lần lượt

  • retries : cho phép retry khi failed ( cấu hình chạy lại 1 lần khi faile thì bạn có thể cấu hình như sau: retries: 1 hoặc retries: process.env.CI ? 2 : 1)

  • reporter: định dạng sẽ xuất ra report ( playwright hỗ trợ nhiều định dạng như csv, list, xml, json, junit, alure-report ... )

  • use : là thông số cấu hình chung sử dụng

    - baseURL => sử dụng để cấu hình host của trình duyệt cần pải test 
              khi cấu hình baseURL: 'http://127.0.0.1:3000',  => trong test case khi viết   await page.goto('/'); thì playwright tự hiểu sẽ chuyển tới trang http://127.0.0.1:3000
    
  • projects => cấu hình sử dụng để chạy test case bạn có thể thấy ở ví dụ trên bạn có thể chạy test case với các trình duyệt chromium, firefox và webkit

Thực hiện chạy test case:

  • bạn có thể vào terminal gõ:npx playwright test

có 2 test case nhưng sẽ được thực thi trên 3 trình duyệt là chromium, firefox và webkit

  • nếu chỉ muốn chạy với chromium gõ: npx playwright test --project=chromium ( Lưu ý : chromium tương ứng với config có name là chromium => trong file playwright.config.ts

Giờ bạn có thể show report bằng cách gõ: npx playwright show-report

bạn có thể dùng UI để chạy test:

vào terminal gõ: npx playwright test --ui

bài hôm nay kết thúc ở đây hi vọng gặp các bạn ở các bài tiếp theo


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí