Xin chào tất cả mọi người! Tôi luôn hoài nghi về các khung tự động hóa thử nghiệm với mục đích kép - phạm vi thử nghiệm UI & API. Thông thường, bạn sẽ chạy các lớp thử nghiệm khác nhau trong các lần chạy thử nghiệm (hoặc dự án sự kiện) khác nhau, vì mỗi lớp có thể có riêng , Và . sự phụ thuộc cấu hình, biến môi trường Gần đây, tôi đã xem cung cấp những gì về mặt thử nghiệm và so sánh nó với trải nghiệm của tôi, vì vậy đây là những gì tôi muốn chia sẻ với các bạn… Playwright API Cypress cây bách đã thực hiện thử nghiệm cách đây không lâu. Bạn có thể tìm thấy về mức độ tuyệt vời của công cụ này trong việc kiểm tra kèm theo các ví dụ. Cypress API một bài viết trên cổng tìm hiểu API Hiệu suất cài đặt Để chạy thử nghiệm, bạn cần cài đặt các phần phụ thuộc của dự án, đúng không? Chà, đi kèm với và việc cài đặt có thể khá dư thừa (và tốn thời gian) nếu bạn chỉ muốn chạy thử nghiệm (giả sử, bạn có các công việc riêng biệt trong CI cho các lần chạy thử nghiệm UI & API, thường là vậy). Cypress một trình duyệt điện tử API Trông không ổn lắm phải không? ☝️ Ngoài ra, khi bạn chạy thử nghiệm - nó vẫn khởi chạy trình duyệt. API Ví dụ kiểm tra Một thử nghiệm đơn giản với sẽ như thế này: API Cypress it('Sign in with valid credentials', () => { cy.request('POST', '/auth', { login: Cypress.env('username'), password: Cypress.env('password'), }).should(response => { expect(response.body.token).to.be.a('string') expect(response.status).to.eq(200) }) }) Trông khá đẹp Nhà viết kịch Giống như , là một khung tự động hóa thử nghiệm - bạn hoặc (trình chạy thử nghiệm, thư viện xác nhận, công cụ tự động hóa trình duyệt, ứng dụng khách HTTP, trình báo cáo, v.v.). Cypress Playwright chỉ có thể sử dụng riêng một công cụ tự động hóa trình duyệt toàn bộ khung Hiệu suất cài đặt Sự khác biệt ở đây là không có sẵn bất kỳ trình duyệt nào - bạn phải cài đặt chúng bằng một lệnh riêng (nếu muốn). Playwright Điều này tạo ra sự khác biệt lớn ở đây, vì khi chỉ chạy thử nghiệm , nó sẽ không chạy bất kỳ trình duyệt hoặc bất kỳ ứng dụng máy tính để bàn nào khác và tiết kiệm một số thời gian và tài nguyên chạy trên máy của bạn. API Ví dụ kiểm tra Một thử nghiệm đơn giản với sẽ như thế này: API Playwright import {test, expect} from '@playwright/test' test('Sign in with valid credentials', async ({request}) => { const response = await request.post('/auth', { data: { login: process.env.USERNAME, password: process.env.PASSWORD, }, }) expect(response.status()).toEqual(200) expect(await response.json()).toEqual({ token: expect.any(String), }) }) Tôi muốn nêu bật để xác nhận các đối tượng: một cú pháp giống như Jest expect(await response.json()).toEqual({ token: expect.any(String), }) Cú pháp này cho phép bạn xác minh toàn bộ cấu trúc của đối tượng chỉ bằng một lệnh gọi ☝️ expect Phần kết luận Các thử nghiệm API được cho là nhỏ và nhẹ vì chúng không yêu cầu chạy quá nhiều. Hãy tóm tắt các tài liệu trên… Hiệu suất cài đặt ✅ giành chiến thắng với khả năng cài đặt sạch sẽ nhanh hơn ngay từ đầu. Nhà viết kịch 13 lần ℹ️ Bạn có thể giảm thời gian cài đặt trong nếu hoặc của bạn. Cypress CI sử dụng hình ảnh có phần phụ thuộc được cài đặt sẵn lưu chúng vào bộ lưu trữ CI Chạy hiệu suất ✅ chiến thắng vì không yêu cầu trình duyệt chạy thử nghiệm API mà đi thẳng vào vấn đề. Nhà viết kịch ℹ️ Không có cách nào để “không chạy” trình duyệt trong các thử nghiệm API, vì đó là một phần logic của khung. Cú pháp kiểm tra Không thể chọn người chiến thắng ở đây vì không có lợi thế khách quan nào cho cả và . Cypress Playwright Cả hai đều có cú pháp khá đơn giản với một số khác biệt nhỏ. Tôi muốn nói rằng việc chọn những gì họ thích ở đây là quyết định của người thử nghiệm. Tổng thể Tôi chắc chắn có thể nói rằng nó đủ an toàn để sử dụng để tự động hóa thử nghiệm do hiệu suất của nó. Đó sẽ là một giải pháp công bằng nếu bạn đã thực hiện các bài kiểm tra với khung này. Playwright API giao diện người dùng Lời khuyên của tôi dành cho những người sử dụng để kiểm tra và muốn bao phủ lớp - tốt hơn hãy sử dụng thứ khác ( + , bạn có thể xem ví dụ ). Cypress giao diện người dùng API Jest Axios ở đó