Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Что у Вас получилось с Selenium?


(ffess) #1

Привет всем!

Готовлю доклад о тулах, которые использую (WebDriver+%language%+etc), возникла необходимость серьезного исследования. Решил попросить Вашей помощи.

Просьба такая:

Не могли бы Вы поделится некоторой частью кода (желательно несколько файликов :smile:), где были бы такие штуки:

  • Page Objects
  • непосредственно тесты
  • что-то еще, что Вы посчитаете важным

Речь идет о том, что я решил попробовать сравнить разные техники/тулы на разных языках, будучи уверенным, что каждый из языков, которые можно использовать с webdriver’ом, “наложил” свой отпечаток на тулы которые на нем разрабатывались (для webdriver). Надеюсь, что подобный список готовых тул-сетов может кому нибудь еще пригодиться.

Механизм: думаю, что проще всего и доступней будут небольшие репозитории на гитхабе :smile:

Заранее спасибо.
Буду ждать.
ffess


(Funker) #2

а самому поискать там же?


(ffess) #3

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

Предположил, возможно, ошибочно, пойду поищу.

Но на всякий случай: не откажусь от помощи сообщества :wink:


(Funker) #4

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


(asolntsev) #5

Привет!
Вот в этом проекте я сделал примеры PageObject в разных стилях:

  • классический Selenium-style PageObject
  • PageObject в стиле Selenide
  • тот же тест вообще без PageObject

А вот тут небольшая статья про пэдж-объекты: http://ru.selenide.org/documentation/screenshots.html


(ffess) #6

ну это не для кого не секрет, всем известно что популярное, а что “экзотика”
моя цель сравнение не языков, а инструментов

например, мне интересно как выглядят пейдж обджекты в реальном проекте на пайтоне + как там же (Robot Framework, etc) описаны сами тесты, только не Hello World, который в туториалах есть, а более-менее сложные (реальные) вещи

ну и подобные кейсы же на других “мейнстрим”-языках: java, c#, php, etc


(Funker) #7

еще раз повторюсь, это все можно найти на github с примерами и прочими штуками

а что тут сравнивать инструмент один - Selenium
или я что-то не понимаю?


(ffess) #8

Спасибо, поковыряю :smile: [quote=“Funker, post:7, topic:5772”]
а что тут сравнивать инструмент один - Seleniumили я что-то не пнимаю?
[/quote]

я имею ввиду сопутствующие (для тех, кто их использует): Thusydides, JBehave, Selenide (как выше было замечено), еще что-нибудь, для java (ну и кучу подобных тулов для других языков, ведь есть совсем похожие: Cucumber, JBehave, SpecFlow; а есть другие),
все эти штуки преследуют похожие цели но реализованы по разному (когда чуть-чуть, когда - совсем), ну и конечно для других языков, я например юзаю Ruby+Selenium/Watir+RSpec/Cucumber+PageObject gem, и у меня есть куча классных впечатлений,и некоторое количество не очень :smile:, я бы хотел смотреть на эти впечатления “сквозь” понимания, как подобные вещи реализованы в других языках/фреймворках, чтоб понимать более объективную картину.

А я еще хотел сравнить это все с точки зрения тулов на разных языках, хотел собрать все фидбеки в кучу о связках язык-Селениум-инструмент, чтоб поковырять сильные и слабые стороны разных решений


(Funker) #9

нужно самому на этих инструментах пописать, чтоб понять сильные и слабые стороны.

практически все, что вы назвали - мертвые инструменты - Thusydides, Selenide, Сucumber, JBehave, SpecFlow - их процент в реальном мире меньше 10%, вы хотите статистику по этим 10% - тогда пожалуйста


(ffess) #10

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

P.S. Если кому то будет интересно, могу кинуть сюда примеры на связках что указал сам


(Yuri Karpovich) #11

Я бы порекомендовал посмотреть на связку Ruby+Watir + PageObject (от Cheezy) + Page Factory (от Cheezy) + Cucumber. Примеры можно посмотреть в блоге Cheezy http://www.cheezyworld.com/2012/12/17/using-cucumber-to-adopt-a-puppy/


(Funker) #12

вот здесь посмотрите Опрос: какой java webdriver framework Вы используете?


(ffess) #13

я их и использую :wink: правда, больше rspec люблю

привет коллега!


(ffess) #14

получается, вышеуказанные умерли, а новых их замен (более-менее распространенных) нет?


(Funker) #15

перефразирую - они практически мертвы их выбирают ничтожно малое количество компаний.

Новые инструменты есть, вот для Java стал стремительно набирать обороты инструмент Thusydides в 2012 году - но как он набрал так и потерял, тестировщики уперлись в ограничения самого инструмента и отказалиль он него. Яндекс test team сперва взяла в последствии тоже отказалась, написала свой собственный велосипед из которого вышли самостоятельные отдельные проекты https://github.com/yandex-qatools


(asolntsev) #16

Ну да, статистика обманчива. :smile:

“Ничтожное малое количество” - это, надо полагать, сотни и тысячи компаний. Вы, наверное, имели в виду, что это 5%-10% компаний, но абсолютные числа немаленькие.

Зато, согласно вышеупомянутому опросу, большинство компаний используют “собственный фреймворк” или “чистый selenium” (что фактически одно и то же). Каждый такой фреймворк используется ровно в одной компании. Вот кого следует назвать мёртвым, согласно вашей логике.


(Mykhailo Poliarush) #17

По пайтону можно посмотреть следующие проекты, а в github-e найти их применение

pymozwebqa

https://github.com/mozilla/marketplace-tests/blob/master/tests/mobile/test_reviews.py#L22

pysaunter

holmium

robotframework

вот еще ссылочка

wtframework

есть еще проекты, но имхо малоиспользуемые например

knitter

https://github.com/hww712/knitter/blob/master/examples/DemoProject/testcase/demo_module.py#L9

и вообще есть смысл еще посмотреть эту тему


(Mykhailo Poliarush) #18

Помнится на ruby еще был проект

chemistrykit


(Dmytro Makhno) #19

Для исследования, мой полувелосипед


Проектик делался для фрилансеров как пример ожиданий, в реальном проекте задействованы теже принципы.

В основе:

  • пишем броузерные тесты только если без них никак
  • если броузер не подкючен игнорить тесты
  • броузерные тесты живут рядом с обычными
  • заимствован код из wtframework ( https://github.com/wiredrive/wtframework ), к driver примешивается splinter ( https://Github.com/pytest-dev/pytest-splinter )
  • бекенд девам нужно минимум времени чтобы прочитать и написать тест

P.S. Код делался попутно читая питон книги и возможно сейчас какие-то вещи были бы сделаны по другому. Но велосипед едет год++ и не требует пока “апгрейда” :smiley:


(Mykhailo Poliarush) #20

Кстати, стартанул новый небольшой сайд проект

A curated list of awesome test automation frameworks, tools, libraries, and software for different programming languages
https://github.com/atinfo/awesome-test-automation.

Приглашаю к активному участию! В какой-то степени пересекается с работой автора темы.