Как утверждать в тестовом случае селена для успешного входа в систему? - PullRequest
1 голос
/ 17 января 2012

Я сделал успешный тестовый селеновый тест для страницы входа , когда пользователь вводит правильное имя пользователя и пароль, а затем нажимает кнопку входа для перенаправления на домашнюю страницу, проблема заключается в том, что когда я меняю пароль в классе теста, тест всегда проходит успешно, я не знаю почему.

вот тестовый класс:

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 не будет, который сейчас является успешным.

Ответы [ 2 ]

8 голосов
/ 17 января 2012

Вы не проверяете, не вошел ли неправильный пароль, когда пользователь вошел в систему.

Вам необходимо поставить тестовый пример, чтобы проверить, после входа в систему, появляется ли какой-то определенный текст.

Мне нравитсянапример, если пользователь успешно вошел в систему, на экране приветствия появится «Привет, имя пользователя».Так что вам нужно assert, если текст присутствует после того, как ваш скрипт селена нажмет на loginBtn

В настоящее время все, что вы делаете, это отправляете текст " some " в качестве пароля, seleniumочевидно, не будет знать, является ли пароль неправильным, если вы не подтвердите результат ввода неверного пароля.

Редактировать


Фрагмент кода в RUBY-

assert(@driver.find_element(:tag_name => "body").text.include?("Welcome UserName"),"The User successfully logs in")
0 голосов
/ 01 марта 2017

Чтобы проверить ваш сценарий, ваше приложение должно отобразить сообщение типа «Введен неверный пароль».

Тогда попробуйте это после нажатия кнопки входа.

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());

}
...