お互いに対話する複数のブラウザを運転します
-
04-10-2019 - |
質問
XMPPとRailsアプリケーションとともに、多くのJavaScriptを使用する複雑なWebアプリケーションがあります。システム全体をエンドツーエンドでテストする必要があるポイントになりました。エラーなしでさまざまなタスクを完了できるようにする必要があります。そのようなタスクの1つは、システム上の別のパーティと1対1のチャットセッションを交渉することです。アプリケーションのすべてのタスクは、ユーザーをユーザーインタラクションにEvolveveしているため、Webアプリケーションを介して通信する同時に2つのブラウザを運転することでこれをシミュレートできるようにしたいと考えています。私はセレンを使うことを考えてきました ワティール そして、彼らの待機機能は、先に進む前に特定のことが起こるのを待つためです。例えば:
- 当社のサイトで2つのブラウザを開きます
- ブラウザ1質問が公開されるのを待ちます
- ブラウザ2は質問を公開し、その後、オファーが受信されるのを待ちます
- ブラウザ1は質問を見て、申し出を送信し、受け入れられるのを待ちます
- ブラウザ2はオファーを見て、それを受け入れ、チャットセッションが開始されるのを待ちます
- 等...
この種のテストは、書き込みと維持がかなり難しくなっていることがわかります。ページの特定の要素に依存するため、これらが変更された場合、テストを変更する必要があります。また、アプリケーションの流れをわずかに変更した場合、スーツはおそらく非常に重く修正する必要があります。
だから私の質問は、誰かがこの種のテストを行ったことがありますか?もしそうなら、どのツールを使用することをお勧めしますか?テストの作成に関するヒントはありますか?
ヘッドレスではなく実際のブラウザを駆動する必要があり、これをCIと統合することが可能である必要があります。現在使用しています。 ソースラボ CIセットアップの一部としてセレン。
解決
正直に言うと、これは「何かが自動化されるべきではない」カテゴリに属しているように聞こえます。
予見可能な問題:
ブラウザの1つが適切にスピンアップしない可能性があります。
何らかの理由で、Webサーバーが遅くなることを決めたためにテストが完全に進んでいなかった場合、タイムアウトの状況まで別のデッドロックを得ることができます。
テストを更新する必要がある何かが起こった場合、両方のブラウザインスタンスが機能することを確認する必要があるため、保守性は非常に困難です。
もっと問題があると確信していますが、今は考えられません。
システムに新しい質問を追加できるようにテストを作成します。テストデータベースに少なくとも1つのテストがあり、いつでも読んで答えることができます(おそらくロールバックできるトランザクション内)。
チャットシステムを使用すると、これを手動でテストします。これは、アプリが独自に登場するDogFoodingが登場する場所です。あなたがすでにある種のIMをやっていると確信しているので、会社の全員に(開発者からOPSなど)チャットをテストするためにチャットをテストしてください。