NetCatTest

CatSuite

Como testar APIs no Android com o Repetir do CatSuite

Use uma request válida, compare respostas A/B e investigue autenticação, autorização e contrato com um cenário fictício de pedidos.

Por Daniel Felipe 7 min leitura

O módulo Repetir do CatSuite permite testar uma API no Android editando uma request e comparando as respostas de envios controlados. O ponto de partida mais útil é uma chamada válida, capturada na aplicação. Preserve essa referência, mude uma variável por vez e confira o efeito no corpo da resposta, nos headers e no estado real do sistema.

Guia publicado em 6 de outubro de 2026. A capa é uma ilustração conceitual original, não uma captura do aplicativo nem evidência de teste.

Esse procedimento atende a QA, depuração de integração e investigação de autorização. Ele evita depender apenas de screenshots ou da interface de uma aplicação para explicar um problema. Conheça o aplicativo na visão geral do CatSuite e consulte a referência completa do Repetir para os controles da sua versão.

Por que uma request válida é a melhor referência

Uma chamada que já funciona reúne destino, formato do corpo, headers e contexto de autenticação coerentes. Se você começar removendo vários desses elementos ao mesmo tempo, uma falha pode decorrer de sessão expirada, formato inválido, regra de negócio ou autorização. Sem uma referência, fica difícil separar essas causas.

Capture uma ação simples no Navegador ou no Proxy de Rede e envie a mensagem ao Repetir. Confira protocolo, host, porta e método antes de enviar. Se precisa configurar a captura, siga o guia de interceptação HTTP e HTTPS no Android.

Um cenário fictício de pedidos

Imagine uma loja de laboratório com duas contas de clientes, Ana e Bruno. O pedido pedido-101 pertence a Ana; pedido-202 pertence a Bruno. As contas e os objetos foram preparados para o teste. A request abaixo é didática e só deve ser enviada a um ambiente seu que implemente esse cenário.

Código
GET /api/pedidos/pedido-101 HTTP/1.1
Host: api.aurora.test
Accept: application/json
Authorization: Bearer TOKEN_ANA_LAB

Primeiro confirme que Ana consegue ler seu próprio pedido. Uma resposta de referência pode conter identificador, titular e itens. Esses dados são fictícios; não são uma saída obtida em um serviço real.

Código
{
  "id": "pedido-101",
  "titular": "ana-lab",
  "itens": [{"sku": "produto-ficticio", "quantidade": 1}]
}

Se a referência falha, pare e corrija o contexto. Testes de autorização feitos com uma credencial já inválida produzem conclusões ruins: um 401 generalizado não demonstra que cada regra de acesso foi aplicada.

Monte uma matriz pequena de comparação

CasoCredencialObjetoQuestão investigada
AAnaPedido de AnaA chamada válida funciona?
BBrunoPedido de BrunoA segunda conta e seus dados estão corretos?
CAnaPedido de BrunoO servidor aplica autorização ao objeto?
DSem credencialPedido de AnaO endpoint exige autenticação?
EAnaObjeto inexistente de laboratórioComo a API diferencia inexistência e acesso recusado?

As respostas esperadas dependem do contrato da API. Uma aplicação pode responder 403 a acesso recusado ou usar 404 para não revelar a existência de um recurso. Em ambos os casos, verifique se dados e ações indevidos foram bloqueados. Não imponha um status universal a sistemas com políticas diferentes.

A classificação Broken Object Level Authorization da OWASP trata da autorização aplicada aos objetos acessados por uma API. No laboratório, a confirmação exige observar acesso indevido ao objeto preparado para outra conta; a simples presença de um identificador na URL é apenas uma hipótese.

Como usar a comparação A/B no Repetir

  1. Envie a request válida e confirme a response correspondente.
  2. Guarde a resposta de referência na comparação A/B.
  3. Altere um único elemento, por exemplo o identificador do pedido.
  4. Reenvie e confira se o editor, o destino e a credencial continuam corretos.
  5. Compare status, headers e campos relevantes do corpo.
  6. Anote a variável alterada, o resultado observado e a interpretação.
  7. Repita a chamada de referência se houver dúvida sobre mudança de estado ou expiração da sessão.

Não compare apenas tamanho e tempo. IDs de rastreamento, carimbos de horário e campos aleatórios podem mudar sem alterar a regra investigada. Identifique os campos que representam a decisão de negócio: dono do pedido, permissões retornadas, itens, alteração persistida ou erro estruturado.

Quando uma resposta contém dados de outra conta, preserve a relação entre request e response. Uma captura isolada do JSON perde informações importantes, como a credencial de teste utilizada e o objeto solicitado.

Teste contrato, validação e estados HTTP

O Repetir também ajuda a examinar tipos e limites de parâmetros. Em uma busca fictícia, comece com limit=10, depois investigue um limite permitido, um valor fora do contrato e um tipo inválido. Mantenha a mudança restrita ao parâmetro estudado e registre como a API responde.

ResultadoLeitura inicialVerificação necessária
200 com HTMLPode ser página de login ou fallbackConferir Content-Type e conteúdo
400 ou 422Pode ser validação de entradaComparar com o contrato e o erro informado
401Credencial ausente, inválida ou expiradaRepetir a referência com sessão válida
403 ou 404Acesso ou existência recusadosConferir a política do objeto e o corpo
429Limite de requisições atingidoReduzir ritmo e respeitar Retry-After quando presente
500Falha observada no servidorReproduzir minimamente e preservar identificador de rastreamento

Um erro 500 não recebe automaticamente uma classificação de vulnerabilidade. Ele pode revelar uma falha funcional, um caso não tratado ou um problema de ambiente. Registre a entrada mínima, a repetibilidade e os efeitos antes de atribuir impacto de segurança.

Cuidados com métodos que alteram dados

Uma request POST, PUT, PATCH ou DELETE pode criar efeitos mesmo quando o cliente não recebe a resposta. Um timeout não informa se o servidor concluiu a operação. Antes de reenviar, confira o estado do recurso ou os registros disponíveis no ambiente de teste.

Se a API oferece idempotência, use o mecanismo documentado por ela. Reutilizar um header inventado não transforma uma transação em idempotente. Trabalhe com objetos descartáveis, ambiente restaurável e uma condição de parada clara. Para investigação inicial, prefira operações de leitura que já pertencem ao escopo.

Exporte cURL para reproduzir a chamada

Um comando cURL facilita reproduzir a request em outra bancada. O exemplo abaixo usa um marcador de token; substitua o valor apenas no seu ambiente privado. O domínio .test precisa ser configurado no laboratório.

Terminal Linux
curl --request GET 'https://api.aurora.test/api/pedidos/pedido-101' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer TOKEN_ANA_LAB'

Confira a exportação real antes de compartilhar. Cookies, tokens e corpos podem conter informações sensíveis. O guia de JWT e evidências propõe um registro separado para observação, hipótese e confirmação. Use também História e notas para guardar contexto.

Perguntas frequentes sobre testes de API no celular

Preciso automatizar para encontrar um problema?

Não. Duas requests bem comparadas podem esclarecer uma regra de autorização. Automatize depois de definir a hipótese e a condição que diferencia um resultado relevante.

Alterar um JWT no editor gera um token válido?

Não. Decodificar ou remontar o conteúdo não recria uma assinatura válida. A aceitação depende da validação feita pelo servidor e das chaves e políticas corretas.

Posso reaproveitar o mesmo teste após uma atualização?

Sim, preservando o cenário, os objetos, a versão e a regra esperada. Renove credenciais de teste e confira se o contrato mudou. Uma comparação de regressão exige contexto equivalente.

Do teste manual ao fluxo reproduzível

Quando a rotina estiver clara, use Intruso e Descobridor para variar entradas ou conheça os fluxos visuais com CatBridge para conectar etapas. Para começar, baixe o CatSuite e execute primeiro uma comparação pequena.

Escrito por

Daniel Felipe é criador do NetCatTest e produz conteúdos sobre cibersegurança, privacidade digital, OSINT, laboratórios autorizados e ferramentas para estudo técnico responsável.

Compartilhar

Enviar este artigo