<style>.lazy{display:none}</style>Инструкция по автоматизация тестирования с помощью Geb

Инструкция по автоматизация тестирования с помощью Geb

Geb — это платформа тестирования для браузеров, которая использует WebDriver на языке Groovy. Она идеально подойдёт для автоматизации тестов и кросс-браузерного тестирования.

БЕСПЛАТНО СКАЧАТЬ КНИГИ в телеграм канале "Библиотека тестировщика"

Отличительной чертой Geb является то, что его синтаксис похож на jQuery. Более того, он имеет встроенную поддержку паттерна Page Object. Geb сочетает в себе лучшие возможности языка программирования Groovy, WebDriver и Page Object Modelling для обеспечения надёжного и быстрого взаимодействия с веб-контентом.

Geb предоставляет возможность интеграции с фреймворками для тестирования, включая Spock, Grails, JUnit, Cucumber-JVM, TestNG. Далее мы рассмотрим, как Geb может быть интегрирован с Grails.

Содержание:

Практическое применение

Преимущества

Предварительные условия

Начало работы

Обучение на примере

Тестирование валидности базы данных с помощью Geb-скрипта

Несколько полезных методов в Geb

Недостатки

Дополнительные ресурсы

Заключение

Практическое применение

Geb можно использовать:

  • В качестве инструмента тестирования на нескольких браузерах. Один и тот же тест может быть запущен на разных браузерах.
  • Для автоматизации функционального тестирования.
  • Для сквозного тестирования (end to end testing), включая проверку пользовательского интерфейса (UI) и проверку базы данных.
  • В качестве инструмента для автоматизации взаимодействия между браузером и веб-контентом.

Преимущества

Плюсы использования Geb:

  • Это бесплатный инструмент с открытым исходным кодом. Он имеет лицензию Apache License 2.0.
  • Легко автоматизировать процесс тестирования.
  • Форма Page Object и Groovy DSL делают тесты удобными для чтения, что они выглядят почти как обычный английский язык.
  • Быстро проводит тесты и экономит время, затраченное на тестирование.
  • Совместим с различными браузерами, такими как IE, Firefox, Chrome и HTMLUnit.
  • Выполняет тесты в реальном браузере. Это похоже на тестирование в реальной среде — той, которую видит пользователь.
  • Упрощает регрессионное тестирование.
  • При использовании Geb требуется минимальное корректирование кода в случае изменения пользовательского интерфейса.

Предварительные условия

Прежде чем приступить к работе, нам необходимо загрузить и установить ПО. Geb доступен в репозитории Maven в виде одного jar-файла Geb-core. Щёлкните здесь, чтобы установить его на свой компьютер.

Для установки и запуска Geb воспользуйтесь руководством по его установке и использованию.

Начало работы

Geb может быть интегрирован с различными фреймворками для тестирования.

В зависимости от выбранного вами фреймворка, вам нужно будет установить соответствующий плагин.

Например, Grails, вы можете установить соответствующий плагин grails-geb plugin.

Обучение на примере

Пример написания теста для автоматизации:

ID тестового сценарияSoftwaretestinghelp-1ID тест-кейсаSoftwaretestinghelp -1A
Описание тест-кейсаПроверка страницы 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-скрипта

Любое автоматизированное веб-тестирование делится на три части:

  • Валидация UI – проверка данных, отражённых в пользовательском интерфейсе (фронтенд) до и после выполнения тестирования.
  • Валидация БД – проверка данных, отражённых в базе данных (бэкенд) до и после выполнения тестирования.
  • Поток реальных тестов/сценариев.

Тест в приведённом выше примере был предназначен для автоматизации тестового потока и проверки пользовательского интерфейса. Аналогичным образом можно написать тест для валидации базы данных.

Для любого теста на валидацию БД вы всегда можете использовать приведенный ниже шаблон в качестве черновика:

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() для выполнения кода в других окнах и вкладках.
  • Drive-метод: drive() делает написание тестов в Geb более удобным. Все вызовы методов верхнего уровня и обращения к свойствам подразумеваются как обращения к браузеру.
  • Выполнение запросов: браузеры поддерживают свойство baseURL, которое используется для разрешения всех относительных ссылок. Предпочтительнее задавать базовые URL с косой чертой и не использовать косую черту в относительных URL.
  • Изменение страницы: с помощью метода page() можно изменить экземпляр страницы, не делая нового запроса.
  • Выход из браузера: объекты браузера предоставляют методы quit() и close(), которые передают задачу базовому драйверу.

Недостатки

Минусы использования Geb:

  • Geb использует WebDriver на языке Groovy. Таким образом, при использовании WebDriver будет поддерживаться только этот язык программирования.
  • Geb не подходит для небольших задач, но отлично работает для крупных проектов. Если ваше веб-приложение не содержит множество страниц и форм, через которые должна проходить информация, вы можете обнаружить, что Geb отнимает у вас слишком много времени.
  • Geb требователен к тому, какую среду использует ваше веб-приложение.

Дополнительные ресурсы:

Заключение

Geb — очень полезеный инструмент для автоматизации тестов. С его помощью можно автоматизировать веб-тестирование, функциональное и приёмочное тестирование. Он поддерживает множество браузеров и может быть интегрирован с различными фреймворками. Также он обеспечивает лучшее тестовое покрытие, ускоряет процесс тестирования и делает его более эффективным. очень полезный инструмент для автоматизации тестов. С его помощью можно автоматизировать веб-тестирование, функциональное и приемочное тестирование. Он поддерживает множество браузеров и может быть интегрирован с различными фреймворками. Также он обеспечивает лучшее тестовое покрытие, ускоряет процесс тестирования и делает его более эффективным.

Перевод статьи «Geb Tutorial – Browser Automation Testing Using Geb Tool».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *