どのE2Eテストフレームワークを使うべきかを考えてみた

October 26, 2024
PHP / Laravel

Laravel Duskを初めて使用して

E2Eテストといえば、PlaywrightやCypressといったフレームワークが有名ですが、今回、初めてLaravel Duskを使用する機会がありました。

Laravel Duskで実行できる内容は、PlaywrightやCypressなどのJavaScriptベースのE2Eテストフレームワークとほぼ同じです。

しかし大きく異なる点として、PlaywrightやCypressはChrome、Firefox、Safariなど複数のブラウザでテストを実行できるのに対し、

Laravel Duskは基本的にChromeのみでテストを行います。他のブラウザでもテストは可能なようですが、設定が少し煩雑になりそうです。

E2Eテストフレームワークの技術選定について

実際にE2Eテストフレームワークを選定する際、

「とりあえずPlaywrightやCypressを使えば無難」という考えになりがちです。

ただし、テスト対象のウェブサイトのバックエンドがNode.js製なのか、PHP(Laravel)製なのかといった点も、選定時の判断材料に含めるべきと感じています。※その他にもJava、Python、Rubyなどがありますが、ここでは割愛します。

フロントエンド中心のテストであれば、バックエンドに依存せず好みのE2Eテストフレームワークを導入するのも良いでしょう。

しかし、ユーザー登録やログイン機能、マイページなどのE2Eテストでは、データベースの操作(ユーザーの登録や参照)が必要になる場面が少なくありません。また、テスト実行前にテストデータを登録しておきたい場面もあります。

その際、既存のバックエンドのコードを活用できることが望ましいため、バックエンドがNode.js製かPHP(Laravel)製かで最適なフレームワークが異なると思います。

また、「バックエンドのモックAPIを作成し、それをフロントエンドで利用すれば良い」という意見もあるかもしれませんが、そのためにわざわざモックAPIを作る手間や、継続的なメンテナンスの負担を考えると、やめた方が良い場合も多いです。

こうしたことを考える機会となった2週間でした。


Profile picture

React, Vue, TypeScript, Node.js, PHP, Laravel, AWS, Firebase, Docker, GitHub Actions, etc...