こんにちは、みんな! 私は、UI と API のテスト カバレッジという 2 つの目的を持つテスト自動化フレームワークを常に懐疑的に見てきました。通常、それぞれに独自のテストがあるため、異なるテスト実行 (またはイベント プロジェクト) で異なるテスト レイヤーを実行します。 、 そして 。 依存関係 構成、 環境変数 最近、 テストの観点から が提供するものを検討し、それを私の 経験と比較しました。そこで、皆さんと共有しなければならないことをここに示します。 API Playwright Cypress の ヒノキ 少し前に テストを可能にしました。 テストの点でこのツールがいかに優れているかについて、例を示した ご覧ください。 Cypress は API API 学習ポータルの記事を 設置パフォーマンス テストを実行するには、プロジェクトの依存関係をインストールする必要がありますよね? には が付属しており、 テストのみを実行したい場合はインストールがかなり冗長 (そして時間がかかり) になる可能性があります (CI で UI と API テストの実行に別のジョブがあるとしましょう)通常はそうなります)。 Cypress Electron ブラウザ 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) }) }) きれいに見えます 劇作家 と同様に、 はテスト自動化フレームワークです。 (テスト ランナー、アサーション ライブラリ、ブラウザー自動化ツール、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), }) この構文を使用すると、1 回の 呼び出しだけでオブジェクトの構造全体を検証できます ☝️ expect 結論 API テストは、実行にそれほど多くの労力を必要としないため、小さくて軽量であることが想定されています。 上記の内容を要約してみましょう… 設置パフォーマンス ✅ すぐに使える 高速なクリーン インストールで勝利を収めました。 Playwright は、 13 倍 ℹ️ か、依存関係を と、 での インストール時間を短縮できます。 依存関係が事前にインストールされたイメージを使用する CI ストレージ にキャッシュする CI Cypress の 走行パフォーマンス ✅ 、API テストを実行するためにブラウザーを必要としないため、直接要点を達成できるという点で勝ちました。 Playwright は ℹ️ ブラウザーはフレームワークのロジックの一部であるため、API テストでブラウザーを「実行しない」方法はありません。 テスト構文 にも にも客観的な利点がないため、ここで勝者を選ぶことはできません。 Cypress Playwright どちらも非常に単純な構文ですが、わずかな違いがあります。ここで好きなものを選ぶのはテスターの決定だと思います。 全体 そのパフォーマンスにより、 テストの自動化に を使用するのは十分に安全であると断言できます。このフレームワークを使用した テストをすでに持っている場合、これは公平な解決策になります。 API Playwright UI テストに を使用していて、 レイヤーをカバーしたい人への私のアドバイス - 他のものを使用したほうがよいです ( + 、 例が見られます)。 UI Cypress API Jest Axios そこに