Нужен пример Page Object, Page Factory, Driver Factory фреймворка на Python, чтоб начать писать тести через несколько дней.

pageobject
webdriver
python
Теги: #<Tag:0x00007fedbc129fb0> #<Tag:0x00007fedbc129df8> #<Tag:0x00007fedbc129c90>

(Taras) #1

Привет всем, у меня довольно хороший и большой опит автоматизации на Java. Есть даже SCJP Java сертификат, стараюсь писать флексабильний код и по конвеншину, дженерики, ООР, анотации итд итп, короче все блага которие дает Java использую как могу…но тут приходит мой любимий заказчик Браян и говорит мне “чувак, у тебя отлично получаеться на Java, а теперь у нас есть еще один проект как минимум на 2 года но на Python”.
Для меня язик с нижними подчеркиваниями в названиях переменних, нетепизирований итд ето сущий ад ! Python не видел в глаза ни разу. Нужно писать селениум тести…я знаю здесь есть такие гуру как Миша Поляруш,…напишите короткую инструкцию как с хорошими знаниями Java перейти на Python что б не обидеть никого потом)) либо может какие то ссилки на github с репозиториями простих фреймворков, …

блин, что тут говорить, я даже не знаю какое IDE лучше использовать)))

Спасибо за помощь наперед


(Sergey Pirogov) #2

Аналогичная ситуация


(rmerkushin) #3

Посмотрите для примера Webium, в качестве основы для тестов советую PyTest. По поводу IDE, по сути для питона может хватить и редактора текста с подсветкой синтаксиса, например Sublime Text, но если очень хочется IDE, тогда PyCharm :smile:

P.S.: по поводу подчеркивания в названиях переменных и динамической типизации - во-первых, вас никто не обязывает следовать pep8, можете хоть camel case + венгерская нотация вместе использовать :smiley: во-вторых, когда глубже узнаете питон, поймете на сколько он крут и какие фишки дает динамическая типизация :wink:


(Николай Павлов) #4

По поводу перехода с Java на Python читал как-то онлайн книгу (http://ru.diveintopython.net/index.html) читать там на пол дня, но зато быстро вникаешь во многие нюансы Python, при этом есть объяснения как тот или иной код пишется на С++ и Java, и как на Python.

В качестве IDE использую плагин для Eclipse, называется PyDev.


(zub_test) #5

Поможет вникнуть:
http://learnxinyminutes.com/docs/python/


(Ayia) #6

В этот четверг, 3 сентября, вечером, покажу расскажу все в деталях. Ждите анонса на доу с информацией “что, где, когда” (думаю завтра будет до обеда)

Примерно план такой:

  • имея “готовый селениум враппер” как покрыть просто и эффективно тестами реальную страницу вкючая использование PageObject шаблона, на python
  • как за час-полтора (примерно) построить этот враппер с нуля таким образом что бы “просто и эффективно” было не только на словах

Будем в который раз строить аналог Selenide/Capybara (которого в питоне пока нет) но более полноценно (в прошлые разы строили только самую базу за 15 минут)

Цель - показать что с помощью современного Selenium можно просто строить веб юай автомейшен на любом языке, тем более на python. Даже если нет крутых готовых врапперов типа Selenide.

Дабы не получить много критики за только одну рекламу :smile:
Вот линка на Selene: https://github.com/yashaka/selene/
Который как раз позволяет строить простые пейджобджекты и намного больше. По линке можно найти достаточно примеров.

Собственно в четверг как раз и “перепишем” основную часть Selene.
Зачем переписывать? Затем что Selene чересчур умный и поэтому до сих пор недописанный до конца :smile:

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

Пайтон простой язык и понять что будет происходить если есть опыт программирование но на другом языке - реально.
Но если есть намерение в ближайешм будущем писать на питоне, рекомендую уже чейчас браться за https://github.com/gregmalcolm/python_koans

Что бы выбрать для себя юнит тест фреймворк - pytest или nose например - рекомендую начать отсюда: http://pythontesting.net/start-here/


(Taras) #7

ето будет вебинар ?


(Ayia) #8

http://learnxinyminutes.com/docs/python/

  • это просто дока - быстрого введения в питон

Ивент в четверг - это к слову ивент в Киеве где то на человек 50.
Будет запись (но когда будет выложена потом в паблик - не ясно)
Также постараемся и онлайн трансляцию организовать.


(Ayia) #9

Да кстати, аналога java PageFactory в Python версии селениума нет (насколько я знаю).
Selene как раз реализовывает его более гибкую альтернативу - ElementFactory.
Ну мы как раз этим и займемся.

DriverFactory реализовывается точно так же как и в джаве. Нужно только синтаксис питона выучить. А с последним - коаны помогут. Если приложиться то обычно коаны проходятся за несколько вечеров.


(Taras) #10

онлайн трансляция - било б круто ) я просто не из Киева(


(Ayia) #11

ссылка на ивент 3 сентября: http://dou.ua/calendar/8237/
Там же линка на регистрацию.
Онлайн трансляция будет.


(Taras) #12

спасибо, зарегался )


(Igor) #13

В принципе фабрики в Python’e не так распространены, как в Java. Поверх Webium’a можно, наверное, фабрику прикрутить, но толку я особого не вижу.


(Mykhailo Poliarush) #14

Много уже написали, я немного дополню и подкину ссылок

  1. Учим питон
  1. Берем простые и бесплатные IDE
  • для простых скриптов SublimeText
  • для проектов PyCharm (есть бесплатная версия)
  1. Изучаем существующие решения, выбираем популярные и пишем что-то на них
  • https://github.com/atinfo/awesome-test-automation (см. python, секция Web UI test automation)
  • в исходниках уже написано много решений, которые можно переиспользовать (если нужно) (включая, page object, factory, etc)
  1. Пробуем и экспирементируем
  • если получается использовать какое-то решение, тогда просто пишешь тесты
  • если что-то не нравиться, из существующих решений забираем все самое интересное и делаем свой фреймворк

(Ayia) #15

И того… То с чем игрались на встрече: https://github.com/yashaka/easy-web-tests-python