@Doglexx

Перевод тестового фреймворка (Selenium/Facebook PHP WebDriver) на другой язык?

Добрый день!
Есть фреймворк для функционального тестирования, который написан поверх связки Selenium(Facebook PHP WebDriver) на языке РНР.

Из функционала:
- навигация, поиск элементов и проверка их состояния(есть\нет на странице, видимый\невидимый и т.д.), различное взаимодействие с ними(нажать, hover, ввести значение и т.д.), ожидание различных состояний элементов
- парсинг HTML (библиотека Simple HTML DOM)
- логирование (простой самописный логгер)
- работа с базой данных (подготовка данных перед тестом, поиск нужных объектов для работы)

Суть проблемы.
Изначально РНР был выбран для автоматизации т.к. тестируемый web-проект также написан на стеке РНР/JS/MySQL и в случае чего, кто-то из разработчиков мог подключиться к написанию тестов.
Со временем стало ясно, что работа для девелоперов по основному проекту есть всегда, а РНР в среде QA-автоматизаторов спросом пользуется мало и найти человека на поддержку в случае чего крайне проблематично.
Инструментов и библиотек, насколько я понимаю, значительно меньше чем на Java, JS, Python + найти автоматизатора на этих языках значительно легче.
В свете описанной выше ситуации, периодически возникает желание переписать фреймворк на более популярный язык.

Объём фреймворка вместе с тестами на данный момент ~ 10000 строк.
У меня на данный момент коммерческий опыт только на РНР\JS. На Python писал ряд тестов в контексте прохождения курсов, язык понравился, с Java знаком поверхностно.

Из вариантов решения проблемы рассматриваю следующие:
  • оставить как есть, на РНР. Вариант приоритетный по понятным причинам - фреймворк уже написан, есть опыт с РНР в отличие от других языков.
  • перейти на Java. Родной язык для Selenium, множество библиотек, но порог входа выше чем у других языков
  • перейти на JS. Набирает популярность, сравнительно простой для изучения. Основан на Java :)
  • перейти на Python. Показался проще и понятнее чем JS, достаточно популярным. Но отталкивает это неопределённость с версиями самого языка и, соответственно, библиотек, который уже 10 лет с 2 на 3 версию перейти не может.

Лично я, если решусь переписывать, склоняюсь по приоритетам:
1. Python
2. JS
3. Java(крайне нехотя т.к. намного сложнее остальных, возможно я не прав, и опыта с ним нет)

Спасибо тем, кто дочитал до конца. И вдвойне буду признателен тем, кто подскажет с высоты своего опыта, что делать)

p.s. убедительная просьба не скатываться в holywar.
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 2
@yayashitoya
Освоить другой язык инженеру QA несложно. Если он действительно знает, скажем Python
Непонятна экономическая целесообразность переписывать готовое решение.
Ответ написан
@procode
Разработчик
Ну разве что для саморазвития))

Вы же понимаете что все перечисленные языки - примерно одинаковы и имеют свои сильные и слабые стороны.

Тут как говорят русские женщины: **й на **й менять - только время терять ))))

Если для профессионального роста и с прицелом на будущее я бы выбрал Java.

А если говорить о бизнес-стороне вопроса - скорее всего нужен хороший рефакторинг кода на исходном языке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы