O teste automatizado é um componente crítico do processo de teste. controle de qualidade de software . Mas testar APIs Representational State Transfer (REST) pode ser complicado. Muitos daqueles que recorrem ao teste manual da API REST negligenciam os detalhes e perdem maneiras de economizar tempo.
Qualquer serviço REST API testado com sucesso terá estas áreas cobertas:
como fazer um discord bot 2018
Para isso, você precisa das ferramentas certas. Apache JMeter e REST Assured são duas ferramentas de teste REST populares para testar serviços de API REST. Você pode aprender mais sobre como usá-los na prática em Aqui Y Aqui .
Neste artigo, você aprenderá os prós e os contras dessas duas ferramentas e onde elas se encaixam melhor em seus projetos de API REST existentes.
Há um pré-requisito: JMeter e REST Assured requerem Java, portanto, você deve ter o Java instalado em seu computador para executar JMeter ou REST Assured.
Instalar o Apache JMeter é muito simples: vá para página de download , escolha o ZIP ou TAR, baixe o arquivo, descompacte-o e você está pronto para ir.
Vá para a pasta onde você descompactou o arquivo, para a subpasta bin
e execute jmeter.bat
(ou semelhante para o seu sistema operacional, se não for Windows). Para obter informações mais detalhadas sobre como configurar o Apache JMeter, consulte este página .
Instalar o REST Assured é uma experiência um pouco diferente. REST Assured não é uma ferramenta independente. É uma biblioteca Java. Para usá-lo, você precisa configurar um novo projeto Java e incluí-lo como uma biblioteca para seu projeto. Claro, há suporte para muitas ferramentas de compilação, então você pode simplesmente apontar seu resolvedor de dependências para algum repositório público (Maven). Você pode encontrar informações mais detalhadas sobre como configurar REST Assured [aqui] (https://semaphoreci.com/community/tutorials/testing-rest-endpoints-using-rest-assured.
Apache JMeter documentação Ele pode ser encontrado no site oficial do JMeter. Fornece documentação bastante abrangente, desde o início até funções complexas como ouvintes. Além disso, no site oficial do JMeter, você pode encontrar links para alguns recursos muito ricos, como vídeos tutoriais. Se você gosta de ler menos e assistir mais, este é definitivamente um bônus para você.
o documentação do REST Assured, como a própria ferramenta / biblioteca, pode ser encontrado no repositório Github. Ele tem uma grande lista de recursos listados na documentação online com explicações muito detalhadas de como conseguir algo. No entanto, toda a documentação é uma ótima página da web, não a maneira mais fácil de explorar uma ferramenta.
O Apache JMeter, como um aplicativo independente com uma interface gráfica de usuário (GUI), permite que você crie seus testes a partir da GUI. Isso pode ser útil especialmente devido à hierarquia de entidades introduzida pelo JMeter: tudo o que você criar no seu teste será exibido em uma representação semelhante a uma árvore na GUI do JMeter.
Para criar um teste, não é necessário ter habilidades de codificação. No entanto, a GUI não limita nenhuma das possibilidades com relação ao planejamento de teste. Se você ainda deseja adicionar algum cronograma / fluxo personalizado, os componentes do BeanShell permitirão que você faça isso.
Ao salvar seu projeto JMeter, tudo o que você criou será salvo em um grande arquivo XML (com a extensão .jmx
). Em geral, mesmo para uma pequena alteração em um dos testes, você (provavelmente) terá que reabrir o projeto na GUI para fazer a alteração.
Se você precisar colaborar com outras pessoas no mesmo arquivo de projeto JMeter, esse grande arquivo XML não será fácil de manter usando qualquer um dos sistemas de gerenciamento de controle de origem (SCM) (como Git, SVN, Perforce, etc.).
REST Assured, por outro lado, requer habilidades de codificação Java para criar os testes. Não há GUI amigável para a criação de testes. No entanto, REST Assured permite que você escreva os testes usando a linguagem Gherkin (sintaxe Dado-Quando-Então), portanto, mesmo se você precisar de algumas habilidades de codificação Java, os testes são bastante legíveis.
given(http://via.placeholder.com/2000x200?text=image+placeholder). config(RestAssured.config(http://via.placeholder.com/2000x200?text=image+placeholder).jsonConfig(jsonConfig(http://via.placeholder.com/2000x200?text=image+placeholder).numberReturnType(BIG_DECIMAL))). when(http://via.placeholder.com/2000x200?text=image+placeholder). get(“/price”). then(http://via.placeholder.com/2000x200?text=image+placeholder). body(“price”, is(new BigDecimal(12.12)));
Como REST Assured é uma biblioteca e os testes são realmente escritos em Java, você pode organizar seus testes em arquivos Java separados, portanto, quando precisar alterar um teste, você só precisará abrir um arquivo. Você não precisa de uma GUI, portanto, pode editar facilmente o teste, mesmo por meio de um terminal SSH. Colaborar com outras pessoas é bastante simples porque os arquivos Java são fáceis de manter usando qualquer SCM.
JMeter é bem conhecido como uma ferramenta de teste de desempenho para testar serviços e aplicativos da web. Ele tem boas opções prontas para usar, como relatórios com diferentes tipos de gráficos que você pode usar para exibir métricas de teste de desempenho.
Por outro lado, também não é o cenário de uso principal do JMeter. Você pode criar testes funcionais para a API REST com JMeter, incluindo asserção de resposta.
o que é criptomoeda para manequins
O cenário de uso principal para REST Assured é para teste funcional de serviços REST API. Ele ainda vem com seu próprio mecanismo de asserção de resposta (sintaxe de Gherkin). Como REST Assured é uma biblioteca Java, ela pode ser facilmente integrada a testes de unidade.
Quando se trata de benchmarks, o REST Assured não oferece suporte para benchmarks prontos para uso. No entanto, se quiser usá-lo para teste de desempenho, você precisará desenvolver sua própria estrutura customizada para teste de desempenho no REST Assured.
Os testes JMeter podem ser chamados de duas maneiras.
Na interface do usuário, clicando no botão Executar:
Na linha de comando:
jmeter -n -t your_script.jmx
A recomendação oficial do JMeter é não executar os testes de desempenho com a GUI, pois os testes serão executados mais lentamente (em termos de número de solicitações por segundo) em comparação com a execução da linha de comando.
O REST Assured, por outro lado, requer um executor de teste separado, por exemplo jUnit ou TestNG (ou de qualquer outra forma para executar o código Java).
Do Eclipse usando TestNG:
Na linha de comando usando, por exemplo, a ferramenta de construção Ant:
ant run-tests
O Apache JMeter devido ao seu objetivo principal possui um grande número de tipos de relatórios que você pode criar a partir dos resultados de seus testes. Como você pode executar testes de desempenho do JMeter, as métricas de desempenho geralmente são exibidas usando gráficos como este:
Você pode aprender mais sobre os relatórios JMeter e os tipos de relatórios que você pode criar Aqui .
REST Assured não cria nenhum relatório, portanto, depende de você e da estrutura de teste que você escolher. No entanto, quando integrado com alguma estrutura de teste de unidade, você pode obter relatórios úteis em formato HTML, texto ou XML.
Quando se trata de integração contínua de produtos em teste, é muito importante integrar sua estrutura de automação de teste com ferramentas de CI para executar testes e relatar os resultados.
Os testes automatizados do JMeter podem ser facilmente integrados ao Jenkins usando o desempenho do plugin que permitem configurar ações pós-construção e obter uma página de painel agradável de uma página de trabalho do Jenkins.
O REST Assured também pode ser facilmente integrado ao Jenkins porque o Jenkins tem plug-ins para quase todas as estruturas de teste; Por exemplo, ele plugin TestNG que novamente pode criar um gráfico de tendência robusto para os resultados do teste.
Esta é uma categoria que não pode ser medida facilmente. A atividade da comunidade depende de vários fatores, como a expiração da ferramenta ou o número de colaboradores.
O Apache JMeter tem uma comunidade maior hoje. Isso se deve principalmente ao fato de que o JMeter foi introduzido no mercado há muito tempo e é considerado um padrão da indústria quando se trata de testes de desempenho de aplicativos e serviços da web. JMeter publica lançamentos oficiais a cada 5-6 meses . dele Repositório GitHub é muito ativo, com novas confirmações diárias. JMeter usa o Bugzilla como um rastreador de problemas e tem um lista de questões abertas que são alterados com freqüência. Existem mais de 23000 resultados para JMeter na pesquisa StackOverflow . Em sites de redes sociais, JMeter tem uma conta oficial da Twitter . No Facebook e no LinkedIn, não existe uma conta oficial para o JMeter, mas existem dois grupos, o maior deles é este grupo do facebook e este Grupo LinkedIn .
a simulação pode usar qualquer distribuição de probabilidade que o usuário definir.
O REST Assured está alcançando o estágio principal e se tornou a primeira escolha, recomendação de várias fontes quando se trata de automatizar o teste funcional do serviço REST API. REST Assured foi postado lançamentos oficiais uma vez a cada 6 meses nos últimos dois anos. o Repositório GitHub Ele tem muitos colaboradores e é um pouco menos ativo que o JMeter, mas também é muito ativo. REST Assured está rastreando problemas no repositório GitHub, então tudo está em um só lugar. Dentro StackOverflow , existem mais de 2.000 resultados de pesquisa para REST Assured, portanto, podemos dizer que é significativamente menor em comparação com os resultados de pesquisa do JMeter. Quanto aos grupos de mídia social, apenas o Grupo LinkedIn encontrou significativamente menos membros em comparação com JMeter. A comunidade REST Assured pode não ser tão grande quanto a comunidade JMeter, mas é muito ativa.
O JMeter e o REST Assured têm vantagens um sobre o outro. Mas, dependendo do projeto em que você está trabalhando, um será melhor do que o outro para a automação de teste da API REST. Ambos são muito robustos, têm opções de teste úteis, têm bons recursos de relatório e podem ser facilmente integrados a estruturas de teste personalizadas.
Aqui está um resumo de todos os critérios de comparação explorados neste artigo para essas duas ferramentas de teste REST populares:
Apache JMeter | Tenha certeza | |
---|---|---|
Requer habilidades de codificação | Não | Sim (Java) |
Documento completo | sim | sim |
Teste funcional | Sim (mas excessivo) | sim |
Teste de desempenho | sim | Não (fora da caixa) |
Adequado para SCM (Git, P4 ...) | Não | sim |
Relatórios de teste | sim | Não |
Integração com ferramentas CI | sim | sim |
Integração com testes de unidade | Não | sim |
Teste de paralelização | sim | sim |
Atividade da comunidade | sim | sim |