Я помітив під час інтеграційного тестування, що я фактично працюю над періодичними випадками використання з спокійними API (або взагалі інтерфейсами HTTP), які я перевіряю тут і там за допомогою bash + cURL.
Починає виглядати досить безладним і важче підтримувати. Навіщо доставляти безлад?
Типові випадки використання:
- Перевірте, чи URL-адреса повертає код коду відповіді, наприклад, 200
- Перевірте, чи відповідає тип вмісту деякому MIME, який вам потрібен у цьому випадку
- Переконайтеся, що повернутий вміст відповідає якомусь шаблону чи проходить абстрактну процедуру перевірки
Що я знайшов поки що і вважаю можливим варіантом без винаходи колеса, це:
- мати піти з PyCurl - сподіваючись, що він повністю реалізує всі варіанти CURL esp. проксі, але й інші комутатори, які мені можуть знадобитися
- використовувати вбудований модуль Python
Тоді я міг би, наприклад, провести один одиничний тест на послугу, який я хотів би перевірити:
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()
Це має сенс чи є інструменти більш високого рівня (але не надто складні для підбору та інтеграції)?