- vừa được xem lúc

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

0 0 8

Người đăng: Vinh Phạm

Theo Viblo Asia

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é.

Bình luận

Bài viết tương tự

- vừa được xem lúc

The Twelve-Factor App, cẩm nang gối đầu giường trong xây dựng application (Phần 1)

Giới thiệu. Ngày nay các phần mềm được triển khai dưới dạng các dịch vụ, chúng được gọi là các web apps hay software-as-a-service (SaaS).

0 0 35

- vừa được xem lúc

8 Sai lầm phổ biến khi lập trình Android

1. Hard code.

0 0 196

- vừa được xem lúc

Popular interview question: What is the difference between Process and Thread? 10 seconds a day

Video được đăng tại channel Tips Javascript

0 0 36

- vừa được xem lúc

Thuật toán và ứng dụng - P1

Mục đích series. . Những bài toán gắn liền với thực tế. Từ đó thấy được tầm quan trọng của thuật toán trong lập trình.

0 0 39

- vừa được xem lúc

Tác dụng của Docker trong quá trình học tập

Docker bây giờ gần như là kiến thức bắt buộc đối với các anh em Dev và Devops, nhưng mà đối với sinh viên IT nói chung vẫn còn khá mơ hồ và không biết tác dụng thực tế của nó. Hôm nay mình sẽ chia sẻ

0 0 42

- vừa được xem lúc

Làm giàu trong ngành IT

Hầu như mọi người đều đi làm để kiếm tiền, ít người đi làm vì thấy cái nghề đó thú vị lắm. Bây giờ vất cho mình 100 tỷ bảo mình bỏ nghề thì mình cũng bỏ thôi.

0 0 46