2016-06-20 7 views
0

初めてのポスター、長時間のlurker。私はこのサイトの問題に大きなアドバイスをもらっていますが、この質問のトピックでは何も見つかりませんでした。通常、私は事務所で中小企業に迷惑をかけてしまいますが、それは不利です。セレンによる永続的なバックグラウンドチェック

したがって、我々は自動テストを行うためにSelenium Web Driverを使用します。私はいくつかのマッピング機能と人口統計機能を備えたアプリケーションに取り組んでいます。そのため、私のテストは非常に機能的なものです。

私のテストは、私がパズルの一部であるクラス/メソッドを持っているように書かれています(このサイトは基本的に1ページから5ページに移動し、たとえば、テストAでは4ページ目の結果が5ページに表示されている場合がありますが、テストAでは5ページの結果が表示されます。

とにかく、手動テストでは、エラーを検出した場合に表示される非表示のdivですが、通常は非常に一般的な/あいまいなエラーです)このエラーは、他の悪影響がなくフローを通過できる場合でもポップアップすることがあります。これらのエラーが発生したときにキャプチャして、パターンを探すことができます。これは、単にコンソールにログオンするか、テストに失敗することを意味します。私は後でそれを理解することができます。

すぐに問題が発生すると、すべてのテストで常にこのエラーが検出されます。私はメソッドを作成し、それを私の "アクション"メソッドで呼び出すことができますが、これはギャップを残してテストを遅らせるでしょう。テストを遅くすることなく、あるいは私がプロセスの一歩を踏む毎にこのチェックを呼び出すことなく、このようなものを実装する巧妙な方法はありますか?また、私はまだJavaとセレンのWebドライバを学んでいるので、私は愚かな何かを言ったことを許して、それが理由です。

答えて

0

このメッセージは永続的ですので、テストケースのティアダウンメソッドでチェックを追加してみてください。 (ただし、そのチェックを行う前に暗黙の待機時間を減らすことをお勧めします。そうしないと、各テストではそこにないエラーメッセージを待つ余分な時間がかかります)。

もう一つの可能​​なオプションは、独自のテストランナーで独自のリスナーを定義し、testFinished()メソッドを更新してエラーメッセージを確認します。いくつかのアイデアについてSee this

+0

ありがとうございます - 私はカスタムランナーを作成する可能性を研究しています。しかし、明らかにするために、エラー自体はテストを通して表示されません。約3秒間表示されてから隠れた状態に戻ります。 – lrossignol

0

エラーメッセージは常に各ページの既知の場所にあるように聞こえるので、エラーが発生しているかどうかを調べる方法(または、特定のページのエラーメッセージの場所の数に応じてメソッドを作成します)ページを出る前にログに記録してください。あなたがページオブジェクトモデルを使用しているように聞こえます。その場合は、これらのメソッドを関連する各ページオブジェクトに追加して、簡単にアクセスできます。

注:ページを閉じる前にエラーを一度確認するだけでは不十分な場合があります。エラーが発生する可能性があるアクションを実行するたびに、チェックする必要があります。とにかくエラーをデバッグするのに役立つので、これはおそらく悪い習慣ではないでしょう。なぜなら、エラーが発生した時刻に近いエラーに気づき、エラーの原因を絞り込んでしまうからです。

能力がある場合は、テストに失敗しないように警告としてログに記録し、ログで目立つようにします(検索可能)。

これらのエラーをすべてチェックすると、スクリプトが大幅に遅くなることが懸念されます。正しく書かれていれば、それはかなりの遅延を加えてはならない。暗黙の待機がオンになっていて、存在しない要素がないかどうかを確認している場合(たとえば、エラーがない限り)には、重大な遅れが生じます。これにより、欠落している要素を検索するたびに暗黙の待機が適用され、実行時間にかなりの時間が追加される可能性があります。私の提案は、暗黙の待機を無効にし、必要な場合にのみ明示的な待機を追加することです。要素を検索するには時間がかかるが、ここでは25msを追加し、全体的なスクリプトの実行で無視してください。

+0

あなたは正しいです。私は先に進んで、最もエラーをもたらすアクションに非常に単純なチェックを加えました。以前は、私たちのフレームワークで、次のステップに進む前にページオブジェクトが見えるようになるまで待つメソッドを使用しました。代わりに、私は、エラーをチェックし、分析プロセス中に現れた場合にテストが失敗するメソッドを作成しました(後で変更される可能性があります)。分析が完了するとすぐに500msごとにポーリングを行い、パフォーマンスに影響はありません。 – lrossignol

関連する問題