我已经注意到,在集成测试过程中,我实际上使用的是Restful API(或一般的HTTP接口)的重复使用案例,我在这里和那里使用bash + cURL进行检查。
它开始看起来非常凌乱,并且变得难以维护。为什么要乱成一团?
典型的用例是:
- 检查URL是否返回http响应代码,例如200
- 在这种情况下,检查内容类型是否与您需要的某些MIME相匹配
- 检查返回的内容是否匹配某种模式,或通过抽象验证过程
到目前为止,我发现并在不重新发明轮子的情况下认为是可行的选择是:
- 可以使用PyCurl-希望它可以完全实现所有cURL选项esp。代理以及其他我可能需要的开关
- 使用Python的内置单元testng
然后,例如,我可以检查每个服务一项单元测试:
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()
这是否有意义?或者是否有更高级的工具(但不太复杂,无法使用和集成)?