As APIs são omnipresentes.
As empresas digitais estão se tornando mais dependentes de APIs para a experiência e as operações do cliente.
A entrega de APIs é, portanto, uma área crítica a assegurar.
Mas há tantas ferramentas a serem consideradas para o teste de API que podemos nos perder: o Postman é suficiente? Precisamos de um framework para teste de integração?
Este artigo compartilha as etapas para selecionar as ferramentas de teste contínuo de APIs.
Segue a QE Unit para mais Quality Engineering exclusivo da comunidade.
Isenção de responsabilidade: ¹Este artigo não se concentra em produtos nem pretende ser totalmente exaustivo nem compará-los; o foco está no processo de decisão. ²Contribuo para o produto de código aberto Cerberus Testing listado com os outros. ³Se acha que está faltando uma solução importante, comente este post ou entre em contato comigo aqui.
Identifique seus requisitos para o teste contínuo de APIs
Comece definindo o que deseja focar em suas necessidades, independentemente das soluções possíveis.
Identifique qual parte do teste contínuo de API é mais valiosa:
- Validar o design da API com casos de uso, dicionário de dados e modelos;
- Verificações rápidas de stubs e contratos de API durante a codificação;
- Testes iniciais de API em ambientes de não produção;
- Testes de integração de APIs em sistemas distribuídos;
- Verificações sistemáticas após uma implantação em um ambiente;
- Garantir níveis específicos de segurança, desempenho, confiabilidade;
- Medindo o desempenho em produção, em diferentes configurações.
Pode querer todos eles, mas ordene seus requisitos em uma lista de prioridades.
Começará a ver padrões para responder a estas perguntas:
- Está procurando por testes unitários, de integração, funcionais?
- Seu foco está mais em requisitos funcionais ou não funcionais?
- Quais são os principais usuários de suas soluções, toda a equipe ou funções específicas?
- Suas necessidades são mais a montante, no meio ou no final da produção?
Então pode começar a identificar seus critérios.
Esclareça os critérios importantes de seu teste de API
Podemos imaginar matrizes de decisão complexas ao falar sobre critérios – já inicializando uma planilha se for analítico como eu.
Normalmente não precisamos desse nível de complexidade.
Esclareça estes pontos importantes para fazer rapidamente uma lista curta:
- Quais critérios podem fazer descartar diretamente uma solução?
- Quais são os 3 principais requisitos obrigatórios que está procurando?
- Quais casos de uso e valor devo criar em relação a hoje?
Suas respostas já fornecerão um bom resumo do que está procurando.
Pode então verificar uma lista sistemática de requisitos comuns de API para fins de verificação:
- Usabilidade, possivelmente low-code e sem script para colaboração;
- Suporta design de teste, módulos e reutilização;
- Definição de suporte de diversas aplicações e ambientes;
- Facilidade de stubs de API, definição e definição de contrato;
- Biblioteca integrada para verificações como declarações, segurança, códigos de erro;
- Integrações externas e APIs públicas;
- Funcionalidades de colaboração preferencialmente através de uma interface SaaS/web;
- Maturidade, suporte, integração e documentação;
- Requisitos de segurança, escalabilidade e desempenho.
O tipo de soluções necessárias começa a surgir.
Decida a tipologia das soluções de teste de API
Problemas diferentes têm soluções diferentes, e separar as preocupações permite ver mais claramente as opções que tem.
Existem 3 tipos de soluções relevantes para distinguir:
- Produto de API focado: eles são adaptados para dar suporte à automação de testes de API com recursos de monitoramento. Eles geralmente não são fornecidos com outros tipos de teste web/móvel, por exemplo, seu foco são as APIs. Mais comparável ao Postman. Eles geralmente incluem descoberta e documentação de API.
- Plataforma de automação de teste: eles geralmente fornecem um conjunto completo de recursos de automação de teste para web, dispositivos móveis, APIs, desktop, banco de dados com um amplo conjunto de recursos. As APIs são um conjunto de testes possíveis, portanto, podem ser menos profundas em termos de facilidade de uso, biblioteca de testes, etc.
- Solução de monitoramento completa: elas são focadas em monitorar componentes de TI, incluindo APIs, mas menos em testes de automação na cadeia de desenvolvimento . Eles não fornecem necessariamente recursos de CI/CD, mas podem, por exemplo, executar testes de API em todo o mundo e fornecer outros tipos de métricas.
Cada um deles com pontos fortes e fracos que se encaixam de acordo com suas necessidades.
Pode decidir os tipos de soluções de seus requisitos e critérios:
- Escolha um produto de API focado se suas necessidades forem restritas a apenas API ao longo da cadeia de desenvolvimento de software, aceitando as compensações como não poder combinar ações com web, mobile.
- Use uma plataforma de automação de teste se quiser capitalizar em uma prática de automação de teste de ponta a ponta para web, mobile, API etc, geralmente com mais integrações e recursos, aceitando que pode não ter recursos avançados de API.
- Opte por uma solução de monitoramento de API se sua preocupação estiver focada em desempenho, teste de segurança dinâmico e medição em todo o mundo; outros produtos não são feitos para isso e não é o foco deles.
O importante é tomar a melhor decisão por contexto.
Componha com um ou mais produtos de teste de API
Não podemos ser bons em tudo. É o mesmo para produtos de tecnologia; tem que restringir o problema central que eles estão resolvendo.
Julgue soluções nos 3 critérios para escolhas de Quality Engineering:
- Quality
- Ela atende aos seus principais requisitos funcionais e não funcionais?
- Vai criar mais valor para sua equipe usando isso?
- Speed
- Pode usar e manter a solução com o mínimo de esforço?
- Vai acelerar a entrega de software valioso para sua equipe?
- Complexity
- Consegue implantar a solução com facilidade e interfaces claras?
- Todos os seus usuários avaliarão o produto acima de 8 em uma escala de 0 a 10?
Depois de desafiar isso, faça uma Prova de Valor.
Pode concluir que precisa de mais de uma solução. Nesse caso, a capacidade de integração torna-se importante para manter ciclos rápidos de implementação das APIs.
Se começar a ter vários repositórios de APIs não sincronizados entre si, acabará perdendo tempo replicando dados, levando a problemas manuais e retrabalho.
Finalmente selecione as ferramentas para apoiar o Quality Engineering
Aqui está uma lista de produtos conhecidos que pode considerar por categoria. Sem ser completamente exaustivo, esclarece as principais opções.
Produto de API focado
RapidAPI: Reutilize o teste de API, agendador integrado, CI/CD, pode agendar e executar testes em intervalos de diferentes locais ao redor do mundo. Isso permite que gerencie as diferenças para os usuários, dependendo da localização e do tamanho da solicitação, análises detalhadas.
API Fortress: Esta plataforma se concentra em testar APIs e microsserviços. Ele fornece análises, upload de especificações CI/CD integração.
Gravity: Permite descobrir as jornadas de seus clientes a partir de conectores de logs nativos, como Dynatrace, Elastic Search, entre outros. Em seguida, ele se integra ao gerenciamento de teste para manter a visão bidirecional.
APIMetrics, RunScope, Assertible, Rapidspike, Checkly.
Plataforma de automação de testes
Katalon: Toolbox baseado em um Eclipse IDE agora fornecendo relatórios com uma plataforma web. O agendador é por meio de licenciamento ou integração externa personalizada e acionador.
Cerberus Testing: Open-source totalmente disponível no github, para API em REST/SOAP/GraphQL e Kafka, construído em java, suporte web/mobile/api/desktop/database testing, com CI/CD, agendamento, teste contínuo.
TestSigma: Uma plataforma de automação de testes que permite automatizar uma variedade de testes automatizados, incluindo APIs. A interface é principalmente web e para facilitar a utilização. O agendador requer integração.
TestProject: Open-source por design disponível na nuvem, com caixa de ferramentas web/mobile/api disponível. Tem um agendador básico.
Robot Framework: Uma caixa de ferramentas completa amplamente conhecida no mercado. É um software poderoso com muitos recursos. As desvantagens são a complexidade de abrir para mais equipes de negócios, colaboração e integração em ambientes de nuvem mais modernos. O agendador geralmente é externo.
Hoppscotch: Anteriormente Postwoman, muito popular, quase 30k no github focado em fornecer um ecossistema de desenvolvimento de API de código aberto.
Solução de monitoramento completo
Uptrends: lidar com o caso de monitoramento de API como parte de outros casos de uso de monitoramento, menos profundos que o RapidAPI, por exemplo.
AlertSite: da Smartbear, baseado em nuvem, portanto, é acessado em seu navegador. pode criar cargas úteis, adicionar asserções e executar testes sob demanda. Muitos notificação mecanismos
Loggly: Monitoramento de APIs em todo o mundo com recursos padrão. O produto foi projetado inicialmente para monitorar logs.
Dotcom-Monitor: Uma plataforma de teste baseada em nuvem para sites e serviços da Web que inclui verificações de disponibilidade para APIs REST e SOAP.
Pinghut, API Science, Apps Dynamics, Bearer, New Relic, CloudWatch, ManageEngine, Datadog, Dynatrace, Site24x7 Website Monitoring (Zoho), Rigor.
Testes contínuos de API para o Quality at Speed
O teste de suas APIs faz parte de um esforço maior para acelerar a entrega de software valioso.
Portanto, seu objetivo não é escolher o melhor produto de teste de API — é selecionar aquele que permite mais Qualidade em Velocidade com o mínimo de Complexidade.
Pode precisar de mais de uma solução para cobrir totalmente suas necessidades. Estou convencido de que a convergência da tecnologia cria as oportunidades.
O teste contínuo de APIs requer atuação ao longo da cadeia de valor do software, compondo com soluções atuando em cada espaço.
Mais soluções como Gravity aparecerão. Esse se concentra no cluster de jornadas do cliente a partir de logs de API que se integram a soluções de gerenciamento e automação de testes.
O que precisa não é uma ferramenta.
É mais Quality Engineering para o Quality at Speed.
Segue a QE Unit para mais Quality Engineering.