3

私は一時的に、JUnit 4 と Selenium WebDriver を使用したテスト自動化で QA チームを支援する開発者です。テストとテストの自動化は初めてです。

さまざまな WebDriver の例を見ると、一般的なパターンは、@Before メソッドで WebDriver (FirefoxWebDriver など) の実装をインスタンス化し、@Test メソッドでインスタンスを使用してブラウザーとインターフェースし、@After で driver.quit() を使用することです。

したがって、5 つの @Test メソッドがある場合、ブラウザーが開かれ、テスト アプリが初期化され、ブラウザーが閉じられます。

私の質問は、なぜ各テストケースで開く、初期化、閉じる必要があるのですか? 私の推測では、1 つのテスト ケースの失敗が他のテストに悪影響を及ぼさないようにすることです。これは正しいです?他に理由はありますか?

4

2 に答える 2

5

素晴らしい質問です。

OTHER サイドから来て、私は QA 自動化テスト エンジニアであり、開発チームと一緒に自動化に取り組んでいます...

@Prateek と私が指摘したように、いくつかの理由があります。

最も明白な2つ:

  1. テストの主な目的は、エラーを特定することです。すべてのテストを一度に実行して失敗した場合、失敗した場所を特定できません。〜プラテック

  2. マルチスレッドも理由の 1 つです。実行する必要のある何千もの回帰テストがある会社を想像してみてください。各テストを分離すると、他のテストから完全に独立し、潜在的にすべて同時に実行できるようになります (アプリが処理できると仮定します)。各テストの実行には 1 分、実行には1x1000=1000数分かかります。わずか 1 分ですべてのテストを完了するのではなく、各テストを順番に実行してください。

したがって、ここでの仮定は正しいです-

私の推測では、1 つのテスト ケースの失敗が他のテストに悪影響を及ぼさないようにすることです。これは正しいです?

もちろん、それだけではありません。

于 2013-10-11T17:17:52.123 に答える
2

もう 1 つの理由があります。WebDriver がインスタンス化されるたびに、ブラウザのキャッシュをクリアする新しいプロファイルが作成されます。現在、ブラウザのキャッシュをクリアする方法は他にありません。

于 2013-10-12T03:48:20.853 に答える