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

Практикум по тест-дизайну 2.0
онлайн, начало 29 ноября
Тестирование мобильных приложений
онлайн, начало 27 ноября
Автоматизатор мобильных приложений
онлайн, начало 27 ноября
Программирование на Python для тестировщиков
онлайн, начало 22 ноября
Фотография

Как правильно тестировать Web (Java EE) приложение со множеством форм

selenium java testing autotesting автотестирование

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

#1 Stormer

Stormer

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Gig Igor


Отправлено 12 Январь 2017 - 10:22

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

 

А если у меня есть приложение Java EE (GWT, Spring), в котором есть много таблиц/подчиненных таблиц. В таблицу можно добавлять данные, тогда она без обновления страницы обновляется и т.п.

 

Как это правильно тестировать? Искать элементы, используя локаторы/xpath..., просто это будет всё намного более запутанное?

 

Кому не сложно, поскидывайте примеры реально СЛОЖНЫХ selenium автотестов. А не тестов вида "ввести текст в поля, нажать кнопочку, перейти на страницу, проверить, что присутствует текст".

 

Хочется что-то типа: "нажать одну из кнопок "добавить"(именно одну из нескольких с одинаковым названием, расположенных под разными таблицами), в выпадающем окне заполнить поля a1,a2,a3...., нажать в этом же выпадающем окне ОК, в таблице найти запись с полями a1,a2,a3,.... соответствующим колонками b1,b2,b3,...., если нашли, то тест пройден".

 

Вот примеры такого хочется увидеть. Ведь по идее, если всё это делать в таком же стиле, в каком делаются простые тесты, примеры которых я постоянно вижу, то будет куча строк вида findElementById, будет много-много такого в общем одинакового кода. Который сложен лишь тем, что приходится искать много элементов во многих местах.

 

Правилен ли такой подход, объясните, кто знает?


  • 0

#2 Little_CJIOH

Little_CJIOH

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 427 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 12 Январь 2017 - 10:42

PageObject.
  • 0

#3 Stormer

Stormer

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Gig Igor


Отправлено 12 Январь 2017 - 19:08

PageObject.

Ого, коротко и ясно. Спасибо, коль так!


  • 0

#4 Molechka

Molechka

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 205 сообщений
  • ФИО:Ольга Назина (Киселева)
  • Город:Москва


Отправлено 13 Январь 2017 - 04:59

Павел подсказывает, в какую сторону вам гуглить))

 

Логично, что в интернете простые примеры — ведь они показывают, как начать. Так, чтобы любой мог взять и повторить.

А потом, когда начал, потихоньку начинаешь делаешь лучше — курить мануал селениума и своего языка программирования, смотреть, как это можно сделать лучше и быстрее. И либо самому этот маршрут проходить, либо на курс записаться и огрести все грабельки там (рекомендую здешние курсы типа «Программирование для тестировщиков»).

 

Сложные примеры сложно найти:

1. Если проект сложный — он реальный, а не просто "ввели в гугл слово и тыкнуть Найти". А реальные проекты в открытый доступ не выкладывают ибо NDA. Но можно поискать open source проекты и посмотреть на их тесты, если они там есть ))))

2. Сложные примеры мало что дадут. У вас то все по другому. Так то, пока смотришь, вроде и понятно, а как применить, так ступор и требуются пояснения))) Плюс хорошо покрыть комментариями его надо, иначе автора будут дергать "а как это сделал? а зачем то?".

 

Хотя, безусловно, такие примеры тоже будут приносить пользу — тем, кто разбирается в этом... Но не верю, что совсем нельзя нагуглить ни одного сложного примера) Обычно это статьи по теме "как сделать то и то", с примерами. Просто их надо искать по конкретным ключевым словам, а не абстрактно "сложный пример" )


  • 0
Автор сайта для начинающих тестировщиков http://testbase.ru/
Автор портала проверки названий багов http://bugred.ru/
Веду блог http://okiseleva.blogspot.com/

#5 Stormer

Stormer

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Gig Igor


Отправлено 13 Январь 2017 - 08:09

Ну да, просто по той же Java/Android (ну и в принципе по всему остальному) как-то легче удавалось найти что-то, отличающееся от "добавить кнопочку на формочку" в сторону усложнения. А с автотестами трудновато.

 

Я это к тому, что вот делал я подобного рода тесты, а меня позвали на собеседование на middle/senior qa automation engineer. А я ж знаю, что с крутыми тестами пока дело не имел, что мне там рассказывать. Вот и пытаюсь поискать.

 

Ну да, курсы - как вариант. Но что-то я привык всё сам искать. Но мб попробую и их.


  • 0

#6 Molechka

Molechka

    Гуру

  • Members
  • PipPipPipPipPipPip
  • 1 205 сообщений
  • ФИО:Ольга Назина (Киселева)
  • Город:Москва


Отправлено 13 Январь 2017 - 09:25

Самообучение — тоже вариант, почему бы и нет :)

Тогда я рекомендую http://selenium2.ru/docs.html

 

Просто если вас будут спрашивать о чем-то сложном, то тут нужен именно личный опыт, а не просто «почитал в интернете».

Поэтому сделайте свой проект со всякими сложностями и гуглите уже конкретные темы — "Как сделать правильно вот тут?", а не абстрактные "Как в целом хорошо" =)

 

Посмотрите примеры на этом форуме, есть вполне конкретные темы — вот мой кусок кода, можно ли его улучшить? Или "почему оно не пашет" =)


  • 0
Автор сайта для начинающих тестировщиков http://testbase.ru/
Автор портала проверки названий багов http://bugred.ru/
Веду блог http://okiseleva.blogspot.com/

#7 appmen

appmen

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

  • Members
  • PipPipPipPip
  • 408 сообщений
  • ФИО:Victor

Отправлено 13 Январь 2017 - 10:56

PageObject.

А в чём разница между много-много @FindBy и driver.findElement()? И того и того будет много.

Stormer, то, что вы описали делается так же, как и примеры в интернете, просто шагов больше.


  • 0

#8 baxatob

baxatob

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

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Юрий
  • Город:Riga

Отправлено 13 Январь 2017 - 11:01

Изучите PageObject как паттерн проектирования. Чтобы стало понятно, куда прятать все эти бесконечные driver.find, локаторы и т.п. Сам тест нужно делать так, чтобы он выглядел как набор высокоуровневых процедур, типа:

start_application(admin_user)
open_document(invoice)
check_required_fields()
stop_application()

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


  • 1

#9 Stormer

Stormer

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

  • Members
  • Pip
  • 20 сообщений
  • ФИО:Gig Igor


Отправлено 16 Январь 2017 - 10:18

Ок. А еще вопрос: не подскажете, где можно почитать про "каркасы" типовых проектов? Это я о том, что есть у меня допустим веб-приложение. Хочу я к нему проект автотестов в Intellij Idea сделать. Я, конечно, могу просто писать Java-классы, соответствующие тестам.

 

Но вот посмотрел, к примеру, проект селениум автотестов для Wikia - там у проекта своя структура. Тесты запускаются определенными командами.

Почему они организовали проект именно так, а не иначе? Еще где-то в интернете видел, как ребята предлагают своё плагин для Intellij, который добавляет при создании проекта шаблон проекта автотестов. Там опять по-другому.

 

Хочется найти что-то про то, как создавать структуру проектов правильно.


  • 0


Программирование на С# для тестировщиков
онлайн
Автоматизатор мобильных приложений
онлайн
Selenium WebDriver: полное руководство
онлайн
Программирование на Python для тестировщиков
онлайн




Темы с аналогичным тегами selenium, java, testing, autotesting, автотестирование

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

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

Яндекс.Метрика
Реклама на портале