XMPPおよびRailsアプリケーションとともに多くのJavaScriptを使用する複雑なWebアプリケーションがあります。システム全体をエンドツーエンドでテストする必要があるところまで来ています。さまざまなタスクをエラーなしで完了できるようにする必要があります。そのようなタスクの1つは、システム上の別のパーティと1対1のチャットセッションをネゴシエートすることです。私たちのアプリケーションのすべてのタスクはユーザー間の相互作用を伴うため、Webアプリケーションを介して通信する2つのブラウザーを同時に駆動することにより、これをシミュレートできるようにしたいと考えています。私は、セレンまたはワティルとそれらの待機機能を使用して、特定のことが起こるのを待ってから先に進むことを考えていました。例えば:
- 当サイトで2つのブラウザを開きます
- ブラウザ1は質問が公開されるのを待ちます
- ブラウザ2は質問を公開し、オファーが受信されるのを待ちます
- ブラウザ1は質問を確認し、オファーを送信して、それが受け入れられるのを待ちます
- ブラウザ2はオファーを確認して受け入れ、チャットセッションの開始を待ちます
- 等...
この種のテストは、作成と保守がかなり難しいものになっていることがわかります。ページの特定の要素に依存するため、これらを変更する場合は、テストを変更する必要があります。また、アプリケーションのフローを少しでも変更する場合は、スーツをかなり大幅に変更する必要があります。
だから私の質問は、誰かがこの種のテストをしたことがありますか?もしそうなら、どのツールを使用することを提案しますか、そしてテストを書くためのヒントはありますか?
ヘッドレスではなく実際のブラウザを駆動する必要があり、これをCIと統合できる必要があります。現在、CIセットアップの一部としてSauceLabsとseleniumを使用しています。