0

Tích hợp Playwright vào quy trình CI/CD: Hướng dẫn chi tiết

Tự động hóa kiểm thử đầu cuối và đảm bảo chất lượng phần mềm với Playwright trong quy trình tích hợp và triển khai liên tục (CI/CD). Bài viết này hướng dẫn bạn tích hợp Playwright với các công cụ CI/CD phổ biến như GitHub Actions, GitLab CI và Jenkins.

Tại sao nên tích hợp Playwright với CI/CD?

  • Kiểm thử tự động: Đảm bảo việc thay đổi mã không làm hỏng chức năng.
  • Tính nhất quán: Thực hiện thử nghiệm trong môi trường được kiểm soát và có thể lặp lại.
  • Khả năng mở rộng: Thực hiện thử nghiệm trên nhiều trình duyệt và thiết bị cùng lúc.
  • Vòng phản hồi: Nhận phản hồi ngay lập tức về kết quả kiểm tra để gỡ lỗi nhanh hơn.

Bước 1: Chuẩn bị bài kiểm thử Playwright

Trước khi tích hợp Playwright vào quy trình CI/CD, hãy đảm bảo các bài kiểm thử của bạn đáp ứng các tiêu chí sau:

  • Có chức năng: Chạy chúng cục bộ bằng npx playwright test để xác minh chúng hoạt động.
  • Có thể cấu hình: Sử dụng biến môi trường cho URL cơ sở, thông tin đăng nhập và các cấu hình khác.
  • Đáng tin cậy: Giảm thiểu các bài kiểm thử không ổn định bằng cách tận dụng các tính năng tự động chờ của Playwright.

Bước 2: Tích hợp Playwright với GitHub Actions

GitHub Actions cung cấp một cách đơn giản để thiết lập quy trình CI/CD.

Tạo tệp Workflow: Lưu nội dung sau dưới dạng .github/workflows/playwright.yml:

name: Playwright Tests

on:
  push:
    branches:
      - main
  pull_request:

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3

    - name: Set up Node.js
      uses: actions/setup-node@v3
      with:
        node-version: '16'

    - name: Install dependencies
      run: npm ci

    - name: Install Playwright Browsers
      run: npx playwright install --with-deps

    - name: Run Playwright tests
      run: npx playwright test

    - name: Upload Playwright Test Report
      if: failure()
      uses: actions/upload-artifact@v3
      with:
        name: playwright-report
        path: playwright-report

Các tính năng chính:

  • Tự động kích hoạt khi có sự kiện push hoặc pull request.
  • Tải lên báo cáo HTML của Playwright cho các lần chạy thất bại.

Bước 3: Tích hợp Playwright với GitLab CI/CD

Quy trình CI/CD của GitLab được cấu hình bằng tệp .gitlab-ci.yml.

Tạo cấu hình Pipeline: Thêm nội dung sau vào .gitlab-ci.yml của bạn:

stages:
  - test

test_playwright:
  stage: test
  image: mcr.microsoft.com/playwright:v1.38.0-focal
  script:
    - npm ci
    - npx playwright install --with-deps
    - npx playwright test
  artifacts:
    when: always
    paths:
      - playwright-report/
    expire_in: 1 week

Các tính năng chính:

  • Sử dụng image Docker chính thức của Playwright để đảm bảo tính nhất quán.
  • Lưu trữ kết quả kiểm thử, bao gồm báo cáo Playwright, để dễ dàng gỡ lỗi.

Bước 4: Tích hợp Playwright với Jenkins

Jenkins yêu cầu một tệp Jenkinsfile để định nghĩa quy trình của bạn.

Tạo Jenkinsfile:

pipeline {
    agent any

    stages {
        stage('Install Dependencies') {
            steps {
                sh 'npm ci'
                sh 'npx playwright install --with-deps'
            }
        }

        stage('Run Tests') {
            steps {
                sh 'npx playwright test'
            }
        }
    }

    post {
        always {
            archiveArtifacts artifacts: 'playwright-report/**', allowEmptyArchive: true
        }
        failure {
            echo 'Tests failed! Check the report.'
        }
    }
}

Các tính năng chính:

  • Lưu trữ báo cáo Playwright cho tất cả các lần chạy.
  • Cung cấp các hành động sau khi chạy tùy chỉnh cho các trường hợp thất bại và thành công.

Bước 5: Chạy kiểm thử song song

Để tăng tốc độ thực thi kiểm thử, hãy cấu hình Playwright để chạy các bài kiểm thử song song.

Cấu hình: Thêm workers trong playwright.config.ts:

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

export default defineConfig({
  workers: process.env.CI ? 4 : 1,
});

Trong quy trình CI của bạn, hãy đảm bảo phân bổ đủ tài nguyên để hỗ trợ tính song song.

Bước 6: Xử lý kết quả kiểm thử và báo cáo

Để phân tích kết quả kiểm thử một cách hiệu quả:

  • Tạo báo cáo HTML: Đảm bảo playwright.config.ts đã bật trình báo cáo HTML:
reporter: [['html', { outputFolder: 'playwright-report' }]]
  • Tải lên báo cáo: Sử dụng các lệnh cụ thể của CI/CD để tải lên báo cáo dưới dạng kết quả kiểm thử (ví dụ: actions/upload-artifact cho GitHub hoặc artifacts trong GitLab).
  • Trực quan hóa kết quả: Lưu trữ báo cáo trên một bucket S3 hoặc máy chủ tĩnh để dễ dàng truy cập.

Best practice để tích hợp Playwright CI/CD

  • Sử dụng Docker Images: Tận dụng các image Docker chính thức của Playwright cho môi trường nhất quán.
  • Kiểm thử trên nhiều trình duyệt: Đảm bảo các bài kiểm thử được cấu hình để chạy trên nhiều trình duyệt (Chromium, WebKit, Firefox).
  • Chạy Kiểm thử Khói trên mỗi commit: Thực hiện một tập hợp nhỏ các bài kiểm thử quan trọng để có phản hồi nhanh hơn.
  • Toàn bộ Suite cho bản dựng hàng đêm: Chạy toàn bộ bộ kiểm thử trong giờ thấp điểm.
  • Theo dõi các bài kiểm thử không ổn định: Theo dõi và giải quyết các bài kiểm thử không ổn định để duy trì tính ổn định của quy trình.

Kết luận

Việc tích hợp Playwright với quy trình CI/CD nâng cao quy trình phát triển của bạn bằng cách đảm bảo kiểm thử tự động và đáng tin cậy. Bằng cách làm theo hướng dẫn này, bạn có thể thiết lập các quy trình mạnh mẽ với các công cụ như GitHub Actions, GitLab CI và Jenkins. Hãy bắt đầu tích hợp Playwright vào quy trình CI/CD của bạn ngay hôm nay và cung cấp phần mềm chất lượng cao một cách tự tin nhé.


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í