geb tutorial browser automation testing using geb tool
Geb (произнася се „jeb“) е отговорът на предизвикателствата на автоматизацията на браузъра. Това е много ефективен инструмент за извършване на тестове за автоматизация през мрежата.
Geb произхожда от необходимостта да направи автоматизацията на браузъра (първоначално за уеб тестване) по-малко сложна, безпроблемна и по-ефективна. Може да се използва за програмиране, извличане на данни от мрежата и автоматизиране на ръчните уеб задачи. Освен това Geb е a кръстосан браузър инструмент за тестване за автоматизация.
Geb функционира като инструмент, задвижван от разработчици за автоматизиране на сътрудничеството между уеб браузъри и уеб съдържание. Той работи с WebDriver на езика Groovy.
Красотата на инструмента за тестване на Geb е, че той съчетава най-добрите характеристики на езика за програмиране Groovy, jQuery, WebDriver и Моделиране на обекти на страници, за да осигури мощна, стабилна и динамична проверка на съдържанието, подбор и уеб взаимодействие.
Какво прави Geb уникален в сравнение с други инструменти за автоматизиране на тестове наличен на пазара е неговият синтаксис. Той е подобен на jQuery, който обикновено се използва за лесно заявяване на HTML страници. На второ място, той има интегрирана поддръжка за модела Page Object.
Geb предоставя голяма помощ за функционално уеб тестване чрез интеграция с някои широко използвани и често срещани платформи за тестване, включително Спок , Граали, JUnit , Краставица-JVM , TestNG и др. Ще видим как Geb може да бъде интегриран с Grails framework в по-късната част на тази статия.
Какво ще научите:
- Практически приложения
- Предимства
- Предпоставки
- Приготвяме се да започнем
- Научете с пример
- Тестване на валидиране на база данни чрез Geb скрипт:
- Няколко полезни метода в Geb
- Недостатъци на този инструмент
- Още ресурси:
- Заключение
- Препоръчително четене
Практически приложения
Както вече беше обсъдено във въведението на този урок за Geb, той може да се използва:
- Като инструмент за тестване на множество браузъри като chrome, Firefox, Internet Explorer и т.н. (Същият скрипт за автоматизация може да се изпълнява в различни браузъри, за да извърши уеб тестване на вашето приложение.)
- Да автоматизира потребителското приемане и функционалните тестове.
- За автоматизиране на тестови сценарии, създадени за функционално или уеб тестване на всяко приложение.
- За да обхване тестването от край до край, включително проверка на потребителския интерфейс (потребителски интерфейс) и валидиране на DB (база данни).
- Като инструмент за разработчици за автоматизиране на взаимодействието между уеб браузър и уеб съдържание.
Предимства
- Geb е безплатен инструмент с отворен код. Той е лицензиран под лиценза Apache, версия 2.0.
- Лесно и лесно за автоматизиране на уеб тестване.
- Page Objects на Geb и Groovy DSL правят тестовете четливи до степен, че почти приличат на обикновен английски.
- Изпълнява тестовете бързо и по този начин спестява време и разходи за тестване.
- Съвместим с различни браузъри като IE, Firefox, Chrome и HTMLUnit.
- Той изпълнява тестовете в реалния браузър. Това е сякаш тестване в реалната среда - тази, която потребителят би видял.
- Това прави регресионното тестване лесно. Можете да стартирате автоматизирани тестови случаи на Geb, за да проверите дали някоя съществуваща функционалност не се нарушава след поправка или промяна в приложението.
- Докато използвате Geb за тестване за автоматизация, са необходими минимални промени в тестовия код, ако има промени в потребителския интерфейс във вашето приложение. Така че намалява усилията и дублирането на код.
- Той помага на 360 градуса (или максимум) покритие на тестване в рамките на един скрипт.
Предпоставки
Преди да започнем, трябва да изтеглим и инсталираме софтуера. В централното хранилище на Maven Geb се предлага като единичен буркан с ядро Geb. Натисни тук за да го инсталирате на вашата машина.
Ще ви трябват горния Geb-core jar, внедряване на уеб драйвер и буркан за поддръжка на селен, за да накарате Geb да работи на вашата машина.
Моля, обърнете се към раздела за инсталиране и използване по-долу в книгата на Geb, за да инсталирате инструмента и да го стартирате => Ръководство за инсталиране и използване на Geb .
Приготвяме се да започнем
Както вече беше обсъдено, Geb може да бъде интегриран с различни рамки за тестване.
В зависимост от избраната рамка ще трябва да инсталирате съответната приставка.
Например : Граали ( Граали е много известна рамка за уеб приложения) за писане на тестове за автоматизация и автоматизиране на тестовите сценарии. Ако искате да използвате Geb за вашето функционално тестване на Grails, можете да инсталирате съответния плъгин от тук grails-geb плъгин . Този плъгин се справя с baseUrl и докладиДир елементи за конфигуриране.
Научете с пример
Нека сега покажа как да напиша Geb скрипт за автоматизиране на тестов сценарий.
Вземете следния сценарий на теста:
Идентификационен номер на тестовия сценарий | Softwaretestinghelp-1 | Идент | Softwaretestinghelp -1A |
Изход | |||
Описание на тестовия случай | Проверете страницата Softwaretestinghelp.com чрез търсачката | Състояние на скрипта за автоматизация | В процес на изпълнение |
Предварително условие | 1 Браузър 2. търсачка 3. уебсайт - Softwaretestinghelp.com трябва да съществува | Предварително необходим сценарий | NA |
Стъпките за изпълнение са:
Стартирайте търсачката на 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 скрипт:
Всяко тестване за уеб автоматизация е разделено на три части:
- Проверка на потребителския интерфейс - Проверка на данните, отразени в потребителския интерфейс (преден край) преди и след стартиране на сценария за тестване на автоматизация.
- DB проверка - Проверка на данните, отразени в базата данни (бекенд) преди и след стартиране на сценария за тестване на автоматизация.
- Действителен тестов поток / поток на скриптове.
Сценарият Geb, написан за автоматизиране на тестов сценарий, може да съдържа кода за всички горепосочени три раздела.
Сценарият Geb в горния примерен раздел беше за автоматизиране на тестовия поток и валидиране на потребителския интерфейс. По същия начин можете да напишете тестов скрипт за проверка на базата данни.
За всеки тест за валидиране на DB винаги можете да използвате шаблона по-долу като контур за вашия код:
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 с граали .
Заключение
Geb е много полезен при автоматизиране на сценарии за тестови случаи. Полезно е да автоматизирате уеб, функционални и потребителски тестове за приемане. Той поддържа множество браузъри и може да бъде интегриран с различни рамки. Той съчетава силата на WebDriver, елегантността на jQuery Selection, здравината на Page Object Modeling и изразителността на Groovy.
Geb скриптовете са както за разработчици, така и за потребителя, осигурявайки по-добро покритие на теста и ускорено тестване, като същевременно го правят по-ефективен.
За автора: Това е публикация за гости от Priya K. Тя има 4+ години опит в ИТ услугите с опит в тестване и поддръжка за различни приложения.
Чувствайте се свободни да публикувате вашите заявки за тестване на автоматизация на Geb в коментари.
Препоръчително четене
- Урок за инструмент за тестване на достъпност на WAVE
- Урок за Ranorex: Мощен инструмент за тестване на десктоп, уеб и мобилна автоматизация
- Инструмент за тестване за автоматизация на GUI на Sikuli - Ръководство за начинаещи, Част 2
- Урок за QA на Parrot: Преглед на инструмента за функционално тестване на различни браузъри
- Най-добри инструменти за тестване на софтуер 2021 г. [Инструменти за автоматизация на QA теста]
- Уроци за задълбочено затъмнение за начинаещи
- Какво е тестване за автоматизация (Ultimate Guide to Start Test Automation)
- Урок за Parasoft SOAtest: Инструмент за тестване на API без скриптове