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

Фотография

Как правильно тестировать 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 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 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 224 сообщений
  • ФИО:Ольга Назина (Киселева)
  • Город:Москва


Отправлено 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 224 сообщений
  • ФИО:Ольга Назина (Киселева)
  • Город:Москва


Отправлено 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, java, testing, autotesting, автотестирование

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

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