Всем доброго времени суток.
С недавних пор работаю авто-тестировщиком, пишу тесты на java и selenium webdriver, в процессе изучения того и другого.
В данный момент у меня возник вопрос ответ на который мне в данный момент совершенно неочевиден, а проблема стоит остро и в дальнейшем неизбежно будет прогрессировать… очень прошу помочь с решением.
Я написал что-то вроде надстройки над селениумом, которая выглядит следующим образом:
есть класс Element который определяет наличие элемента или нескольких на странице, а так же некоторых их свойств
от него наследуются классы типа Tools (каждый из которых содержит методы для работы с определенными элементами), затем их все собирает через композицию еще один класс, и от него уже наследуются все классы отождествляемые с непосредственно вебстраницами которые я тестирую.
Иерархически схема в данный момент выглядит так:
class A
class B extends A
class C extends B
class Buttons extends C
class Breadcrumbs extends C
class Table extends C
…
class Page собирает все что после C (там около полутора десятка элементов каждому из которых посвящен отдельный класс)
и от Page как раз наследуются все тестируемые “страницы”.
В данный момент все отлично работает (с точки зрения затраченного на тесты времени), но… я поместил в конструктор каждого класса код вида System.out.println(“init classname”); и ужаснулся количеству инициализаций этих классов, сообщений об инициализации в консоли больше трех десятков.
С ростом кода во вспомогательных страницах а так же с количеством тестов или тестируемых страниц мне кажется что вся эта конструкция грозит неоправданным расходом ресурсов тестовой машины, или дикими тормозами при прогонах.
У меня устойчивое ощущение что я что-то делаю не так, и что количество инициализаций можно значительно сократить или вообще свести к одному-единственному.
Подскажите пожалуйста, что можно для этого сделать? Буду рад любым предложениям или советам.