여러분, 안녕하세요! 나는 항상 UI 및 API 테스트 범위라는 두 가지 목적을 가진 테스트 자동화 프레임워크를 회의적으로 보았습니다. 일반적으로 서로 다른 테스트 실행(또는 이벤트 프로젝트)에서 서로 다른 테스트 계층을 실행하게 됩니다. , 그리고 . 의존성 구성, 환경 변수 최근에 저는 가 테스트 측면에서 제공하는 것을 살펴보고 이를 제 경험과 비교했습니다. 그래서 여러분과 공유해야 할 내용은 다음과 같습니다. Playwright API Cypress 사이프러스 얼마 전에 테스트를 가능하게 만들었습니다. 예제를 포함한 테스트 측면에서 이 도구가 얼마나 훌륭한지에 대한 찾을 수 있습니다. Cypress는 API API 기사를 학습 포털에서 설치실적 테스트를 실행하려면 프로젝트 종속성을 설치해야 합니다. 맞나요? 에는 함께 제공되며 테스트만 독점적으로 실행하려는 경우 설치하는 것이 상당히 중복되고 시간이 많이 걸릴 수 있습니다. 예를 들어 UI 및 API 테스트 실행을 위해 CI에서 별도의 작업이 있다고 가정해 보겠습니다. 일반적으로 그렇습니다). Cypress 전자 브라우저가 API 안 좋아 보이는데요? ☝️ 또한 테스트를 실행하면 어쨌든 브라우저가 시작됩니다. API 테스트 예 사용한 간단한 테스트는 다음과 같습니다. Cypress를 API 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) }) }) 정말 간단하고 간단해 보이죠? 여기에서 이것이 일반적인 이라고 말하는 것이 중요합니다. 즉, 모든 출력을 변수에 쓰는 대신( 하더라도) 체인을 연결하는 것입니다. Cypress 구문 일부 조정으로 가능 극작가 와 마찬가지로 는 테스트 자동화 프레임워크입니다. 단독으로 사용하거나 (테스트 실행기, 어설션 라이브러리, 브라우저 자동화 도구, HTTP 클라이언트, 리포터 등)를 사용할 수 있습니다. Cypress Playwright 브라우저 자동화 도구만 전체 프레임워크 설치실적 여기서 차이점은 에는 기본적으로 브라우저가 제공되지 않는다는 것입니다. 원하는 경우 별도의 명령을 사용하여 브라우저를 설치해야 합니다. Playwright 테스트를 독점적으로 실행한다는 점에서 브라우저나 다른 데스크톱 앱을 실행하지 않고 컴퓨터의 런타임 및 리소스를 일부 절약하므로 여기에서는 큰 차이가 있습니다. API 테스트 예 사용한 간단한 테스트는 다음과 같습니다. Playwright를 API 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), }) }) 객체를 주장하는 강조하고 싶습니다. Jest와 유사한 구문을 expect(await response.json()).toEqual({ token: expect.any(String), }) 이 구문을 사용하면 단 한 번의 호출로 객체의 전체 구조를 확인할 수 있습니다 ☝️ expect 결론 API 테스트는 실행하는 데 너무 많은 것이 필요하지 않기 때문에 작고 가벼워야 합니다. 위의 내용을 요약하자면… 설치실적 ✅ 빠른 설치 속도로 승리를 거두었습니다. 극작가는 13배 ℹ️ 하거나 에서 설치 시간을 줄일 수 있습니다. 종속성이 사전 설치된 이미지를 사용 CI 스토리지 에 캐시하면 CI Cypress 실행 성능 ✅ API 테스트를 실행하는 데 브라우저가 필요하지 않기 때문에 승리하므로 곧바로 요점을 설명합니다. Playwright는 ℹ️ API 테스트에서 브라우저를 "실행하지 않을" 방법은 없습니다. 브라우저는 프레임워크 논리의 일부이기 때문입니다. 테스트 구문 나 모두 객관적인 이점이 없기 때문에 여기서 승자를 선택할 수 없습니다. Cypress Playwright 둘 다 약간의 차이가 있지만 매우 간단한 구문을 가지고 있습니다. 여기서 마음에 드는 것을 선택하는 것은 테스터의 결정이라고 말하고 싶습니다. 전반적인 테스트 자동화에 사용하는 것은 성능상 충분히 안전하다고 확실히 말할 수 있습니다. 이 프레임워크를 사용하여 이미 테스트를 수행했다면 이는 공정한 솔루션이 될 것입니다. API Playwright를 UI 테스트에 사용하고 계층을 다루려는 사람들을 위한 조언 - 다른 것을 사용하는 것이 더 좋습니다( + , 예제를 볼 수 있습니다). UI Cypress를 API Jest Axios 거기에서