SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Karate DSL
testes de api de forma
simples
Karate - DSL para testes de api
Open Source
Autor: Peter Thomas / @ptrthomas
Versão atual: 0.9.3
Lançamento: ~ 2 anos atrás
Popularidade: +1900 +2100★ Github
Karate - DSL para testes de api
Karate Karate Netty Karate Gatling
API Test API Mock API Perf
ok, mas como isso ajuda?
sintaxe simples.
Scenario: Listar livros cadastrados
Given path 'books'
When method GET
Then status 200
And match response.data == '# []'
sintaxe simples.
Scenario: Listar livros cadastrados
Given path 'books'
When method GET
Then status 200
And match response.data == '# []'
sintaxe simples.
Scenario: Listar livros cadastrados
Given path 'books'
When method GET
Then status 200
And match response.data == '# []'
sintaxe simples.
Scenario: Listar livros cadastrados
Given path 'books'
When method GET
Then status 200
And match response.data == '# []'
sintaxe simples.
Scenario: Listar livros cadastrados
Given path 'books'
When method GET
Then status 200
And match response.data == '# []'
asserções
ok, e como isso funciona?
Runner
(JUnit,
TestNG)
Karate Script
(Feature)
Karate DSL Architecture
Java8JRE
Karate DSL Interpreter
(Cucumber "Step Definitions")
HTTP Client
Abstraction
Apache Jersey
JS
Engine
(Nashorn) Data Functions
match, get, set
JSON XML
ok, e como eu rodo esses testes?
Karate DSL - Execução (stand)
java -jar karate.jar src/features
Karate DSL - Execução (gherkin plugin)
Karate DSL - Execução (runner)
//outros imports que não imports nesse moments
public class ApiStatusRunner {
@Test
public void testParalell() {
}
ok, e como vejo se meu teste passou?
Karate DSL - Karate Report
Karate DSL - Cucumber Report
Karate DSL - Execução paralela
//outros imports que não imports nesse moments
import com.intuit.karate.Runner;
public class ApiStatusRunner {
@Test
public void testParalell() {
Results results = Runner.parallel(getClass(), 1);
assertTrue(results.getErrorMessages(), results.getFailCount() == 0);
}
Quantidade
de threads.
Karate DSL - Execução paralela (stand)
java -jar karate.jar --threads 5 src/features
Karate DSL - Execução paralela (exemplo)
> java -jar karate.jar --threads 1 src/features
Threads duração em TST (seg) duração em PROD (seg)
1 81 23
40 cenários
Karate DSL - Execução paralela (exemplo)
> java -jar karate.jar --threads 5 src/features
Threads duração em TST (seg) duração em PROD (seg)
1 81 23
5 30 13
40 cenários
Karate DSL - Execução paralela (exemplo)
> java -jar karate.jar --threads 10 src/features
Threads duração em TST (seg) duração em PROD (seg)
1 81 23
5 30 13
10 26 8
40 cenários
Karate DSL - Execução paralela (exemplo)
> java -jar karate.jar --threads 15 src/features
Threads duração em TST (seg) duração em PROD (seg)
1 81 23
5 30 13
10 26 8
15 22 6
40 cenários
Karate DSL - Code coverage w/ Jacoco
Hands onAPI de Livros
em progresso
Karate
API
Karate
Netty
Karate
Gatling
Karate
Driver
Karate
Appium
Karate
Desktop
KarateFramework
github.com/samlucax/karate-example
Karatê DSL - Artigo & Projeto
Obrigado!
Samuel Lucas
@samlucax

Mais conteúdo relacionado

Mais procurados

TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven DevelopmentElias Nogueira
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)Renato Groff
 
Robot Framework - principais características
Robot Framework - principais característicasRobot Framework - principais características
Robot Framework - principais característicasalinebiath
 
API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test PyramidElias Nogueira
 
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaPirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaFrederico Augusto Do Carmo Moreira
 
Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)Fabrício Campos
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Diego Pacheco
 
Introdução a Testes Automatizados
Introdução a Testes AutomatizadosIntrodução a Testes Automatizados
Introdução a Testes Automatizadoselliando dias
 
Selenium webdriver interview questions and answers
Selenium webdriver interview questions and answersSelenium webdriver interview questions and answers
Selenium webdriver interview questions and answersITeLearn
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34Mayara Fernandes
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de softwareAlex Camargo
 
Mocking in Java with Mockito
Mocking in Java with MockitoMocking in Java with Mockito
Mocking in Java with MockitoRichard Paul
 
Automation Testing with Test Complete
Automation Testing with Test CompleteAutomation Testing with Test Complete
Automation Testing with Test CompleteVartika Saxena
 
Automação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCAutomação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCMayara Fernandes
 
Automação de testes de API utilizando Postman
Automação de testes de API utilizando PostmanAutomação de testes de API utilizando Postman
Automação de testes de API utilizando PostmanLucas Amaral
 

Mais procurados (20)

TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
TDD (Test-Driven Development)
TDD (Test-Driven Development)TDD (Test-Driven Development)
TDD (Test-Driven Development)
 
Robot Framework - principais características
Robot Framework - principais característicasRobot Framework - principais características
Robot Framework - principais características
 
API Testing following the Test Pyramid
API Testing following the Test PyramidAPI Testing following the Test Pyramid
API Testing following the Test Pyramid
 
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetivaPirâmide de testes mobile, dividindo seus testes de maneira efetiva
Pirâmide de testes mobile, dividindo seus testes de maneira efetiva
 
Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)Técnicas de modelagem de teste (parte 1)
Técnicas de modelagem de teste (parte 1)
 
Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1Treinamento Testes Unitários - parte 1
Treinamento Testes Unitários - parte 1
 
Introdução a Testes Automatizados
Introdução a Testes AutomatizadosIntrodução a Testes Automatizados
Introdução a Testes Automatizados
 
TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Padrões de Projeto (GoF)
Padrões de Projeto (GoF)Padrões de Projeto (GoF)
Padrões de Projeto (GoF)
 
Selenium webdriver interview questions and answers
Selenium webdriver interview questions and answersSelenium webdriver interview questions and answers
Selenium webdriver interview questions and answers
 
Robot Framework no DevTests #34
Robot Framework no DevTests #34Robot Framework no DevTests #34
Robot Framework no DevTests #34
 
Testando API Rest com Insomnia Core
Testando API Rest com Insomnia CoreTestando API Rest com Insomnia Core
Testando API Rest com Insomnia Core
 
Qualidade de Software: Teste de software
Qualidade de Software: Teste de softwareQualidade de Software: Teste de software
Qualidade de Software: Teste de software
 
Mocking in Java with Mockito
Mocking in Java with MockitoMocking in Java with Mockito
Mocking in Java with Mockito
 
Automation Testing with Test Complete
Automation Testing with Test CompleteAutomation Testing with Test Complete
Automation Testing with Test Complete
 
Introdução ao TDD
Introdução ao TDDIntrodução ao TDD
Introdução ao TDD
 
Automação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SCAutomação de Testes com Robot Framework - GUTS-SC
Automação de Testes com Robot Framework - GUTS-SC
 
TestNG
TestNGTestNG
TestNG
 
Automação de testes de API utilizando Postman
Automação de testes de API utilizando PostmanAutomação de testes de API utilizando Postman
Automação de testes de API utilizando Postman
 

Semelhante a Karatê DSL - Automatizando testes de API de forma simples - GUTS RS - Junho

GDG POA - Karate DSL - Automatizando testes de api de forma simples
GDG POA - Karate DSL - Automatizando testes de api de forma simplesGDG POA - Karate DSL - Automatizando testes de api de forma simples
GDG POA - Karate DSL - Automatizando testes de api de forma simplesSamuel Lucas
 
Akka no Just Java 2012
Akka no Just Java 2012Akka no Just Java 2012
Akka no Just Java 2012Paulo Siqueira
 
Testes Automatizados em Ruby on Rails
Testes Automatizados em Ruby on RailsTestes Automatizados em Ruby on Rails
Testes Automatizados em Ruby on RailsThiago Cifani
 
Javascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosJavascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosWesley Lemos
 
Threads 04 Variáveis atômicas
Threads 04 Variáveis atômicasThreads 04 Variáveis atômicas
Threads 04 Variáveis atômicasHelder da Rocha
 
Apresentação sobre MVVMC
Apresentação sobre MVVMCApresentação sobre MVVMC
Apresentação sobre MVVMCAlisson Agiani
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOWesley Lemos
 
TDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.JsTDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.Jstdc-globalcode
 
Gems para colocar seus testes no trilho
Gems para colocar seus testes no trilho Gems para colocar seus testes no trilho
Gems para colocar seus testes no trilho Webgoal
 
Um Mundo Java Sem XML
Um Mundo Java Sem XMLUm Mundo Java Sem XML
Um Mundo Java Sem XMLiMasters
 
Regras de Produção: o Motor de Inferência JESS
Regras de Produção:o Motor de Inferência JESSRegras de Produção:o Motor de Inferência JESS
Regras de Produção: o Motor de Inferência JESSelliando dias
 
O que é que o Java não tem?
O que é que o Java não tem?O que é que o Java não tem?
O que é que o Java não tem?Denis Costa
 
O que mudou no Ruby 1.9
O que mudou no Ruby 1.9O que mudou no Ruby 1.9
O que mudou no Ruby 1.9Nando Vieira
 
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCCTDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCCStefan Teixeira
 
TDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de DadosTDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de Dadostdc-globalcode
 

Semelhante a Karatê DSL - Automatizando testes de API de forma simples - GUTS RS - Junho (20)

GDG POA - Karate DSL - Automatizando testes de api de forma simples
GDG POA - Karate DSL - Automatizando testes de api de forma simplesGDG POA - Karate DSL - Automatizando testes de api de forma simples
GDG POA - Karate DSL - Automatizando testes de api de forma simples
 
Akka no Just Java 2012
Akka no Just Java 2012Akka no Just Java 2012
Akka no Just Java 2012
 
Testes Automatizados em Ruby on Rails
Testes Automatizados em Ruby on RailsTestes Automatizados em Ruby on Rails
Testes Automatizados em Ruby on Rails
 
JavaCC
JavaCCJavaCC
JavaCC
 
Javascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosJavascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - Conceitos
 
Threads 04 Variáveis atômicas
Threads 04 Variáveis atômicasThreads 04 Variáveis atômicas
Threads 04 Variáveis atômicas
 
Apresentação sobre MVVMC
Apresentação sobre MVVMCApresentação sobre MVVMC
Apresentação sobre MVVMC
 
Javascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POOJavascript para CSharpers 4 - POO
Javascript para CSharpers 4 - POO
 
TDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.JsTDC2016SP - Trilha Node.Js
TDC2016SP - Trilha Node.Js
 
Gems para colocar seus testes no trilho
Gems para colocar seus testes no trilho Gems para colocar seus testes no trilho
Gems para colocar seus testes no trilho
 
Um Mundo Java Sem XML
Um Mundo Java Sem XMLUm Mundo Java Sem XML
Um Mundo Java Sem XML
 
Melhorando seu App com Kotlin e Testes
Melhorando seu App com Kotlin e TestesMelhorando seu App com Kotlin e Testes
Melhorando seu App com Kotlin e Testes
 
Tdc2010 web
Tdc2010 webTdc2010 web
Tdc2010 web
 
Migrando pra Scala
Migrando pra ScalaMigrando pra Scala
Migrando pra Scala
 
Regras de Produção: o Motor de Inferência JESS
Regras de Produção:o Motor de Inferência JESSRegras de Produção:o Motor de Inferência JESS
Regras de Produção: o Motor de Inferência JESS
 
O que é que o Java não tem?
O que é que o Java não tem?O que é que o Java não tem?
O que é que o Java não tem?
 
O que mudou no Ruby 1.9
O que mudou no Ruby 1.9O que mudou no Ruby 1.9
O que mudou no Ruby 1.9
 
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCCTDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
TDC 2016 SP - Cobertura de código de procedures T-SQL com SQLCC
 
TDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de DadosTDC2016SP - Trilha Banco de Dados
TDC2016SP - Trilha Banco de Dados
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
 

Karatê DSL - Automatizando testes de API de forma simples - GUTS RS - Junho