Насколько эффективно я могу использовать записанные тесты автоматизации для других выпусков приложения
У меня есть веб-приложение, я хочу записать контрольные примеры и воспроизвести их.
1-й выпуск приложения, у меня есть модуль входа в систему, который имеет имя пользователя и пароль и записал 500 тестовых случаев для всего приложения. Среди 500 тестовых случаев 200 тестовых случаев используют ведение журнала по имени пользователя и паролю.
2-й выпуск приложения, у меня есть модуль входа в систему, который имеет только имя пользователя, поэтому я хочу использовать ранее записанные тестовые наборы с изменениями, а не переходить на все тестовые сценарии и менять поле пароля. Здесь у меня есть некоторые требования к структуре тестирования
- Могу ли я получить результаты тестов, изменив поле, как в примере выше?
- Есть ли способ обновить по-простому, не переходя как во все файлы и не меняя
Я использовал различные инструменты тестирования UI Automation, и параметры записи и воспроизведения очень хороши, но я не смог найти нужный путь в среде тестирования UI Automation.
Есть ли какие-либо рамки, которые делают работу для меня?
Заранее спасибо.
1 ответ
Это яркий пример того, почему вы никогда не должны записывать тестовый случай селена. Всякий раз, когда вы хотите обновить что-то вроде входа в систему, вы должны изменить их все.
Что вы должны сделать, это создать тестовый комплект / среду для вашего приложения.
1. Начните с создания класса для каждой веб-страницы с 1 функцией для каждого элемента, к которому вы хотите иметь доступ.
public By username(){
return By.cssSelector("input[id$='username']"); }
2.Создайте вспомогательные классы, в которых вы создаете последовательности, которые вы часто используете.
public void login(String username, String password){
items.username().sendkeys(username);
items.password().sendkeys(password);
}
3.В вашей общей настройке теста добавьте вашу функцию входа
@BeforeMethod(alwaysRun = true)
public void setUp() {
helper.login("user","password");
}
Это дает вам возможность программно создавать ваши тесты. Например, если вы хотите использовать одни и те же тестовые примеры для другого модуля входа в систему, где отсутствует элемент пароля, его можно изменить следующим образом.
items.username().sendkeys(username);
if(isElementPresent(items.password())
items.password().sendkeys(password);
Функция isElementPresent может выглядеть так
public boolean isElementPresent(By locator){
try {
driver.findElement(locator);
logger.trace( "Element " + stripBy(locator) + " found");
} catch (NoSuchElementException e) {
logger.trace( "Element " + stripBy(locator) + " not found");
return false;
}
return true;
}