Перейти к содержимому

Фотография

Оптимизация теста проверки элементов на странице

Webdriverjavalist arrayList webElements cucumber assert elements

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 MoshneagaOleg

MoshneagaOleg

    Новый участник

  • Members
  • Pip
  • 48 сообщений
  • ФИО:Мошняга Олег Михайлович

Отправлено 27 июля 2018 - 11:21

Суть задачи оптимизировать тест. Проверка элементов на странице. К примеры написан page object, и в нем 20 элементов, нужно как-то оптимизировать тест чтобы не писать 20 шагов в cucumber и тестировать каждый отдельно. Кто может помочь каким-то примером как это делается ? 


  • 0

#2 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 27 июля 2018 - 12:51

Что конкретно Вы подразумеваете под словами "проверка элементов"?

Например - их наличие, их отсутствие, их внешний вид (стили css), правила заполнения полей, условия видимости и т.д.?


  • 0

#3 Spock

Spock

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 27 июля 2018 - 14:17

надо прочитать для чего предназначен кукумбер

 

создатели кукумбера говорят - для приёмочных тестов, а там только основные-базовые проверки

 

а вот "проверять 20 полей" это уже уровень регрессионных тестов, и делаются в нормальном языке программирования - проверки выделяются в отдельный метод и этот метод вызывается в тесте

 

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


  • 0

#4 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 27 июля 2018 - 16:19

Ну достаточно просто сделать метод, который принимает на вход List<T>, внутри которого над всеми элементами выполняем какое-то действие. 

 

Будет что-то типа такого:

И пользователь (проверяет наличие элементов) из таблицы
|Элемент|
|Логин  |
|Пароль |

  • 0

#5 MoshneagaOleg

MoshneagaOleg

    Новый участник

  • Members
  • Pip
  • 48 сообщений
  • ФИО:Мошняга Олег Михайлович

Отправлено 31 июля 2018 - 09:59

Что конкретно Вы подразумеваете под словами "проверка элементов"?

Например - их наличие, их отсутствие, их внешний вид (стили css), правила заполнения полей, условия видимости и т.д.?

Их присутствие на странице, но не писать 20 стэпов 


  • 0

#6 MoshneagaOleg

MoshneagaOleg

    Новый участник

  • Members
  • Pip
  • 48 сообщений
  • ФИО:Мошняга Олег Михайлович

Отправлено 31 июля 2018 - 10:03

 

Ну достаточно просто сделать метод, который принимает на вход List<T>, внутри которого над всеми элементами выполняем какое-то действие. 

 

Будет что-то типа такого:

И пользователь (проверяет наличие элементов) из таблицы
|Элемент|
|Логин  |
|Пароль |

Да, что-то похожее мой знакомый говорил мне, а можно какой-то пример или подробнее описать это, а то я только начинающий 
|buttonX|

|buttonY|

|buttonZ|

как-то через data table

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


  • 0

#7 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 31 июля 2018 - 13:17

Всё зависит от языка, который вы используете.

Я могу привести пример на C#.


  • 0

#8 MoshneagaOleg

MoshneagaOleg

    Новый участник

  • Members
  • Pip
  • 48 сообщений
  • ФИО:Мошняга Олег Михайлович

Отправлено 31 июля 2018 - 13:27

Всё зависит от языка, который вы используете.

Я могу привести пример на C#.

использую java , но буду не против посмотреть ваш пример, может что-то разберу 


  • 0

#9 MoshneagaOleg

MoshneagaOleg

    Новый участник

  • Members
  • Pip
  • 48 сообщений
  • ФИО:Мошняга Олег Михайлович

Отправлено 01 августа 2018 - 09:27

Всё зависит от языка, который вы используете.
Я могу привести пример на C#.


Можно пример ?
  • 0

#10 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 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}' отсутствует.");
                }
            });
        }

  • 0

#11 MoshneagaOleg

MoshneagaOleg

    Новый участник

  • Members
  • Pip
  • 48 сообщений
  • ФИО:Мошняга Олег Михайлович

Отправлено 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 чувствуется, пробелы с параметризацией и лямбда. Ещё раз спасибо за помощь. Теперь есть пример по которому думаю решу свою проблему
  • 0



Темы с аналогичным тегами Webdriverjavalist, arrayList, webElements, cucumber, assert elements

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных