nigilit
(nigilit)
#1
Здраствуйте,
Использую Selenium, TestNG и датапровайдери для проведения Data Driven Tests.
Тестирую форму значение которой менять нельзя но надо протестировать на обязательние поля и другие сообщения и ошыбки которые выдает форма.
Тестирование ведеться по одному полю - куда ввожу заведомо неправильные значения и проверяю выводяться ли правильно ошыбки.
Каждий дата провайдер - тестирует отдельное поле на конкретный набор ощыбок и проверяет пропустил ли валидатор форму или нет.
Нужно зделать так чтоб, если валидатор пропустил форму хотя бы 1 раз - остальные дата провайдеры были помечены как Skip.
Если с формой проблема и валидатор поломался тест не должен внести изменения во все поля этой формы.
nigilit
(nigilit)
#2
Разобрался.
Реализовал с помощю @AfterMethod и переменной ITestResult.
В каждом тесте делаю проверку на то был ли предыдущий метод с таким же именем успешен.
polusok
(Mykhailo Poliarush)
#3
если решили, приложите пожалуйста код, чтобы другие также увидели его,
спасибо больше
nigilit
(nigilit)
#4
Конечно,
Обявляю переменную testResults с результатами тестов в шапке класса:
public class be_settings_test extends BaseTest{
public Map <String, Boolean> testResults = new HashMap<String, Boolean>();
вот AfterMethod
@AfterMethod
public void afterTest(ITestResult result){
testResults.put(result.getName(), result.isSuccess());
}
Вот пример тестового метода тестового класса (методов много. В моем случае каждый метод тестирует отдельную форму в разделе Settings):
@Test(dataProvider = "Settings", priority=1, enabled=true, description = "")
public void TestIncorrectSettings(Map<String, Map<String, String>> fieldsData, Map<String, List<String>> expectedErrors) throws InterruptedException{
if(!testResults.containsKey("TestIncorrectSettings")||testResults.get("TestIncorrectSettings")){
/*Код Теста*/
}
else{
throw new SkipException("Something wrong with form. Test was skiped to avoid damage.");
}
}
Таким образом мы заполняем HashMap testResults результатами выполнения тестових методов и в теле метода проверяем был ли Фейл по даному методу.
Если был - пропускаем выполнение.