karate framework tutorial
Este tutorial é uma introdução ao teste de API usando o Karate Framework. Aprenda sobre a estrutura do Script de Teste de Karatê e as etapas para construir o primeiro script de teste:
API é um acrônimo que significa Interface de Programação de Aplicativo. Em termos simples, podemos defini-lo como um intermediário de software que permite a comunicação entre aplicativos.
Precisamos de testes de API porque:
- Os resultados são publicados mais rapidamente, portanto, não é mais necessário esperar para ver se a API está funcionando bem.
- Com a resposta mais rápida, a implantação dessas APIs também se torna mais rápida, o que permite um tempo de resposta rápido.
- A detecção precoce de falhas, mesmo antes de a IU do aplicativo ser criada, nos permite mitigar riscos e corrigir falhas.
- Entrega em grande escala possível em um período mais curto.
Para poder trabalhar em Teste de API, temos várias ferramentas disponíveis no mercado como Postman, Mocha e Chai. Eles demonstraram bons resultados e uso eficaz para testar APIs, no entanto, são fortemente influenciados pelo código. Para poder usá-los, é necessário estar tecnicamente correto e familiarizado com as linguagens de programação.
O Karate Framework resolve lindamente esse problema de suas ferramentas de software anteriores.

O que você aprenderá:
O que é Karate Framework?
Karatê? Vamos conversar sobre caratê. É o do Japão? O que você acha? Pode ser que o grande Bruce Lee tenha desenvolvido isso em seu tempo livre.
Embora gostemos de nos aprofundar nas raízes interessantes do Karate, por enquanto, vamos falar sobre o Ferramenta de caratê que foi desenvolvido por Peter Thomas , uma das grandes ferramentas que vêm resgatar os testadores de API.
A estrutura do caratê segue o estilo Cucumber de escrever o programa, que segue a abordagem BDD. A sintaxe é fácil de entender por não programadores. E essa estrutura é a única ferramenta de teste de API que combinou API Automation e teste de desempenho em uma única ferramenta autônoma.
Ele fornece aos usuários a capacidade de executar os casos de teste em paralelo e realizar as verificações JSON e XML.
Com essas informações, certos pontos-chave podem ser deduzidos para entender melhor a ferramenta do Karate em detalhes:
- Karate é uma estrutura de teste de BDD em vez de um TDD.
- Ele é projetado para ser fácil para não-programadores. Esse recurso é um divisor de águas, pois permite mais uso e acesso por muitas pessoas, independentemente de sua formação técnica ou capacidade.
- Ele faz uso do arquivo de recurso Cucumber e da linguagem Gherkins para escrever o teste, que é muito fácil de entender.
Todos esses recursos o tornam uma das ferramentas de automação mais favoráveis disponíveis hoje.
Estrutura da história do caratê
Criado por ' Peter Thomas ' em 2017, esse software tem como objetivo disponibilizar as funcionalidades de teste para todos. Ele foi escrito em Java e a maioria das pessoas esperava que seus arquivos também estivessem na mesma linguagem, no entanto, felizmente, esse não é o caso.
Em vez disso, ele usa arquivos Gherkins, que é o resultado de seu relacionamento com a estrutura Cucumber. O software de automação é uma extensão do Cucumber, portanto herda o uso do arquivo Gherkins em seu funcionamento. A grande diferença entre os dois é que o Karate não faz uso de Java durante os testes, mas Cucumber sim.
Esta é a razão pela qual ele atende a não programadores, já que a sintaxe Gherkins é super legível e abrangente. Esta é a razão pela qual o Karate é mais adequado e recomendado para fazer uma entrada no mundo dos testes automatizados de API.
A seguir estão alguns recursos da Estrutura de Teste de Karatê:
- Faz uso da linguagem Gherkins de fácil compreensão.
- Não requer nenhum conhecimento técnico de programação como Java.
- Baseia-se nos padrões populares do Pepino.
- Fácil de criar uma estrutura.
- O teste paralelo é a funcionalidade principal fornecida pelo próprio Karate, portanto, não precisamos depender de Maven, Gradle etc.
- UI para depurar o teste.
- Chamando um arquivo de feição de outro arquivo.
- Fornece suporte para o teste de driver de dados que é construído internamente, portanto, não há necessidade de depender de estruturas externas.
- Relatórios de descanso nativos integrados. Além disso, ele pode ser integrado ao Cucumber para melhores relatórios de interface do usuário e mais clareza.
- Fornece suporte interno para configuração de comutação em diferentes ambientes de teste (QA, Stage, Prod, Pre-Prod).
- Suporte contínuo para integração CI / CD que pode ser útil.
- Capaz de lidar com várias chamadas HTTP:
- Suporte para Web Socket
- Pedido SOAP
- HTTP
- Tratamento de cookies do navegador
- HTTPS
- Dados de formulário HTML
- Pedido XML
Comparando Karate Vs Descanso garantido
Tenha certeza : É uma biblioteca baseada em Java para testar os serviços REST. Ele usa a linguagem Java para escrever as linhas de código. Ele ajuda a testar várias categorias de solicitação, o que resulta ainda mais na verificação de diferentes combinações de lógica de negócios.
Karate Framework : Uma ferramenta baseada em Cucumber / Gherkins, usada para testar serviços SOAP e REST.
A tabela a seguir lista algumas diferenças mais proeminentes entre Rest-Assured e Karate Framework:
| S.No | Base | Karate Framework | Tenha certeza |
|---|---|---|---|
| 7 | Comunicando | Ele fornece relatórios internos, portanto, não precisa ser dependente de plug-ins externos. Podemos até integrá-lo com o plugin de relatórios Cucumber para uma melhor IU. | Precisa ser dependente de plug-ins externos como Junit, TestNG |
| 1 | Língua | Ele usa uma combinação de pepino e pepino | Ele faz uso da linguagem Java |
| dois | Tamanho do Código | Normalmente, a linha de código é menor, pois segue a estrutura semelhante a pepino | Linha de código é mais, pois envolve o uso da linguagem Java |
| 3 | Conhecimento técnico necessário | Os não programadores podem escrever facilmente o código Gherkins | É necessário conhecimento técnico para escrever código Java |
| 4 | Teste baseado em dados | Precisa fazer uso do TestNG ou equivalente para suportar o mesmo | Tags internas podem ser usadas para dar suporte ao teste de dados |
| 5 | Fornece suporte de chamada SOAP | Sim, fornece | Está relacionado apenas a um pedido REST |
| 6 | Teste Paralelo | Sim, o teste paralelo é facilmente compatível com a geração de relatório paralelo também | Não em grande medida. Embora as pessoas tenham tentado fazer isso, a taxa de falha é maior do que a taxa de sucesso |
| 8 | Suporte CSV para dados externos | Sim, do Karate 0.9.0 | Não, tem que usar código Java ou biblioteca |
| 9 | Automação de IU da Web | Sim, a partir do Karate 0.9.5 Web-UI Automation é possível | Não, não é compatível |
| 10 | Amostra GET | Given param val1 = ‘name1’ | given(). |
Portanto, como demonstrado pelas diferenças acima, é seguro dizer que o Karate é uma das coisas mais fáceis que qualquer pessoa pode fazer.
Ferramentas necessárias para trabalhar com Karate Framework
Agora, uma vez que temos nosso conhecimento básico sobre a Estrutura do Karatê, vamos dar uma olhada nos processos e ferramentas necessárias para configurar o ambiente do Karatê.
# 1) Eclipse
Eclipse é um Ambiente de Desenvolvimento Integrado usado no campo da programação de computadores. É usado principalmente para programação Java. Como mencionado anteriormente, o Karate é escrito em Java, então faz mais sentido porque o Eclipse é o IDE para o software de teste de API. Outro motivo é que é uma ferramenta de código aberto, e este é um motivo muito forte para optar por essa ferramenta.
Observação: Poderíamos até usar IntelliJ, Visual Studio e outros editores diferentes disponíveis no mercado.
# 2) Maven
Esta é uma ferramenta de automação de construção usada principalmente para construir projetos Java. É uma maneira de configurar um ambiente de Karatê e escrever o código. Para configurar seu Eclipse com os requisitos do Maven, você pode clicar aqui para instalação do Maven.
Enquanto estiver trabalhando no Maven, use as dependências do Maven que o ajudariam a suportar o Karate Framework.
As seguintes dependências serão usadas com Maven em pom.xml.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test Observação: As versões mais recentes podem estar disponíveis no repositório Maven.
abrindo arquivos .7z no mac
# 3) Gradle
O Gradle é uma alternativa ao Maven e pode ser usado em igual capacidade. Eles têm suas semelhanças e diferenças, mas podem ser usados igualmente na criação de um ambiente para nossos códigos de Karate.
É mais fácil de usar, flexível e recomendado quando nosso aplicativo tem alguns requisitos de modularização e gerenciamento com um monte de plug-ins. O código de configuração do Gradle seria parecido com isto,
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'Observação: Você pode usar MAVEN ou GRADLE.
# 4) Configuração do ambiente Java em seu sistema
É necessário configurar o ambiente JDK e JRE para começar a usar os scripts do Karate Framework.
Estrutura do roteiro do teste de caratê
Um script de teste de Karatê é conhecido por possuir a extensão “.feature”. Esta propriedade é herdada de Cucumber. A organização de arquivos na convenção Java também é igualmente permitida. Você é livre para organizar seus arquivos de acordo com as convenções do pacote Java.
No entanto, as diretrizes do Maven instruem que o armazenamento de arquivos não Java seja feito separadamente. Eles são feitos em um src / test / resources estrutura. E os arquivos Java são mantidos sob src / main / java .
Mas, de acordo com os criadores do Karate Framework, eles acreditam fortemente que mantemos arquivos Java e não-Java lado a lado. De acordo com eles, é muito mais fácil procurar os arquivos * .java e * .feature quando eles são mantidos juntos, em vez de seguir a estrutura padrão do Maven.
Isso pode ser feito facilmente ajustando seu pom.xml da seguinte maneira (para Maven):
src/test/java **/*.java ... A seguir está o esboço da estrutura geral do Karate Framework:

Agora, como este Karate Framework está usando o arquivo Runner, que também é necessário no Cucumber para executar os arquivos de feições, a maior parte da escrita seguirá os padrões do Cucumber.
Mas, ao contrário do Pepino, as etapas não requerem uma definição clara em Karate e que, por sua vez, aumentam a flexibilidade e facilidade de operações. Não precisamos adicionar a cola extra que normalmente temos que adicionar quando seguimos a estrutura do Pepino.
A classe “Runner” é na maioria das vezes chamada TestRunner.java.
Em seguida, o arquivo TestRunner.java assumirá a forma de:
import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }E falando sobre o .recurso arquivo, ele contém todos os cenários de teste que precisam ser testados para garantir que a API está funcionando de acordo com os requisitos esperados.
Um arquivo * .feature geral se parece com o mostrado abaixo:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200Criando o primeiro script de teste básico de caratê
Esta seção o ajudará a começar a criar seu primeiro Script de Teste, que será útil para você converter APIs na forma de uma estrutura de Karatê.
Antes de escrevermos os scripts de teste básicos de Karate, instale os seguintes requisitos em sua máquina:
- IDE Eclipse
- Maven. Defina o caminho Maven apropriado.
- JDK e JRE. Defina o caminho apropriado.
Vamos dar uma olhada na abordagem passo a passo:
# 1) Crie um novo MAVEN Projeto no Editor Eclipse
- Eclipse aberto
- Clique em Arquivo. Selecione Novo Projeto.

- Selecione o Projeto Maven

- Escolha o local do espaço de trabalho.
- Selecione o arquétipo (normalmente escolhemos “ Maven-archetype-quickstart 1,1 ”Para projetos simples do Maven).
- Forneça o ID do grupo e o ID do artefato (usamos os seguintes valores em nosso exemplo).
- ID do grupo : Karate
- ID do artefato: KarateTestScriptsSample
- Clique em Concluir para completar a configuração.
#dois) Uma vez criado, agora você poderá ver a seguinte estrutura na janela Project Explorer.

# 3) Inclua todas as suas dependências.
Nossa primeira etapa, após a configuração, será inclui todas as dependências que será necessário para a execução. Manteremos todas as tags no POM.xml (presumindo que você já conheça o uso do POM.xml).
- Abra POM.xml e copie o código abaixo na tag de dependência e salve o arquivo.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test Clique aqui para fonte.
# 4) Vamos fazer um brainstorm do cenário, o que vamos testar neste Script de Teste Básico de Karatê.
Cenário:
Estaremos testando uma API com este URL.
Caminho: api / users / 2
Método: OBTER
E precisamos validar , se a solicitação está retornando um Código de sucesso (200) ou não.
Em termos simples, vamos apenas testar uma API de amostra para ver se ela está ou não sendo executada com sucesso.
Observação: Estamos pegando uma API de amostra que está disponível para teste. Você pode escolher qualquer PATH ou pode consultar sua API.
Clique aqui para fonte.
# 5) Agora, nosso próximo passo seria criar um .recurso Arquivo.
Conforme discutido na seção de introdução, o arquivo .feature é a propriedade que foi herdada de Cucumber. Neste arquivo, iremos escrever os cenários de teste que precisam ser executados para realizar o Teste de API.
- Vá para a pasta src / test / java no seu projecto.

- Clique com o botão direito nele e crie um novo arquivo - userDetails.feature. Em seguida, clique no botão Concluir.

Agora você verá o seguinte arquivo na pasta src / test / java

O Ícone de cor verde lembra o .feature fi le em pepino que acabamos de criar.
- Uma vez que o arquivo foi criado, agora iremos escrever nossos cenários de teste que serão discutidos na seção seguinte.
# 6) Já que temos o cenário e o branco. recurso arquivo pronto, agora vamos começar com nosso primeiro script. Vamos começar a codificar
Escreva a seguinte linha de código no arquivo userDetails.feature que criamos na Etapa 5:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200Vamos tentar entender os componentes que estão escritos no arquivo acima:
- Recurso: A palavra-chave explica o nome do recurso que estamos testando.
- Fundo: Esta é uma seção opcional que é tratada como uma seção de pré-requisitos. Isso pode ser usado para definir tudo o que é necessário para testar a API. Contém HEADER, URL e PARAM opções.
- Cenário: Cada arquivo de recurso que você verá terá pelo menos um recurso (embora possa fornecer múltiplo cenários). É a descrição do caso de teste.
- Dado: É a etapa que precisa ser executada antes que qualquer outra etapa de teste seja realizada. É uma ação obrigatória a ser executada.
- Quando: Ele especifica a condição que deve ser atendida para realizar a próxima etapa do teste.
- Então: Diz-nos que o que deve acontecer caso a condição mencionada no Quando é satisfeito.
Observação: Todas as palavras-chave mencionadas acima são da linguagem Gherkins. Esta é a maneira padrão de escrever os scripts de teste usando o Cucumber.
E mais algumas palavras usadas no arquivo de recurso são:
- 200: É o código de status / resposta que esperamos (clique aqui para a lista de códigos de status)
- OBTER: É o método da API como POST, PUT, etc.
Esperamos que esta explicação tenha sido fácil de entender. Agora você será capaz de se relacionar exatamente com o que está escrito no arquivo acima.
Agora precisamos criar um arquivo TestRunner.java
Conforme explicado na seção acima, Cucumber precisa de um arquivo Runner que seria necessário para executar o .recurso arquivo que contém os cenários de teste.
- Vá para a pasta src / test / java no seu projecto

java como fazer uma fila
- Clique com o botão direito nele e crie um novo arquivo Java: TestRunner.java
- Assim que o arquivo for criado, coloque as seguintes linhas de código abaixo dele:
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }- Test Runner é o arquivo que agora será executado para realizar o cenário desejado que foi escrito na Etapa # 5.
# 7) Agora estamos prontos com os dois arquivos TestRunner.Java e userDeatils.feature. A única tarefa que nos resta é Corre o script.
- Acesse o arquivo TestRunner.java e clique com o botão direito do mouse no arquivo, conforme mostrado na imagem abaixo.

- Escolha Executar como -> Teste Junit
- Agora, uma vez selecionado, você começará a observar que o caso de teste já começou.
- Aguarde a execução do script de teste. Uma vez feito isso, você observará algo como mostrado na imagem abaixo em sua janela.

- Finalmente, podemos dizer que criamos com sucesso nosso primeiro básico Script de Teste usando o Karate Framework.
# 8) Por último, o framework Karate também fornece uma apresentação de relatório em HTML para a execução que foi realizada.
- Vá para a Pasta de Destino -> relatórios surefire-> Aqui você verá seu relatório HTML que pode ser aberto.

** Também sugerimos que você abra o mesmo usando o navegador Chrome para uma melhor aparência.
- O seguinte relatório HTML será mostrado para você, mostrando Cenários e teste que foi executado para o cenário mencionado:

Conclusão
Neste tutorial, discutimos o teste de API, as diferentes ferramentas de teste disponíveis no mercado e como o Karate Framework é uma opção melhor em comparação com suas contrapartes.
Seguimos uma abordagem passo a passo para criar nosso primeiro script de teste básico. Começamos criando um básico Projeto Maven no IDE Eclipse para criar um arquivo .feature, que contém todo o cenário de teste e um arquivo Runner para executar o caso de teste mencionado no arquivo .feature.
No final das várias etapas, podemos ver o relatório de execução dos resultados do teste.
Esperamos que este tutorial tenha sido útil para os iniciantes no aprendizado de como construir seu primeiro script de teste usando o Karate Framework e realizar testes de API. Essa abordagem detalhada passo a passo é uma maneira maravilhosa de executar e executar vários testes na API.
Leitura recomendada
- Como configurar a estrutura de teste do Node.js: Tutorial do Node.js.
- Tutorial Parasoft SOAtest: Ferramenta de teste de API sem script
- Tutorial Mockito: Framework Mockito para simulação em testes de unidade
- Tutorial de teste de API: um guia completo para iniciantes
- Tutorial TestNG: Introdução ao Framework TestNG
- Tutorial Jest - Teste de Unidade de JavaScript usando Jest Framework
- Tutorial de teste destrutivo e teste não destrutivo
- Como usar o Postman para testar diferentes formatos de API?