Суть задачи оптимизировать тест. Проверка элементов на странице. К примеры написан page object, и в нем 20 элементов, нужно как-то оптимизировать тест чтобы не писать 20 шагов в cucumber и тестировать каждый отдельно. Кто может помочь каким-то примером как это делается ?
Оптимизация теста проверки элементов на странице
#1
Отправлено 27 июля 2018 - 11:21
#2
Отправлено 27 июля 2018 - 12:51
Что конкретно Вы подразумеваете под словами "проверка элементов"?
Например - их наличие, их отсутствие, их внешний вид (стили css), правила заполнения полей, условия видимости и т.д.?
#3
Отправлено 27 июля 2018 - 14:17
надо прочитать для чего предназначен кукумбер
создатели кукумбера говорят - для приёмочных тестов, а там только основные-базовые проверки
а вот "проверять 20 полей" это уже уровень регрессионных тестов, и делаются в нормальном языке программирования - проверки выделяются в отдельный метод и этот метод вызывается в тесте
в кукумбере конечно есть вызов других шагов, но это муторно и делать и поддерживать, и не рекомендуется
#4
Отправлено 27 июля 2018 - 16:19
Ну достаточно просто сделать метод, который принимает на вход List<T>, внутри которого над всеми элементами выполняем какое-то действие.
Будет что-то типа такого:
И пользователь (проверяет наличие элементов) из таблицы |Элемент| |Логин | |Пароль |
#5
Отправлено 31 июля 2018 - 09:59
Что конкретно Вы подразумеваете под словами "проверка элементов"?
Например - их наличие, их отсутствие, их внешний вид (стили css), правила заполнения полей, условия видимости и т.д.?
Их присутствие на странице, но не писать 20 стэпов
#6
Отправлено 31 июля 2018 - 10:03
Ну достаточно просто сделать метод, который принимает на вход List<T>, внутри которого над всеми элементами выполняем какое-то действие.
Будет что-то типа такого:
И пользователь (проверяет наличие элементов) из таблицы |Элемент| |Логин | |Пароль |
Да, что-то похожее мой знакомый говорил мне, а можно какой-то пример или подробнее описать это, а то я только начинающий
|buttonX|
|buttonY|
|buttonZ|
как-то через data table
но все примеры которые я нахожу они только с заполнением ячеек
Буду очень благодарен, за подробный ответ
#7
Отправлено 31 июля 2018 - 13:17
Всё зависит от языка, который вы используете.
Я могу привести пример на C#.
#8
Отправлено 31 июля 2018 - 13:27
Всё зависит от языка, который вы используете.
Я могу привести пример на C#.
использую java , но буду не против посмотреть ваш пример, может что-то разберу
#9
Отправлено 01 августа 2018 - 09:27
Всё зависит от языка, который вы используете.
Я могу привести пример на C#.
Можно пример ?
#10
Отправлено 01 августа 2018 - 10:53
Всё зависит от языка, который вы используете.
Я могу привести пример на C#.
Можно пример ?
Закрутился.
Вообще, я юзал в Java данный фреймворк (естественно придётся допиливать его обильно, я бы даже сказал перепиливать, но это приходит со временем) - https://github.com/sbtqa/page-factory
Очень упрощает написание шагов.
Ну а так, на C# написал подобный фреймворк, у меня это выглядело так:
Сценарий: Проверка наличия элементов Когда открывается страница "Главная" Тогда пользователь (проверяет наличие элемента) из списка | Название элемента | | Войти | | Контактная информация | | Навигация |
Метод:
[ActionTitle("проверяет наличие элемента")] public virtual void CheckElementExists(List<object> elementTitles) { Assert.Multiple(() => { foreach (var elementTitle in elementTitles) { var element = GetElementByTitle(elementTitle.ToString()) as IWebElement; var result = element.Wait().Until(_ => _.Exists()); if (result) AllureSteps.AddSingleStep($"Проверено наличие элемента '{elementTitle}'."); else AllureSteps.AddSingleStep($"Элемент '{elementTitle}' отсутствует.", Status.failed); Assert.IsTrue(result, $"Элемент '{elementTitle}' отсутствует."); } }); }
#11
Отправлено 01 августа 2018 - 11:25
Всё зависит от языка, который вы используете.
Я могу привести пример на C#.
Можно пример ?
Закрутился.
Вообще, я юзал в Java данный фреймворк (естественно придётся допиливать его обильно, я бы даже сказал перепиливать, но это приходит со временем) - https://github.com/sbtqa/page-factory
Очень упрощает написание шагов.
Ну а так, на C# написал подобный фреймворк, у меня это выглядело так:Сценарий: Проверка наличия элементов Когда открывается страница "Главная" Тогда пользователь (проверяет наличие элемента) из списка | Название элемента | | Войти | | Контактная информация | | Навигация |Метод:[ActionTitle("проверяет наличие элемента")] public virtual void CheckElementExists(List<object> elementTitles) { Assert.Multiple(() => { foreach (var elementTitle in elementTitles) { var element = GetElementByTitle(elementTitle.ToString()) as IWebElement; var result = element.Wait().Until(_ => _.Exists()); if (result) AllureSteps.AddSingleStep($"Проверено наличие элемента '{elementTitle}'."); else AllureSteps.AddSingleStep($"Элемент '{elementTitle}' отсутствует.", Status.failed); Assert.IsTrue(result, $"Элемент '{elementTitle}' отсутствует."); } }); }
Спасибо большое, сам только начал с автоматизацией, нехватка java чувствуется, пробелы с параметризацией и лямбда. Ещё раз спасибо за помощь. Теперь есть пример по которому думаю решу свою проблему
Темы с аналогичным тегами Webdriverjavalist, arrayList, webElements, cucumber, assert elements
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных