Percebi durante o teste de integração que, na verdade, trabalho em casos de uso recorrentes com APIs repousantes (ou em interfaces HTTP em geral) verifico aqui e ali com o bash + cURL.
Começa a parecer bastante bagunçado e fica mais difícil de manter. Por que entregar bagunça?
Os casos de uso típicos são:
- Verifique se um URL retorna o código de resposta http, por exemplo, 200
- Verifique se o tipo de conteúdo corresponde a algum MIME necessário nesse caso
- Verifique se o conteúdo retornado corresponde a algum padrão ou passa em um procedimento de validação abstrata
O que encontrei até agora e considero uma opção viável sem reinventar a roda é:
- experimente o PyCurl - na esperança de implementar totalmente todas as opções de cURL esp. proxy, mas também outros switches que podem ser necessários
- use o testng de unidade embutido do Python
Então, eu poderia ter, por exemplo, um teste de unidade por serviço que gostaria de verificar:
import unittest, pycurl
class TestService (unittest.TestCase):
def test_1(self):
self.assertEqual(pycurl.returncode("some_url"), 200)
def test_2(self):
self.assertTrue(pycurl.response("some_url").matches ("xxx") )
def test_3(self):
self.assertTrue (pycurl.ContentType("some_url").equal("xxx"))
if __name__ == '__main__':
unittest.main()
Isso faz sentido ou existe um conjunto de ferramentas de alto nível (mas não muito complexo para captar e integrar)?