Хочу рассказать, что такое аспектно ориентированное программирование на примере Aspectj – расширения для языка Java и привести примеры, как его использование может помочь при построении фреймворка для автоматизации тестирования.
1 of 53
More Related Content
Аспектно ориентированное программирование для Java автоматизаторов
2. 2
Кто я?
Sergey Mishanin
Lead Software Test
Automation Engineer
• 9 лет в автоматизации
• Тестирую UI и web-сервисы
• Изучаю и разрабатываю фреймворки и инструменты
• Джавист
Email: sergey_mishanin@epam.com
Skype: ssmishanin
14. 14
Переформулируем задачу
Писать в лог все вызовы методов Page Object’ов
Вызывать метод логгирования перед вызовом
любого метода любого Page Object’а
15. 15
К чему это я?
Писать в лог все вызовы методов Page Object’ов
Так аспекты именно это и позволяют!
Вызывать метод логгирования перед вызовом
любого метода любого Page Object’а
25. 25
Определим pointcut
Join Point (точка соединения) — точка в
выполняемой программе, где следует
применить совет, например, вызовы
методов и обращения к полям объекта.
Pointcut (срез) — набор точек соединения.
Срез определяет, подходит ли данная точка
соединения к данному совету.
43. 43
Запустим!
12:16:37.993 [main] INFO com.epam.pages.Header – clickSearchIcon
12:16:38.316 [main] INFO com.epam.pages.SearchForm - enterSearchText [webdriver]
12:16:38.881 [main] INFO com.epam.pages.SearchForm - submitSearchForm
44. 44
А что там есть ещё?
@Before
@After
@AfterReturning
@AfterThrowing
@Around
call
execution
get
set
within
withincode
@annotation
…
Advices Pointcuts