01
O que você está medindo quando chama o provedor de verdade
O primeiro problema de rodar teste de carga contra a API real não é o custo, é a atribuição. Quando você dispara mil requisições por minuto e observa a latência subir, existem pelo menos três explicações possíveis e o teste não separa nenhuma delas: o seu sistema está saturado, a sua cota no provedor está estourando, ou o provedor está com um dia ruim para todo mundo. As três produzem o mesmo gráfico. Como você não controla duas dessas variáveis e nem consegue observá-las direito, o resultado é um teste que não é reproduzível: rodar de novo na terça dá um número diferente de rodar na quinta, e nenhuma das duas execuções diz se a mudança que você fez no código melhorou ou piorou alguma coisa.
O segundo problema é que o rate limit do provedor funciona como um teto artificial que esconde o comportamento que você queria observar. Se a sua cota é de trezentas requisições por minuto e você quer testar o sistema a mil, o provedor devolve erro de limite nas setecentas excedentes, e o teste passa a exercitar o seu caminho de tratamento de erro em vez do seu caminho de sucesso sob carga. É um teste válido, mas é outro teste. A pergunta original, se a aplicação aguenta mil requisições por minuto de trabalho real, continua sem resposta, e o único jeito honesto de respondê-la é remover o teto: substituir o provedor por algo que aceita a carga toda e devolve respostas com o mesmo formato e o mesmo perfil de tempo.
| Abordagem | O que ela mede de verdade | Custo | Reprodutível |
|---|---|---|---|
| Chamar a API real com carga total | O rate limit da sua conta, misturado com o seu sistema | Alto e proporcional à carga | Não: depende do dia do provedor |
| Carga reduzida e extrapolar | O regime linear, justamente onde não há problema | Baixo | Sim, mas responde a pergunta errada |
| Dublê com latência constante | O sistema num cenário que nunca acontece | Zero | Sim, e enganosamente otimista |
| Dublê com perfil de latência e falha realista | O seu sistema, isolado, na carga que você escolheu | Zero | Sim, e comparável entre execuções |