Suponha que você esteja usando APIs de um fornecedor, como garantir que a API esteja funcionando conforme o esperado?
Minha principal preocupação é que, algumas vezes, o fornecedor pressionou as alterações no código e quebrou a API. Queremos ter algum tipo de software automático para testá-las continuamente. Como lidar com isso?
testing
api
rest
continuous-integration
integration-tests
user34401
fonte
fonte
Respostas:
Resposta curta: você precisa de um conjunto de testes para uma API de fornecedor de terceiros - portanto, você precisará desenvolver um.
Não espere que outra pessoa faça isso por você e não espere uma "bala mágica" para gerar automaticamente os testes certos.
Algumas coisas que você pode tentar adicionalmente:
Se essas coisas funcionarem ou não, depende de quem é seu fornecedor e que tipo de API você tem em mente. Uma API que produz alguma saída inspecionável, como arquivos, é muito mais fácil de testar do que uma API que controla algum dispositivo físico, no qual você deve observar o comportamento da coisa para decidir se a chamada à API foi bem-sucedida ou não.
fonte
Com base no fraseado do pôster, é mais do que apenas testar, IMO. Depois de escrever seu teste de unidade para a API e garantir que tudo esteja funcionando conforme o esperado, você precisa monitorar APIs de terceiros para detectar problemas antes que os usuários o façam. Esse é o risco real das APIs de terceiros - não é o seu código e você não tem controle sobre a quantidade de testes realizados na API ou quando / se ela muda.
(Isenção de responsabilidade: nomes de produtos usados aqui) Se você usar o soapUI para escrever seus testes de API, esses testes poderão ser reutilizados no AlertSite como um monitor operacional para garantir que a API continue funcionando conforme o esperado. Se o teste falhar, você poderá receber um alerta antes que seus usuários liguem para você e reclamar que seu aplicativo não funciona.
fonte
Implemente testes de aprendizado para sua área de interesse (recursos que você planeja usar). Testes de aprendizado são testes de integração escritos pelo desenvolvedor em relação ao contrato público da API. Os testes não devem ser escritos com relação aos detalhes da implementação interna, mesmo que o código fonte da API esteja disponível. Esse tipo de teste de aprendizado serve a dois propósitos -
fonte
Existem 2 abordagens para esse problema ...
seu aplicativo está em produção com tráfego real do usuário:
se você tiver um aplicativo em produção com tráfego ativo e que depende de uma API externa, não terá outra opção a não ser monitorar de perto e ter bons limites para saber o mais rápido possível quando a API externa fizer alterações sem notificar.
você sempre deve levar em consideração que:
seu aplicativo é uma instalação e possui versões / lançamentos planejados:
nesse caso, você tem um período de carência para falhar ... o usuário ao vivo não é afetado imediatamente pelas alterações externas da API.
na minha opinião, essa é uma tarefa mais fácil. escreva um teste (teste completo de ponta a ponta) que faça transações / http / solicitações reais para seu aplicativo que chamam a API externa e verifique se não há falhas. sem kits de teste, sem zombar da transação real.
Após a conclusão dessa tarefa, você pode executá-la a cada 24H, 1 min, etc.
boas práticas:
Ferramentas:
fonte