Groovi

Автор: Пользователь скрыл имя, 06 Февраля 2013 в 17:51, научная работа

Краткое описание

Когда тестировщики сталкиваются с задачами автоматизации тестирования перед ними встает вопрос, какой язык для этого выбрать? В своем докладе я расскажу о языке Groovy, который обладает мощью и кроссплатформенностью языка Java, но при этом гораздо легче в освоении, а программы на нем имеют более компактный и читабельный код. На данный момент это один из самых перспективных языков для нужд автоматизации и спрос на специалистов владеющих groovy вскоре будет рости т.к. язык относительно новый.
Groovy — объектно-ориентированный язык программирования разработанный для платформы Java как альтернатива языку Java с возможностями Python, Ruby и Smalltalk.

1. Установка

Файлы: 1 файл

Groovy.doc

— 66.50 Кб (Скачать)

  </head>

  <body>

    <div class='main'>

      <p>this is the body</p>

    </div>

  </body>

</html>

 
 
В качестве параметра конструктору MarkupBuilder можно передавать любой PrintWriter:

def fb = new MarkupBuilder(new File("index.html").newPrintWriter())

 
 
Парсинг XML так же очень простой:

import groovy.xml.MarkupBuilder

import java.io.StringWriter

 

def sw = new StringWriter()

def mb = new MarkupBuilder(sw)

 

mb.html() {  

    body() {

        div("class" : "main") {

            p("this is the body")

        }

       

        div() {

            p("this is the body 1")

            p("this is the body 2")

            p("this is the body 3")

        }

    }

}

 

def xml = sw.toString()

 

println xml

 

import groovy.util.XmlParser;

 

def parser = new XmlParser()

def doc = parser.parseText(xml)

//def doc = parser.parse("index.html")

 

println doc.body.div[1].p[1] // возвращает Node

println doc.body.div[1].p // возвращает список, состоящий из Node

println doc.body.div["@class"] // список значений аттрибута class для всех div

 
 
Вывод:

<html>

  <body>

    <div class='main'>

      <p>this is the body</p>

    </div>

    <div>

      <p>this is the body 1</p>

      <p>this is the body 2</p>

      <p>this is the body 3</p>

    </div>

  </body>

</html>

p[attributes={}; value=[this is the body 2]]

[p[attributes={}; value=[this is the body 1]], p[attributes={}; value=[this is the body 2]],

    p[attributes={}; value=[this is the body 3]]]

[main, null]

 

13. Groovlets

 
С помощью класса GroovyServlet возможно запускать  скрипты на Groovy как сервлеты.  
В первую очередь, для этого нужно добавить несколько строчек в web.xml:

<servlet>

    <servlet-name>GroovyServlet</servlet-name>

    <servlet-class>groovy.servlet.GroovyServlet</servlet-class>

</servlet>

 

<servlet-mapping>

    <servlet-name>GroovyServlet</servlet-name>

    <url-pattern>*.groovy</url-pattern>

</servlet-mapping>

 
 
Теперь все запросы для файлов .groovy будут обрабатываться классом GroovyServlet. 
В этих скриптах уже доступны для использования следующие переменные: 
 
—request&response 
—context,application,session 
—out(=response.getWriter()) 
— sout (= response.getOutputStream()) 
— html (= new MarkupBuilder(out))

html.html() {  

    body() {

        div("class" : "main") {

            p("this is the body")

        }

       

        div() {

            p("this is the body 1")

            p("this is the body 2")

            p("this is the body 3")

        }

    }

}

 
 
Отдаст браузеру сгенерированную html-страницу.

В данный момент этот язык применяется  в следующих задачах:

1. Поиск и замена текстов с помощью регулярных выражений. 
2. Парсинг логов с помощью готовых классов Java (например, HashMap). 
3. Как с помощью Groovy использовать более знакомые тестировщикам инструменты, такие, как Selenium и JMeter. 
4. Как с помощью Groovy написать простой web сервер и протестировать такие вещи, как HTTP REST API на уровне основных запросов (Create, Read, Update, Delete).




Информация о работе Groovi