1

私は、ユーザが正しいユーザ名とパスワードを入力ログインページ、用成功セレンテストケースを作った後、ホーム・ページに転送さへのログインを打つ、問題 iはテストクラスでパスワードを変更したときということです、テストは常に成功する理由はわかりません。ログイン成功のためのセレンテストケースでのアサート方法は?

は、ここでは、テストクラスです:

public class LoginTest extends TestCase { 

    private WebDriver driver; 
    private String baseUrl; 
    private StringBuffer verificationErrors = new StringBuffer(); 

    @Before 
    public void setUp() throws Exception { 
     driver = new FirefoxDriver(); 
     baseUrl = "http://localhost:8080"; 
    } 

    @Test 
    public void testLoginClass() throws Exception { 
     driver.get(baseUrl + "/MyAPP/login"); 
     driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 

     driver.findElement(By.id("j_username")).clear(); 
     driver.findElement(By.id("j_username")).sendKeys("1"); 
     driver.findElement(By.id("j_password")).clear(); 
     driver.findElement(By.id("j_password")).sendKeys("wrong password"); 
     driver.findElement(By.id("loginBtn")).click(); 

    } 

    @After 
    public void tearDown() throws Exception { 
     driver.quit(); 
     String verificationErrorString = verificationErrors.toString(); 
     if (!"".equals(verificationErrorString)) { 
      fail(verificationErrorString); 
     } 
    } 

    @SuppressWarnings("unused") 
    private boolean isElementPresent(By by) { 
     try { 
      driver.findElement(by); 
      return true; 
     } catch (NoSuchElementException e) { 
      return false; 
     } 
    } 

} 

のはいつか後にデータベースが変更され、今の成功でそのような利用者1がありませんと仮定してみましょう、テストケースの失敗を処理する方法をアドバイスしてください。

答えて

8

あなたが間違ったパスワードはログインしているユーザーを得たかどうかを確認するためにチェックしていません。

いくつかの特定のテキストが表示された場合は、ログイン後にチェックするためのテストケースを配置する必要があります。ユーザーが正常にログインしている場合例えば同様

は、ようこそ画面には、「こんにちはユーザー名」が表示されます。パスワードが間違っているのであれば、あなたのセレンのスクリプトは現在、あなたがやっているすべてのパスワードとして「一部」テキストを送信しているloginBtn

に当たった後にテキストが存在する場合は、assertに必要な、セレンは明らかに、知ることができませんあなたが間違ったパスワードを入力した結果を検証しない限り。

編集


RUBY-

assert(@driver.find_element(:tag_name => "body").text.include?("Welcome UserName"),"The User successfully logs in") 
+0

コードスニペットはそのように主張してください。 –

+0

私はアサーションを含めるように編集しました。それはルビーの – Amey

+0

にありますので、その作業はあなたのためにできましたか? – Amey

0

のコードスニペットあなたのシナリオを検証するために、あなたのアプリケーションは、次のようなメッセージ表示されるはず "無効なパスワードが入力されています。"

ログインボタンをクリックしてから試してください。

try { 
    assertEquals(driver.findElement(By.id("Your Id for the message")).getText(), "Invalid UserID or Password Entered"); 

    //If the message is displayed 

    System.out.println("PASS"); 

} catch (Exception e) { 

    //If the message is not displayed 

    System.out.println("FAIL"); 

    verificationErrors.append(e.toString()); 

}