Автор: Пользователь скрыл имя, 06 Февраля 2013 в 17:51, научная работа
Когда тестировщики сталкиваются с задачами автоматизации тестирования перед ними встает вопрос, какой язык для этого выбрать? В своем докладе я расскажу о языке Groovy, который обладает мощью и кроссплатформенностью языка Java, но при этом гораздо легче в освоении, а программы на нем имеют более компактный и читабельный код. На данный момент это один из самых перспективных языков для нужд автоматизации и спрос на специалистов владеющих groovy вскоре будет рости т.к. язык относительно новый.
Groovy — объектно-ориентированный язык программирования разработанный для платформы Java как альтернатива языку Java с возможностями Python, Ruby и Smalltalk.
1. Установка
</head>
<body>
<div class='main'>
<p>this is the body</p>
</div>
</body>
</html>
В качестве параметра конструктору
MarkupBuilder можно передавать любой PrintWriter:
def fb = new MarkupBuilder(new File("index.html").
Парсинг 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]
<servlet>
<servlet-name>GroovyServlet</
<servlet-class>groovy.servlet.
</servlet>
<servlet-mapping>
<servlet-name>GroovyServlet</
<url-pattern>*.groovy</url-
</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).