Se você está cansado de escrever infinitas linhas de código repetitivo no RestAssured apenas para testar suas APIs, você não está sozinho. O teste de API não deve ser como arrancar os dentes, mas vamos encarar os fatos: REST Assured pode tornar o processo enfadonho e desnecessariamente demorado. Mas e se você pudesse deixar essa rotina para trás?
Neste guia, mostraremos como fazer a mudança para o Keploy, uma maneira mais inteligente e sem código de testar suas APIs. Vamos tornar seus testes de API mais rápidos, fáceis e, ousamos dizer, divertidos! Pronto para a atualização?
REST Assured é uma biblioteca Java popular usada para testar serviços da web RESTful. Ele fornece uma linguagem específica de domínio (DSL) para escrever testes, permitindo que os desenvolvedores validem as respostas das APIs de maneira eficaz. Com recursos como:
Fácil integração com estruturas de teste como JUnit e TestNG.
Suporte para vários métodos HTTP (GET, POST, PUT, DELETE).
No entanto, à medida que as APIs se tornam mais complexas e as demandas de testes aumentam, confiar no REST Assured pode se tornar uma verdadeira dor. Vamos ser sinceros:
A redação manual de testes torna-se repetitiva e demorada.
Manutenção de testes é um pesadelo, especialmente quando as APIs evoluem.
Relatórios de cobertura não são integrados e requerem configuração com bibliotecas como Jacoco.
Configuração complexa consome tempo de desenvolvimento, distraindo os engenheiros das tarefas principais.
É aqui que entra o Keploy. O Keploy automatiza o processo de testes, reduzindo o esforço de engenharia em pelo menos 20% e permitindo que sua equipe se concentre no que importa: entregar software de alta qualidade.
Keploy é uma ferramenta de código aberto projetada para automatizar testes de API, capturando interações de API e reproduzindo-as posteriormente. Alguns de seus principais recursos incluem:
Autogenerate Data Mocking: Keploy pode gerar simulações automaticamente com base em interações com várias dependências, como microsserviços e bancos de dados, reduzindo a necessidade de criação manual de simulações.
Execução de baixo custo: Keploy não requer uma configuração de ambiente de teste complexo e dedicado. Isso leva a menos despesas gerais no gerenciamento de ambientes paralelos e reduz os custos associados à infraestrutura.
Teste de código zero: Ao contrário do RestAssured, onde os desenvolvedores precisam escrever cada teste manualmente, o Keploy oferece uma abordagem de código zero, capturando interações de API e gerando testes automaticamente.
Fácil integração: integra-se bem com pipelines de CI/CD e outras ferramentas de teste, como JUnit, TestNG, GitHub Action, etc.
Cobertura de teste abrangente: Como o Keploy captura interações de API do mundo real, incluindo casos extremos, ele ajuda a garantir uma cobertura de teste mais ampla e realista em comparação com os testes escritos manualmente no RestAssured.
Executaremos um aplicativo simples de gerenciamento de funcionários em Java com Postgres como banco de dados para este guia.
Antes de migrar, realize uma avaliação abrangente do seu conjunto de testes RestAssured existente:
Identificar casos de teste existentes: documente todos os casos de teste existentes e suas funcionalidades.
Dependências de notas: identifique quaisquer dependências que possam afetar o processo de migração.
Vamos executar nossos casos de teste e verificar se tudo está funcionando bem ou não
mvn test
Observaremos se todos os nossos casos de teste foram aprovados e, como instalamos o jacoco, também poderemos descobrir a cobertura.
Obtivemos cerca de 68% de cobertura para nosso conjunto de testes.
Vamos prosseguir com a configuração do Keploy e nosso processo de migração.
Instalar o Keploy: Você pode configurar o Keploy seguindo as instruções de instalação no repositório Keploy GitHub.
Você pode verificar a instalação executando o comando Keploy no terminal, devemos poder ver a saída abaixo:
Vamos iniciar o processo de migração de nossos casos de teste REST Assured existentes.
@BeforeEach public void setUp() { RestAssured.baseURI = "http://localhost"; RestAssured.port = 8080; // Clean up repository to ensure fresh data for each test employeeRepository.deleteAll(); // Create and save test employee testEmployee = new Employee(); testEmployee.setFirstName("John"); testEmployee.setLastName("Doe"); testEmployee.setEmail("[email protected]"); employeeRepository.save(testEmployee); // save to generate ID }
Como nosso aplicativo é executado localmente na porta 8080, configuramos RestAssured.port para também ser executado em 8080, permitindo que Keploy capture a interação da API e crie um novo conjunto de testes quando o REST Assured TestSuite for executado.
Vamos criar um arquivo jar para nosso aplicativo executando mvn clean install -Dmaven.test.skip=true.
Com o arquivo Jar pronto, vamos iniciar o keploy em modo de gravação para capturar os casos de teste. Agora é hora de colocar nosso banco de dados em funcionamento usando docker-compose up postgres: -
No novo terminal, vamos executar keploy record -c "java -jar target/springbootapp-0.0.1-SNAPSHOT.jar": -
Agora temos tudo pronto e configurado para migrar nossos conjuntos de testes. É hora de executar nosso conjunto de testes REST Assured existente. Esta execução permitirá que o Keploy capture as solicitações e respostas da API.
Cada um dos casos de teste gerados pelo keploy é um caso de teste REST Assured: -
@Test public void testGetEmployeeById() { get("/api/employees/" testEmployee.getId()) .then() .statusCode(200) .body("id", equalTo((int) testEmployee.getId())) // Ensure correct ID .body("firstName", equalTo("John")) .body("lastName", equalTo("Doe")) .body("email", equalTo("[email protected]")); } @Test public void testUpdateEmployee() { String updatedEmployeeJson = "{\"firstName\":\"Jane\",\"lastName\":\"Doe\",\"email\":\"[email protected]\"}"; given() .contentType(ContentType.JSON) .body(updatedEmployeeJson) .when() .put("/api/employees/" testEmployee.getId()) .then() .statusCode(200) .body("firstName", equalTo("Jane")) .body("lastName", equalTo("Doe")) .body("email", equalTo("[email protected]")); } @Test public void testDeleteEmployee() { delete("/api/employees/" testEmployee.getId()) .then() .statusCode(200); // Verify that employee no longer exists get("/api/employees/" testEmployee.getId()) .then() .statusCode(404); }
Migramos com sucesso os casos de teste REST Assured para o conjunto de testes keploy. Abaixo está um dos casos de teste do Keploy: -
Então, vamos executar nosso conjunto de testes keploy executando - keploy test -c "java -jar target/springbootapp-0.0.1-SNAPSHOT.jar" --delay 10: -
Como temos ruído, é por isso que um teste falhou e obtivemos cerca de 70,5% de cobertura com keploy.
A migração do REST Assured para o Keploy ofereceu várias vantagens, como teste de código zero, feedback em tempo real e integração simplificada de CI/CD. Seguindo as etapas descritas neste guia, você pode garantir uma transição tranquila e, ao mesmo tempo, maximizar os benefícios do Keploy para suas necessidades de teste de API.
Ao adotar o Keploy, sua equipe de desenvolvimento pode se concentrar mais no fornecimento de software de alta qualidade com esforço de engenharia reduzido, resultando em maior produtividade e qualidade de software.
CI/CD - https://keploy.io/docs/ci-cd/jenkins/
Faça o teste do Cloud - https://keploy.io/docs/keploy-cloud/cloud-installation/
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3