SlideShare une entreprise Scribd logo
1  sur  37
Киев 2016
Первый в Украине фестиваль тестирования
Spock + Groovy
и чуть-чуть REST API
Ярослав Пернеровський
Киев 2016Делаем жизнь проще: Spock + Groovy
Киев 2016Делаем жизнь проще: Spock + Groovy
Киев 2016Делаем жизнь проще: Spock + Groovy
Киев 2016Делаем жизнь проще: Spock + Groovy
Киев 2016Делаем жизнь проще: Spock + Groovy
Киев 2016
SoapUI
Делаем жизнь проще: Spock + Groovy
Киев 2016
Java
RESTAssured
TestNG
Maven
Делаем жизнь проще: Spock + Groovy
Киев 2016
Groovy
RESTAssured
TestNG
Maven
Делаем жизнь проще: Spock + Groovy
Киев 2016
Groovy
RESTAssured
Spock
Maven
Делаем жизнь проще: Spock + Groovy
Киев 2016
Groovy
RESTClient
Spock
Maven
Делаем жизнь проще: Spock + Groovy
Киев 2016
Groovy
RESTClient
Spock
Maven
Делаем жизнь проще: Spock + Groovy
Киев 2016Делаем жизнь проще: Spock + Groovy
Киев 2016
def (a, b, c) = [10, 20, 'foo']
def nums = [1, 3, 5]
def a, b, c
(a, b, c) = nums
def (day, month, year) =
"1st November 2016".split()
Делаем жизнь проще: Spock + Groovy
Киев 2016
for ( i in 0..9 ) {}
for ( i in [0, 1, 5, 6, 15] ) {}
def map = ['abc':1, 'def':2, 'xyz':3]
def x = 0
for ( e in map ) { x += e.value }
Делаем жизнь проще: Spock + Groovy
Киев 2016
def (x, y, z) = [2, 7, 5 ]
def calc = { a,b -> a*b+1 }
assert calc(x,y) == [x,z].sum()
Condition not satisfied:
calc(x,y) == [x,z].sum()
| | | | | | |
15 2 7 | 2 5 7
false
Делаем жизнь проще: Spock + Groovy
Киев 2016
def name = 'QAFest'
def greeting = "Hello ${name}"
assert greeting.toString() == 'Hello QAFest'
def multiLineString = '''
line one
line two
line three
'''
println "---+" * 5 + "---"
---+---+---+---+---+---
Делаем жизнь проще: Spock + Groovy
Киев 2016
def slurper = new groovy.json.JsonSlurper()
def result = slurper.parseText('''
{"conf":{"name":"QAFest","year":2016,
"tracks":["junior", "main"]}}
''')
assert result.conf.name == 'QAFest'
assert result.conf.year == 2016
assert result.conf.tracks.size() == 2
assert result.conf.tracks[0] == 'junior'
assert result.conf.tracks[1] == 'main'
Делаем жизнь проще: Spock + Groovy
Киев 2016
def xml = new XmlSlurper().parseText('''
<root>
<one a1="uno!"/>
<two>Some text!</two>
</root>
''')
assert xml.name() == 'root'
assert xml.one[0].@a1 == 'uno!'
assert xml.two.text() == 'Some text!'
xml.children().each{
assert it.name() in ['one','two'] }
Делаем жизнь проще: Spock + Groovy
Киев 2016Делаем жизнь проще: Spock + Groovy
Киев 2016
Testing
Framework
BDD
Specificatio
n
Mocking
Framework
Делаем жизнь проще: Spock + Groovy
Киев 2016
import spock.lang.*
class MyTestSpecification extends Specification {
// fields
// fixture methods
// feature methods
// helper methods
}
Делаем жизнь проще: Spock + Groovy
Киев 2016
Fields
def obj = new FirstClassObject()
def coll = new Collaborator()
@Shared res = new SharedResource()
Делаем жизнь проще: Spock + Groovy
Киев 2016
Fixsture Methods
def setup() {}
//run before every feature method
def cleanup() {}
//run after every feature method
def setupSpec() {}
//run before the first feature method
def cleanupSpec() {}
//run after the last feature method
Делаем жизнь проще: Spock + Groovy
Киев 2016
Feature Methods
def "user can login into app"() {
// blocks go here
}
Делаем жизнь проще: Spock + Groovy
Киев 2016
Blocks
• Нaстройка параметров теста (Setup)
• Выполнение воздействия на систему (Stimulus)
• Описание ожидаемого ответа системы
(Response)
• Очистка после теста (Cleanup)
Делаем жизнь проще: Spock + Groovy
Киев 2016
setup:
when:
then:
expect:
cleanup:
where:
Setup
Stimulus
Response
Cleanup
Делаем жизнь проще: Spock + Groovy
Киев 2016
when:
def x = Math.max(1, 2)
then:
x == 2
expect:
Math.max(1, 2) == 2
Делаем жизнь проще: Spock + Groovy
Киев 2016
class DatabaseDrivenSpec extends Specification {
@Shared sql = Sql.newInstance("jdbc:h2:mem:", "org.h2.Driver")
def setupSpec() {
sql.execute("create table maxdata (a int,b int,c int)")
sql.execute("insert into maxdata values (2,7,7),(5,4,5),(9,9,9)")
}
def "maximum of two numbers"() {
expect:
Math.max(a, b) == c
where:
[a, b, c] << sql.rows("select a,b,c from maxdata")
}
}
Делаем жизнь проще: Spock + Groovy
Киев 2016
class DataDriven extends Specification {
def "maximum of two numbers"() {
expect:
Math.max(a, b) == c
where:
a | b || c
3 | 5 || 5
7 | 0 || 7
0 | 0 || 0
}
}
Делаем жизнь проще: Spock + Groovy
Киев 2016
@Stepwise
class StepwiseExtensionSpec extends Specification {
def "step 1"() {
expect: true
}
def "step 2"() {
expect: true
}
def "step 3"() {
expect: true
}
}
Делаем жизнь проще: Spock + Groovy
Киев 2016
@Ignore
class MySpec extends Specification { ... }
@IgnoreIf({ os.windows })
def "Везде, но не на винде"() { ... }
@Requires({ os.windows })
def "Люблю Windows"() { ... }
@Timeout(value = 5, unit = MINUTES)
def "Ушла на 5 минут"() { ... }
Делаем жизнь проще: Spock + Groovy
Киев 2016
@Title("This is easy to read")
class ThisIsHarderToReadSpec extends
Specification { ... }
@Narrative("""
As a user
I want drink
So go bar
""")
class HelpUserToGetToTheBar () { ... }
Киев 2016
@Issue("http://my.jira/SP-1002")
class MySpec extends Specification {
@Issue("SP-1311")
def "Something wrong has happened"() { ... }
@Issue(["SP-1911", "FO-3334"])
def "Then I have two related issues"() { ... }
}
Киев 2016Делаем жизнь проще: Spock + Groovy
Киев 2016
Спасибо!
Делаем жизнь проще: Spock + Groovy
Киев 2016
Groovy http://groovy-lang.org/documentation.html
Spock http://spockframework.org/spock/docs/1.1-rc-2/all_in_one.html
RESTClient https://github.com/jgritman/httpbuilder/wiki/RESTClient
Allure http://allure.qatools.ru/
SoapUI https://www.soapui.org/downloads/soapui.html
RESTful http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
HTTP RFC https://tools.ietf.org/html/rfc2616#section-5
JSON HAL https://tools.ietf.org/id/draft-kelly-json-hal-03.txt
Делаем жизнь проще: Spock + Groovy
Что почитать

Contenu connexe

Tendances

Unit testing powershell
Unit testing powershellUnit testing powershell
Unit testing powershell
Matt Wrock
 
Introduction to mercurial
Introduction to mercurialIntroduction to mercurial
Introduction to mercurial
IT Booze
 
GR8Conf 2011: GContracts
GR8Conf 2011: GContractsGR8Conf 2011: GContracts
GR8Conf 2011: GContracts
GR8Conf
 

Tendances (20)

Bare-metal and Virtual Provisioning with Razor
Bare-metal and Virtual Provisioning with RazorBare-metal and Virtual Provisioning with Razor
Bare-metal and Virtual Provisioning with Razor
 
How To Deploy And Scale Meteor Applications
How To Deploy And Scale Meteor ApplicationsHow To Deploy And Scale Meteor Applications
How To Deploy And Scale Meteor Applications
 
Python and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihunPython and rust 2018 pythonkorea jihun
Python and rust 2018 pythonkorea jihun
 
G*なクラウド 雲のかなたに ショートバージョン
G*なクラウド 雲のかなたに ショートバージョンG*なクラウド 雲のかなたに ショートバージョン
G*なクラウド 雲のかなたに ショートバージョン
 
Neotool (using py2neo from the command line)
Neotool (using py2neo from the command line)Neotool (using py2neo from the command line)
Neotool (using py2neo from the command line)
 
How to build and run oci containers
How to build and run oci containersHow to build and run oci containers
How to build and run oci containers
 
The Ring programming language version 1.6 book - Part 28 of 189
The Ring programming language version 1.6 book - Part 28 of 189The Ring programming language version 1.6 book - Part 28 of 189
The Ring programming language version 1.6 book - Part 28 of 189
 
Sensu wrapper-sensu-summit
Sensu wrapper-sensu-summitSensu wrapper-sensu-summit
Sensu wrapper-sensu-summit
 
Coordination of Distributed Software with Redis
Coordination of Distributed Software with RedisCoordination of Distributed Software with Redis
Coordination of Distributed Software with Redis
 
Drizzle to MySQL, Stress Free Migration
Drizzle to MySQL, Stress Free MigrationDrizzle to MySQL, Stress Free Migration
Drizzle to MySQL, Stress Free Migration
 
Programming with Python and PostgreSQL
Programming with Python and PostgreSQLProgramming with Python and PostgreSQL
Programming with Python and PostgreSQL
 
Kubernetes Tutorial
Kubernetes TutorialKubernetes Tutorial
Kubernetes Tutorial
 
Installation of application server 10g in red hat 4
Installation of application server 10g in red hat 4Installation of application server 10g in red hat 4
Installation of application server 10g in red hat 4
 
Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
 
Finding Clojure
Finding ClojureFinding Clojure
Finding Clojure
 
Unit testing powershell
Unit testing powershellUnit testing powershell
Unit testing powershell
 
Introduction to mercurial
Introduction to mercurialIntroduction to mercurial
Introduction to mercurial
 
Alluxio in MOMO
Alluxio in MOMOAlluxio in MOMO
Alluxio in MOMO
 
GR8Conf 2011: GContracts
GR8Conf 2011: GContractsGR8Conf 2011: GContracts
GR8Conf 2011: GContracts
 
The Practice of Alluxio in Near Real-Time Data Platform at VIPShop [Chinese]
The Practice of Alluxio in Near Real-Time Data Platform at VIPShop [Chinese]The Practice of Alluxio in Near Real-Time Data Platform at VIPShop [Chinese]
The Practice of Alluxio in Near Real-Time Data Platform at VIPShop [Chinese]
 

Similaire à QA Fes 2016. Ярослав Пернеровский. Не Jav'ой единой. Пример автоматизации тестирования REST API с использованием Groovy+Spock.

Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
Dmitry Buzdin
 
Code as data as code.
Code as data as code.Code as data as code.
Code as data as code.
Mike Fogus
 

Similaire à QA Fes 2016. Ярослав Пернеровский. Не Jav'ой единой. Пример автоматизации тестирования REST API с использованием Groovy+Spock. (20)

Refactoring to Macros with Clojure
Refactoring to Macros with ClojureRefactoring to Macros with Clojure
Refactoring to Macros with Clojure
 
The Future of JVM Languages
The Future of JVM Languages The Future of JVM Languages
The Future of JVM Languages
 
Spock Framework
Spock FrameworkSpock Framework
Spock Framework
 
Spock Framework - Slidecast
Spock Framework - SlidecastSpock Framework - Slidecast
Spock Framework - Slidecast
 
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und GebBDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
 
How to Add Original Library to Android NDK
How to Add Original Library to Android NDKHow to Add Original Library to Android NDK
How to Add Original Library to Android NDK
 
Code as data as code.
Code as data as code.Code as data as code.
Code as data as code.
 
ECMAScript.Next ECMAScipt 6
ECMAScript.Next ECMAScipt 6ECMAScript.Next ECMAScipt 6
ECMAScript.Next ECMAScipt 6
 
Es.next
Es.nextEs.next
Es.next
 
Get Grulping with JavaScript Task Runners (Matt Gifford)
Get Grulping with JavaScript Task Runners (Matt Gifford)Get Grulping with JavaScript Task Runners (Matt Gifford)
Get Grulping with JavaScript Task Runners (Matt Gifford)
 
Node.js - async for the rest of us.
Node.js - async for the rest of us.Node.js - async for the rest of us.
Node.js - async for the rest of us.
 
huhu
huhuhuhu
huhu
 
React Native Evening
React Native EveningReact Native Evening
React Native Evening
 
Spock
SpockSpock
Spock
 
Play á la Rails
Play á la RailsPlay á la Rails
Play á la Rails
 
java-programming.pdf
java-programming.pdfjava-programming.pdf
java-programming.pdf
 
Chromium Embedded Framework + Go at Brooklyn JS
Chromium Embedded Framework + Go at Brooklyn JSChromium Embedded Framework + Go at Brooklyn JS
Chromium Embedded Framework + Go at Brooklyn JS
 
お題でGroovyプログラミング: Part A
お題でGroovyプログラミング: Part Aお題でGroovyプログラミング: Part A
お題でGroovyプログラミング: Part A
 
Joker'16 Spark 2 (API changes; Structured Streaming; Encoders)
Joker'16 Spark 2 (API changes; Structured Streaming; Encoders)Joker'16 Spark 2 (API changes; Structured Streaming; Encoders)
Joker'16 Spark 2 (API changes; Structured Streaming; Encoders)
 
Browsers with Wings
Browsers with WingsBrowsers with Wings
Browsers with Wings
 

Plus de QAFest

QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QAFest
 
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QAFest
 

Plus de QAFest (20)

QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилинQA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
QA Fest 2019. Сергій Короленко. Топ веб вразливостей за 40 хвилин
 
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The FutureQA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
QA Fest 2019. Анна Чернышова. Self-healing test automation 2.0. The Future
 
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
QA Fest 2019. Doug Sillars. It's just too Slow: Testing Mobile application pe...
 
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
QA Fest 2019. Катерина Спринсян. Параллельное покрытие автотестами и другие и...
 
QA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать большеQA Fest 2019. Никита Галкин. Как зарабатывать больше
QA Fest 2019. Никита Галкин. Как зарабатывать больше
 
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiledQA Fest 2019. Сергей Пирогов. Why everything is spoiled
QA Fest 2019. Сергей Пирогов. Why everything is spoiled
 
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгораниемQA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
QA Fest 2019. Сергей Новик. Между мотивацией и выгоранием
 
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
QA Fest 2019. Владимир Никонов. Код Шредингера или зачем и как мы тестируем н...
 
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
QA Fest 2019. Владимир Трандафилов. GUI automation of WEB application with SV...
 
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium ClusterQA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
QA Fest 2019. Иван Крутов. Bulletproof Selenium Cluster
 
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
QA Fest 2019. Николай Мижигурский. Миссия /*не*/выполнима: гуманитарий собесе...
 
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
QA Fest 2019. Володимир Стиран. Чим раніше – тим вигідніше, але ніколи не піз...
 
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automationQA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
QA Fest 2019. Дмитрий Прокопук. Mocks and network tricks in UI automation
 
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
QA Fest 2019. Екатерина Дядечко. Тестирование медицинского софта — вызовы и в...
 
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
QA Fest 2019. Катерина Черникова. Tune your P’s: the pop-art of keeping testa...
 
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях ITQA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
QA Fest 2019. Алиса Бойко. Какнезапутаться в коммуникативных сетях IT
 
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложенииQA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
QA Fest 2019. Святослав Логин. Как найти уязвимости в мобильном приложении
 
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
QA Fest 2019. Катерина Шепелєва та Інна Оснач. Що українцям потрібно знати пр...
 
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
QA Fest 2019. Антон Серпутько. Нагрузочное тестирование распределенных асинхр...
 
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
QA Fest 2019. Петр Тарасенко. QA Hackathon - The Cookbook 22
 

Dernier

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Dernier (20)

Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptxExploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
Exploring_the_Narrative_Style_of_Amitav_Ghoshs_Gun_Island.pptx
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Plant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptxPlant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptx
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Tatlong Kwento ni Lola basyang-1.pdf arts
Tatlong Kwento ni Lola basyang-1.pdf artsTatlong Kwento ni Lola basyang-1.pdf arts
Tatlong Kwento ni Lola basyang-1.pdf arts
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 

QA Fes 2016. Ярослав Пернеровский. Не Jav'ой единой. Пример автоматизации тестирования REST API с использованием Groovy+Spock.

Notes de l'éditeur

  1. Приветствие Зовут Занимаюсь Кто вы ? Поговорим об некоторых инструментах автоматизации тестирования АПИ Где это ?
  2. Что такое REST API зачем и когда нам надо его тестировать? Спросить про то, стоит ли рассказать про это или и так все понятно?  Roy Fielding), одним из создателей протокола «HTTP», REST архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Representational State Transfer (REST)
  3. С точки зрения тестировщика тестирование Рест это - слать реквесты и анализировать респонсы Рассмотрим что сабой являет запрос это НТТР который специфицорован под контекст общения джсон Для тестирования через рест нам нужно уметь : слать/получать НТТР сообщения парсить JSON, XML
  4. Change pic!
  5. switch / case for any type
  6. Expected 7 actual 15 http://meetspock.appspot.com/
  7. interpolated 
  8. Parsing Json XML
  9. http://meetspock.appspot.com/
  10. Interaction Based Testing Data Driven Testing
  11. Фазы
  12. RESTClient has convenience methods for get, put post delete, head The response data is always parsed and buffered in-memory The returned HttpResponseDecorator instance gives convenient access to headers and the parsed response data