0

Web アプリケーションをテストしており、サンプル テスト ケースには次の 3 つのステップがあります。

  1. ユーザーネームを入力してください
  2. パスワードを入力する
  3. 「ログイン」をクリック

    driver.findElement(By.id("username")).sendKeys(username);
    driver.findElement(By.id("password")).sendKeys(password);
    driver.findElement(By.id("LoginButton")).click();
    

どのステップが成功し、どのステップが失敗したかを示すレポートを生成する必要があります。これらの各行が正常に実行されたことを知るメカニズムはありますか? Seleniumには何らかの組み込みのアクティビティ/イベントリスナーがありますか?

4

4 に答える 4

1

Verify または Assert を使用して、ページに何かが存在するか存在しないかを確認できます。Verify はブール値を返し、実行を継続しますが、Assert on false はテストを停止します。

この特定のケースでは、id=username の要素にユーザー名を入力したことを確認できます。したがって、コードは次のようになります。

driver.findElement(By.id("username")).sendKeys(username); // this will enter username
assertEquals(selenium.getValue("id=username"), username); // this will check that text in your username field is 'username' (also you may use Assert.IsTrue)

私が知る限り、Selenium 2 Webdriver には verifyTextPresent があるので、これを使用できます。

try
{
assertEquals(selenium.getValue("id=username"), username); // put message into your log: success
}
catch (Exception)
{
// put message into your log: failed
}

ボタンのクリックを確認することをお勧めしますが、ログインしたという通知を待ちます。たとえば、「こんにちは、{username}」というテキストが表示されるか、新しい要素 (ログイン前に存在しない) も表示される場合があります。したがって、この要素が存在する場合、間違いなくログインしています。

于 2013-05-03T08:12:01.510 に答える
0

各ステップが成功したかどうかを確認したい場合は、(ユニット テスト フレームワークに応じて) いくつかのアサートを配置して、ステップが成功したことを確認します。

たとえば、ユーザー名フィールドが実際に入力を受け取ったことを確認するには、入力されたユーザー名のテキストがユーザー名フィールドに含まれていることをすぐに確認できます。

擬似コード:

IWebElement element = driver.findElement(By.id("username"));
element.sendKeys(username);
assertsEquals(username, element.text);

同様に、クリックが成功したことを確認するには、次のページで期待される要素が存在することを確認してアサートし、ログインが成功したことを示します。

于 2013-05-02T15:52:38.903 に答える
0

Selenium が例外をスローしない場合、行は正常に実行されます。

しかし問題は、成功をどのように定義するかです。LoginButton をクリックした後にロードされたサイトをチェックして、Web アプリケーションの動作が期待どおりであることを確認します。

于 2013-05-02T15:54:57.940 に答える