geb tutorial browser automation testing using geb tool
Geb (вимовляється як «jeb») - це відповідь на завдання автоматизації браузера. Це дуже ефективний інструмент для тестування автоматизації через Інтернет.
Geb виникла з необхідності зробити автоматизацію браузера (спочатку для веб-тестування) менш складною, безпроблемною та ефективнішою. Він може бути використаний для програмування, вилучення даних з Інтернету та автоматизації ручних веб-завдань. Крім того, Geb є крос-браузер інструмент для автоматичного тестування.
Geb функціонує як інструмент для розробників для автоматизації співпраці між веб-браузерами та веб-вмістом. Він запускає WebDriver мовою Groovy.
Краса інструменту тестування Geb полягає в тому, що він поєднує в собі найкращі можливості мови програмування Groovy, jQuery, WebDriver та об'єктне моделювання сторінок, щоб забезпечити потужний, надійний та динамічний контроль вмісту, вибір та веб-взаємодію.
Що робить Geb унікальним у порівнянні з іншими засоби автоматизації тестування наявний на ринку його синтаксис. Це схоже на jQuery, який зазвичай використовується для легкого запиту HTML-сторінок. По-друге, він має інтегровану підтримку шаблону Page Object.
Geb надає велику допомогу для функціонального веб-тестування шляхом інтеграції з деякими широко використовуваними та поширеними платформами тестування, зокрема Спок , Граали, JUnit , Огірок-JVM , TestNG тощо. Ми побачимо, як Geb можна інтегрувати з фреймворком Grails у наступній частині цієї статті.
Що ви дізнаєтесь:
- Практичне використання
- Переваги
- Передумови
- Починаємо
- Дізнайтеся на прикладі
- Тестування перевірки бази даних за допомогою сценарію Geb:
- Кілька корисних методів у Geb
- Недоліки цього інструменту
- Більше ресурсів:
- Висновок
- Рекомендована література
Практичне використання
Як уже обговорювалось у вступі до цього підручника з Геба, його можна використовувати:
- Як інструмент тестування на декількох браузерах, таких як chrome, Firefox, Internet Explorer тощо (той самий сценарій автоматизації може запускатися в різних браузерах для проведення веб-тестування вашого додатка.)
- Для автоматизації випадків прийняття та функціональних тестів.
- Для автоматизації сценаріїв тестування, створених для функціонального або веб-тестування будь-якої програми.
- Покрити наскрізне тестування, включаючи перевірку інтерфейсу користувача (інтерфейс користувача) та перевірку бази даних (бази даних).
- Як інструмент розробника для автоматизації взаємодії між веб-браузером та веб-вмістом.
Переваги
- Geb - це безкоштовний інструмент з відкритим кодом. Ліцензовано за ліцензією Apache, версія 2.0.
- Легко і просто для автоматизації веб-тестування.
- Page Objects від Geb та Groovy DSL роблять тести читабельними настільки, що вони майже схожі на звичайну англійську.
- Швидко виконує тести і тим самим економить час і витрати на тестування.
- Сумісний з різними браузерами, такими як IE, Firefox, Chrome та HTMLUnit.
- Він виконує тести в реальному браузері. Це як би тестування в реальному середовищі - тому, яке побачив би користувач.
- Це полегшує регресійне тестування. Ви можете запустити автоматизовані тестові кейси Geb, щоб перевірити, чи не порушується якась функціональність після виправлення або зміни програми.
- Під час використання Geb для автоматизованого тестування, мінімальних змін коду тестування потрібно, якщо у вашому додатку є зміни в інтерфейсі. Отже, це зменшує зусилля та дублювання коду.
- Це допомагає охоплення тестуванням на 360 градусів (або максимум) у межах одного сценарію.
Передумови
Перед початком роботи нам потрібно завантажити та встановити програмне забезпечення. У центральному сховищі Maven Geb доступний у вигляді однієї банки з ядром Geb. Натисніть тут щоб встановити його на свою машину.
Вам знадобиться вищевказана база ядра Geb, реалізація веб-драйвера та банка підтримки селену, щоб Geb працював на вашій машині.
Будь ласка, зверніться до нижченаведеного розділу про встановлення та використання книги Geb, щоб встановити інструмент і запустити його => Посібник з встановлення та використання Geb .
Починаємо
Як вже обговорювалось, Geb може бути інтегрований з різними тестовими системами.
Залежно від вибраної вами структури вам потрібно буде встановити відповідний плагін.
Наприклад : Граали ( Граали дуже відомий фреймворк для веб-додатків) для написання тестових сценаріїв автоматизації та автоматизації тестових сценаріїв. Якщо ви хочете використовувати Geb для тестування функціональності Grails, ви можете встановити відповідний плагін звідси плагін grails-geb . Цей плагін обробляє baseUrl і доповідає елементи конфігурації.
Дізнайтеся на прикладі
Дозвольте мені зараз показати, як написати сценарій Geb для автоматизації тестового сценарію.
Візьміть наведений нижче сценарій тесту:
Ідентифікатор сценарію тесту | Допомога при тестуванні програмного забезпечення-1 | Ідентифікатор тестового кейсу | Допомога при тестуванні програмного забезпечення -1А |
Вихід | |||
Опис тестового кейсу | Перевірте сторінку Softwaretestinghelp.com через пошукову систему | Стан сценарію автоматизації | В процесі |
Передумова | 1 Браузер 2. пошукова машина 3. веб-сайт - Softwaretestinghelp.com повинен існувати | Необхідний сценарій | НС |
Етапи виконання:
Запустіть пошукову систему Google |
Перевірте, чи успішно завантажено пошукову систему |
Введіть softwaretestinghelp.com у вікно пошуку |
Зачекайте, поки результати завантажаться |
Переконайтеся, що перше посилання в результатах спрямовує на softwaretestinghelp.com |
Якщо так, відкрийте посилання. |
Зачекайте, поки веб-сайт не відкриється. |
Ось сценарій інструменту автоматизації Geb для вищезазначеного сценарію:
import geb.Browser Browser.drive { go 'http://google.com/' //verify if we are on the correct page assert title=='Google' //enter softwaretestinghelp.com into the search field $('input',name:'q').value('softwaretestinghelp.com') //wait for the change to results page to happen //(google updates the page dynamically without a new request) waitFor{ title.endsWith('Google Serach')} //is the first link to softwaretestinghelp.com? def firstLink = $('li.g,0).find('a.l') assert firstLink.text()= ='Software Testing Help - A Must Visit Software Testing Portal' //click the link firstLink.click() //wait for Google's javascript waitFor { title = ='Software Testing Help - A Must Visit Software Testing Portal' } }
Тепер ви можете спробувати написати простий сценарій GEB самостійно, посилаючись на наведений вище приклад.
Тестування перевірки бази даних за допомогою сценарію Geb:
Будь-яке тестування веб-автоматизації складається з трьох частин:
- Перевірка інтерфейсу користувача - Перевірка даних, відображених в інтерфейсі користувача (інтерфейс) до і після запуску сценарію тестування автоматизації.
- Перевірка БД - Перевірка даних, відображених у базі даних (бекенд) до та після запуску сценарію тестування автоматизації.
- Фактичний тестовий потік / потік сценарію.
Сценарій Geb, написаний для автоматизації тестового сценарію, може містити код для всіх вищезазначених трьох розділів.
Сценарій Geb у наведеному вище прикладі призначений для автоматизації тестового потоку та перевірки інтерфейсу користувача. Подібним чином ви можете написати тестовий скрипт для перевірки бази даних.
Для будь-якого тесту перевірки БД ви завжди можете використовувати наведений нижче шаблон як схему для коду:
def validateDB(/*define all variables here*/) { def errorMessages = '' try { Configuration conf = (new ConfigurationLoader()).getConf() def sql = Sql.newInstance(conf.readValue('dbPath', ''), conf.readValue('dbUserName', ''), conf.readValue('dbPassword', ''), conf.readValue('dbDriverName', '')) /* Populate any required variables */ } /* Give print commands here to print required values */ def qry = /* select statement to pull all required values from database */ println 'SQL=$qry' sql.eachRow(qry) { row -> /* ‘if’ block to perform validation and returning error in case of any variations */ } catch(Exception e) { println 'EEEE=$e' } return errorMessages }
Кілька корисних методів у Geb
- Коли сценарій тестового випадку включає кілька вкладок та вікон: Щоразу, коли ви зустрічаєте програму, яка відкриває нові вікна чи вкладки, Наприклад натискаючи на посилання з набором цільових атрибутів, ви можете використовувати withWindow () і withNewWindow () методи для виконання коду в контексті інших вікон.
- Спосіб приводу: Клас браузера містить статичний метод - диск () . Цей метод надає додаткову зручність сценаріям Geb. Усі виклики методів верхнього рівня та доступ до властивостей мають на увазі суперечити браузеру.
- Подання запитів: Екземпляри браузера підтримують a baseUrl властивість, яке використовується для вирішення всіх відносних URL-адрес. Зазвичай найкраще визначати свої базові URL-адреси з кінцевими косими рисками, а не використовувати провідні скісні риски для відносних URL-адрес.
- Зміна сторінки: За допомогою корисного сторінка () методів, можливо змінити екземпляр сторінки, не роблячи нового запиту.
- Вихід із браузера: Об'єкт браузера надає вийти () і закрити () методи (які просто передають завдання базовому драйверу).
Недоліки цього інструменту
- Народжений виконує WebDriver мовою Groovy. Вся ідея цього полягає у використанні WebDriver простіше і простіше. Отже, при використанні Webdriver через Geb буде підтримуватися лише мова програмування Groovy. Але, якщо ви безпосередньо використовуєте WebDriver , він підтримує багато мов, таких як Ruby, C #, Python, Java.
- Я б не пропонував використовувати Geb для невеликих проектів - він чудово працює для величезних завдань, але вражає невеликі заходи. Якщо ваша веб-програма не містить декількох сторінок і форм, через які повинна протікати інформація, ви можете виявити, що Geb дійсно коштує вам додаткового часу, ніж він шкодує.
- Дуже конкретно йдеться про те, яке середовище використовує ваш веб-додаток. Geb повинен бути добре інтегрований у конкретне середовище, щоб він працював нормально.
Більше ресурсів:
- Перевірте Книга Геба тут для детальної документації та прикладів.
- Ось зразок проекту, що показує інтеграція Геба з граалями .
Висновок
Geb дуже корисний для автоматизації сценаріїв тестових випадків. Корисно автоматизувати тестування веб, функціональних можливостей та прийнятності користувачів. Він підтримує кілька браузерів і може бути інтегрований з різними фреймворками. Він поєднує в собі потужність WebDriver, елегантність вибору jQuery, міцність моделювання сторінок та виразність Groovy.
Сценарії Geb - це як розробник, так і зручний для користувача, забезпечуючи краще охоплення тестом і прискорене тестування, одночасно роблячи його більш ефективним.
Про автора: Це гостьове повідомлення від Priya K. Вона має понад 4 роки досвіду в ІТ-сервісах із досвідом у тестуванні та підтримці різних додатків.
Не соромтеся розміщувати свої запити щодо тестування автоматизації Geb у коментарях.
Рекомендована література
- Підручник із інструменту тестування доступності WAVE
- Підручник з Ranorex: Потужний інструмент для тестування настільних, веб- та мобільних засобів автоматизації
- Інструмент тестування автоматизованого графічного інтерфейсу користувача Sikuli - Посібник для початківців, Частина 2
- Підручник з контролю якості Parrot: Огляд функціональних інструментів тестування між браузерами
- Найкращі засоби тестування програмного забезпечення 2021 р. [Засоби автоматизації тестування якості]
- Поглиблені підручники Eclipse для початківців
- Що таке тестування автоматизації (Кінцевий посібник із запуску автоматизації тестування)
- Підручник з Parasoft SOAtest: інструмент тестування API без скриптів