Ramos da InformáticaMundoJSAutomação de Testes API REST com Cypress: Blueprint Prático

Automação de Testes API REST com Cypress: Blueprint Prático

-

Vamos começar nosso tutorial de automação de testes com Cypress com as API REST. Vamos entender de forma simples e objetiva como funcionam as API REST, o que precisamos para iniciar um projeto de automação de testes com Cypress usando JavaScript e passo a passo para realizar o primeiro teste automatizado com uma chamada GET.

No primeiro tutorial: Como fazer testes automatizados Front-End com Cypress? foram apresentados as vantagens de trabalhar com o Cypress, como instalar e configurar e foi realizado um exemplo de testes com o Front-End. Sendo, portanto, uma leitura obrigatória para quem está tendo o contato pela primeira vez com esta ferramenta de automação de testes.

O que é uma API REST?

As API’s servem para que haja comunicação entre aplicações e usuários de forma simplificada, utilizando padrões de requisições que executam determinadas funções. Elas podem ser representadas em alguns formatos, sendo os mais conhecidos e utilizados: XML, JSON e YAML.

Dica de Leitura: Agora que você começou a explorar o mundo da automação de testes com Cypress, é importante considerar a qualidade do código e como ele pode ser melhorado. Para isso, uma ferramenta como o SonarQube pode ser fundamental. Aprenda como instalar e configurar o SonarQube para seus projetos Node.js e leve seu desenvolvimento para o próximo nível.

Já o REST é a Transferência de Estado Representacional onde contém regras que permitem que as aplicações se comuniquem. O REST usa como protocolo de comunicação o HTTP, tendo inúmeras formas de requisições (verbos) sendo os mais utilizados: GET, POST, PUT e DELETE:

  • GET: recupera a representação de objetos e retorna status 200 quando com sucesso.
  • POST: cria objetos e retorna o código 201 quando com sucesso.
  • PUT: atualiza ou cria objetos retornando 200 ou 201.
  • DELETE: exclui objetos retornando status 200.

Exemplo de teste automatizado com API REST com o Cypress

Para ilustrar este exemplo iremos seguir um passo a passo de como automatizar um GET simples usando o request do Cypress. Para isso, usaremos Dummy api example no caminho http://dummy.restapiexample.com/api/v1/employees

Crie um arquivo na pasta “integration” com o nome rest.spec.js. Primeiro temos que importar o cypress inserindo o código abaixo:

/// <reference types="cypress" />

Em seguida criaremos o escopo do teste usando o it

it('Deve realizar um GET simples', () => {
 
})

Dentro do it usaremos o request do cypress para realizar o GET já pegando o resultado da requisição e mostrando no console do chrome, ficando da seguinte forma:

it('Deve realizar um GET simples', () => {
    cy.request({
        method: 'GET',
        url: 'http://dummy.restapiexample.com/api/v1/employees',
    }).then(res => {
        console.log(res)
    })
})

A execução do teste retorna status sucesso 200 e ficará da seguinte forma:

Exemplo de teste automatizado com API REST com Cypress

Inspecionar a página e na aba “Console” irá trazer o objeto de retorno da requisição, conforme aprendemos no início dessa documentação.

tutorial de teste automatizado com API REST

Agora só falta realizarmos validação de que:

    1. O status da requisição foi realizado com sucesso e retornou 200;
    2. O retorno não foi vazio;
    3. O primeiro elemento possui as propriedades: id, employee_name, employee_salary, employee_age e profile_image;

 

it('Deve realizar um GET simples', () => {
    cy.request({
        method: 'GET',
        url: 'http://dummy.restapiexample.com/api/v1/employees',
    }).then(res => {
        expect(res.status).to.be.equal(200)
        expect(res.body.data).is.not.empty
        expect(res.body.data[0]).to.have.property('id')
        expect(res.body.data[0]).to.have.property('employee_name')
        expect(res.body.data[0]).to.have.property('employee_salary')
        expect(res.body.data[0]).to.have.property('employee_age')
        expect(res.body.data[0]).to.have.property('profile_image')
    })
})
automacao de testes com API REST

O que é o Cypress e as vantagens para automação de testes

Não é mais novidade que o processo de automação de testes de software, se bem planejado, desenvolvido e executado, permite a redução dos esforços empregados em testes manuais e auxilia na garantia da qualidade dos sistemas e aplicativos onde são implantados. Todavia, testes automatizados podem consumir um tempo considerável para serem desenvolvidos, o que acaba inviabilizando a construção destes em ambientes ágeis.

Buscando resolver este tipo de problema, Cypress surge com a promessa de evoluir os testes de aplicativos para web, da mesma forma como a própria web evoluiu. Sempre levando em consideração seu grande lema, “The web has evolved. Finally, Testing has too.”, esta poderosa ferramenta busca permitir de maneira fácil, rápida e confiável o desenvolvimento e execução de testes automatizados de qualquer aplicação que possa ser acessada via navegador. Seja com sua versão gratuita ou paga, Cypress vem conquistando seu espaço no mundo dos frameworks de testes automatizados end-to-end.

Uma grande vantagem do uso do Cypress é que ele segue à risca o conceito de “All in one”, ou seja, com o uso único e exclusivo dele, o desenvolvedor tem a sua disposição uma gama de ferramentas que possibilitam o desenvolvimento, a execução e a visualização de relatórios dos testes automatizados.

O que é o Cypress e as vantagens para automação de testes

Diferentemente do Selenium, que opera fora do navegador executando comandos remotos para interagir com as páginas a serem testadas, o Cypress executa no mesmo loop de execução do navegador, permitindo então acesso a comandos nativos. Da mesma forma, por estar instalado na máquina onde está sendo utilizado, a ferramenta é capaz de acessar alguns recursos da própria máquina. Cypress também consegue interagir com o tráfego da rede, podendo ler e manipular os dados recebidos e enviados, ampliando o leque de possibilidades desta ferramenta. Pode-se entender que o Cypress controla todo o processo de automação, de cima para baixo, sendo capaz de entender e, de certa forma, manipular tudo o que acontece dentro e fora do navegador.

Cypress é também capaz de executar testes em uma quantidade considerável de navegadores e suas diferentes versões, tais como o Chrome, Chrome Beta, Chrome Canary, Chromium, Edge, Firefox, entre outros. Infelizmente, ainda não suporta alguns navegadores, tais como o Safari e o Internet Explorer, porém segundo a documentação, o suporte a estes já está no roteiro.

Um ótimo diferencial existente no Cypress é sua função de Debug dos testes. Durante o desenvolvimento, o desenvolvedor pode optar por executar os testes e visualizar em tempo real o resultado obtido. Nesta visualização, também é possível selecionar qualquer estado da execução do teste, podendo retornar para a página que a aplicação estava localizada e interagir com os elementos naquele instante. Juntamente com esta funcionalidade, o Cypress oferece um recurso de captura de elementos, onde com um simples clique é retornado ao usuário um seletor para ser utilizado na automação.

 

cypress exemplo 2

Outro ponto a se destacar nesta poderosa ferramenta é seu recurso de dashboard. Trata-se de uma plataforma web onde é possível consultar o resultado de cada execução dos testes, seja este feito localmente ou em um ambiente de integração contínua, o qual existe total suporte. Neste contexto, um ponto interessante é a forma como o Cypress apresenta estes resultados, gravando por completo a execução dos testes e capturando automaticamente as evidências de eventuais falhas que ocorram no durante o processo. O uso desta dashboard possui algumas limitações em sua versão gratuita, porém existem diferentes planos e preços, que permitem o consumidor escolher o que lhe é mais viável, tanto quanto aos recursos quanto ao preço.

Tendo como base as informações apresentadas, é notável as vantagens trazidas pelo uso do Cypress. Entretanto, existem algumas limitações que podem fazer com que ela não seja a ideal para todo tipo de aplicação, tais como:

  1. Desenvolvimento dos scripts apenas em javascript;
  2. Sem suporte para execução dos testes em dispositivos móveis (físicos ou virtualizados);
  3. Dificuldade em gerir múltiplas janelas do navegador;
  4. Sem suporte para Internet Explorer, Safari e Opera (mas já estão no roadmap de desenvolvimento);

Caso o Cypress não atenda aos requisitos de automação da sua empresa, existem diversas outras ferramentas que possibilitam a automação de aplicações web, cada uma com suas vantagens e desvantagem, sendo assim, a utilização de POC’s (Proof of Concept, ou em português, prova de conceito) é quase que essencial para garantir que o resultado esperado por toda equipe seja atingido.

Novos conteúdos

 

 


✦ Recomendação do Editor

Eleve o seu nível no assunto

Se você está procurando aprender mais sobre automação de testes avançados após ler nosso artigo sobre como automatizar testes com Cypress, eu recomendo procurar por ‘Livro: Automacao de Testes Avancados com JavaScript e Cypress’.

Com essa ferramenta, você obterá uma visão mais completa e profunda sobre como automatizar testes, tornando-se um profissional altamente requisitado no mercado de tecnologia. Além disso, o livro abordará também os principais conceitos de automação de testes, como o uso de frameworks como Cypress, JEST e Puppeteer, garantindo que você esteja sempre atualizado em relação às melhores práticas e ferramentas da indústria. Com essa competência, você será capaz de aumentar a qualidade das suas entregas, melhorar a eficiência do seu time e se destacar nas entrevistas de emprego.

 

Ver ofertas em destaque na Amazon


Ajude a manter este projeto, a Ramos da Informática pode ganhar uma comissão sobre as vendas qualificadas.

Ramos da Informática
Ramos da Informáticahttps://ramosdainformatica.com.br
Ramos da Informática é um hub de comunidade dedicado a linguagens de programação, banco de dados, DevOps, Internet das Coisas (IoT), tecnologias da Indústria 4.0, cibersegurança e startups. Com curadoria de conteúdos de qualidade, o projeto é mantido por Ramos de Souza Janones.

Mais recentes

Como aprender a programar, um guia definitivo

Última atualização em 23/04/2026. Guia completo sobre: Como aprender a programar. Espero que este “guia” ou “manifesto”, como prefiro chamar, seja...

Stream Deck para Desenvolvedores: o Console de Comando do Futuro

Esqueça os streamers. Descubra como o Stream Deck se tornou o hardware essencial para Engenheiros de IA e Full...

Como Usar o Skills in Chrome no Brasil: Tutorial Completo de IA

A inteligência artificial já faz parte do nosso fluxo de trabalho, mas ter que reescrever os mesmos prompts repetidamente...

Context Engineering: Como Arquitetar Dados para LLMs e RAG

Na edição desta newsletter intitulada “Engenharia de Prompt: Não é só mais uma buzzword“: https://www.linkedin.com/pulse/engenharia-de-prompt-n%C3%A3o-%C3%A9-s%C3%B3-mais-uma-buzzword-de-souza-janones-tpkxf tratei sobre o tema...
E-Zine Dev

Evolua para Sênior

Estratégias de Node.js, arquitetura Limpa e IA que nunca publicamos no blog. Junte-se a +10.000 devs.

Assinar Gratuitamente Zero spam. Cancele quando quiser.

Aprender Idiomas com Google Tradutor: Na Prática

O Google está lançando um novo recurso experimental com tecnologia de IA no Google Tradutor, projetado para ajudar as...

Comunidades Internacionais de Desenvolvedores

Descubra as melhores comunidades internacionais de devs para 2026: GitHub, Stack Overflow, Discord e mais. Comparativo de salários Brasil vs. exterior e guia de carreira remota.

Mais Lidos

Livros sobre Inteligência Artificial com Node.js e JavaScript

Temos apresentado no site cursos de Inteligência Artificial, gratuitos...

Event Loop: Entendendo process.nextTick vs Promises no Node.js

Dominar o Event Loop do Node.js é o que...

Bibliotecas e Ferramentas Modernas para Front-End

Mensalmente, vamos apresentar aos leitores da Ramos da Informática...

Migrar para PostgreSQL: Resolução de Alta Disponibilidade.

Solução permite que os clientes substituam os bancos de...
E-Zine Dev

Evolua para Sênior

Estratégias de Node.js, arquitetura Limpa e IA que nunca publicamos no blog. Junte-se a +10.000 devs.

Assinar Gratuitamente Zero spam. Cancele quando quiser.

Você vai gostarrelacionados
Continue aprendendo

E-Zine Dev Ramos

Quer dominar arquitetura e IA?

Junte-se a +10.000 profissionais. Receba semanalmente estratégias de Node.js, React e IA que nunca publicamos no blog.

Assinar Gratuitamente Zero spam. Cancele quando quiser.