0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

Hướng dẫn chi tiết tích hợp Playwright vào quy trình CI/CD để tự động hóa kiểm thử phần mềm

Đăng vào 1 tháng trước

• 7 phút đọc

Chủ đề:

Development

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

Tự động hóa kiểm thử phần mềm và đảm bảo chất lượng là một phần thiết yếu trong quy trình phát triển phần mềm hiện đại. Bài viết này sẽ giúp bạn tích hợp Playwright — một công cụ mạnh mẽ cho việc kiểm thử đầu cuối — vào quy trình CI/CD (Continuous Integration/Continuous Deployment) thông qua các công cụ phổ biến như GitHub Actions, GitLab CI và Jenkins.

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

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

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, cần đảm bảo rằng các bài kiểm thử của bạn đáp ứng những tiêu chí cơ bản sau:

  • Có chức năng: Chạy các bài kiểm thử một cách cục bộ với lệnh npx playwright test để đảm bảo chúng hoạt động như mong đợi.
  • Có thể cấu hình: Sử dụng các biến môi trường cho URL cơ sở, thông tin đăng nhập và cài đặt 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 áp 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 mang đến một cách thức đơn giản và hiệu quả để thiết lập quy trình CI/CD cho dự án của bạn. Để tích hợp Playwright, bạn cần tạo tệp Workflow bằng cách lưu nội dung dưới đây vào đường dẫn .github/workflows/playwright.yml:

Copy
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

Tính năng chính của tích hợp GitHub Actions:

  • Tự động kích hoạt khi có sự kiện đẩy thay đổi (push) hoặc yêu cầu kéo (pull request).
  • Tải lên báo cáo HTML của Playwright cho những lần chạy thất bại để bạn dễ dàng kiểm tra và gỡ lỗi.

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

Đối với GitLab, quy trình CI/CD được cấu hình thông qua tệp .gitlab-ci.yml. Hãy thêm cấu hình sau vào tệp của bạn:

Copy
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

Tính năng chính của tích hợp GitLab CI/CD:

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

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

Đối với Jenkins, bạn cần tạo một tệp Jenkinsfile để định nghĩa quy trình CI/CD của bạn. Dưới đây là nội dung mẫu cho tệp này:

Copy
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.'
        }
    }
}

Tính năng chính của tích hợp Jenkins:

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

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

Để tăng tốc độ thực thi của các bài kiểm thử, bạn có thể cấu hình Playwright để chạy song song. Hãy thêm đoạn mã sau vào playwright.config.ts:

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

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

Trong quy trình CI/CD của bạn, hãy chắc chắn rằng bạn đã phân bổ đủ tài nguyên để hỗ trợ các bài kiểm thử song song này.

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

Để phân tích kết quả kiểm thử một cách hiệu quả, hãy làm theo các bước sau:

  • Tạo báo cáo HTML: Đảm bảo rằng playwright.config.ts đã thiết lập để tạo báo cáo HTML:
Copy
reporter: [['html', { outputFolder: 'playwright-report' }]]
  • Tải lên báo cáo: Sử dụng các lệnh cụ thể trong CI/CD để tải lên báo cáo dưới dạng kết quả kiểm thử như actions/upload-artifact cho GitHub hay 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 và chia sẻ với nhóm.

Những cách tốt nhất để tích hợp Playwright với CI/CD

  • Sử dụng Docker Images: Lợi dụng các hình ảnh Docker chính thức của Playwright để có được môi trường kiểm thử nhất quán và chính xác.
  • Kiểm thử trên nhiều trình duyệt: Đảm bảo rằng các bài kiểm thử được thiết lập để chạy trên nhiều trình duyệt khác nhau như Chromium, WebKit và Firefox để đảm bảo khả năng tương thích.
  • Chạy Kiểm thử Khói trên mỗi commit: Tiến hành một tập hợp nhỏ các bài kiểm thử quan trọng để có được phản hồi nhanh hơn và phát hiện lỗi sớm.
  • Chạy toàn bộ Suite cho bản dựng hàng đêm: Thực hiện toàn bộ bộ kiểm thử trong khung giờ thấp điểm để đảm bảo không ảnh hưởng tới quy trình phát triển hàng ngày.
  • 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 và đáng tin cậy của quy trình phát triển.

Kết luận

Việc tích hợp Playwright với CI/CD không chỉ giúp nâng cao quy trình phát triển phần mềm mà còn đảm bảo rằng tất cả các kiểm thử đều được thực hiện một cách đồng nhất và đáng tin cậy. Bằng cách làm theo hướng dẫn chi tiết này, bạn có thể thiết lập một quy trình CI/CD 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 để cung cấp phần mềm chất lượng cao một cách tự tin!
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào