J'ai remarqué lors des tests d'intégration que je travaille en fait sur des cas d'utilisation récurrents avec des API reposantes (ou en général des interfaces HTTP) que je vérifie ici et là avec bash + cURL.
Il commence à sembler assez désordonné et devient plus difficile à entretenir. Pourquoi livrer des dégâts?
Les cas d'utilisation typiques sont:
- Vérifiez qu'une URL renvoie un code de réponse http, par exemple 200
- Vérifiez que le type de contenu correspond à certains MIME dont vous avez besoin dans ce cas
- Vérifiez que le contenu retourné correspond à un modèle ou passe une procédure de validation abstraite
Ce que j'ai trouvé jusqu'à présent et que je considère comme une option réalisable sans réinventer la roue, c'est:
- essayez PyCurl - dans l'espoir qu'il implémente pleinement toutes les options cURL esp. proxy mais aussi d'autres commutateurs dont je pourrais avoir besoin
- utiliser le testng intégré de Python
Ensuite, je pourrais avoir, par exemple, un test unitaire par service que je voudrais vérifier:
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()
Est-ce que cela a du sens ou existe-t-il un outillage de plus haut niveau (mais pas trop complexe à prendre et à intégrer)?