ฉันสังเกตเห็นในระหว่างการทดสอบการรวมระบบว่าฉันใช้งานกรณีการใช้ซ้ำ ๆ กับ API ที่พักผ่อนหย่อนใจ (หรืออินเทอร์เฟซ HTTP ทั่วไป) ฉันตรวจสอบที่นี่และมี bash + cURL
มันเริ่มมองค่อนข้างยุ่งและยากที่จะรักษา ทำไมต้องเป็นระเบียบ?
กรณีการใช้งานทั่วไปคือ:
- ตรวจสอบว่า URL ส่งคืนรหัสตอบกลับ http เช่น 200
- ตรวจสอบว่าประเภทเนื้อหาตรงกับ MIME บางอย่างที่คุณต้องการในกรณีนั้น
- ตรวจสอบว่าเนื้อหาที่ส่งคืนตรงกับรูปแบบบางอย่างหรือผ่านขั้นตอนการตรวจสอบความถูกต้องแบบนามธรรม
สิ่งที่ฉันได้พบและพิจารณาตัวเลือกใช้การได้โดยไม่ต้อง reinventing ล้อคือ:
- ไปกับ PyCurl ด้วยความหวังว่ามันจะใช้ตัวเลือกของ cURL ทั้งหมด พร็อกซี่ แต่ยังสวิตช์อื่น ๆ ที่ฉันอาจต้อง
- ใช้ 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()
สิ่งนี้สมเหตุสมผลหรือมีเครื่องมือในการรับและรวมที่ซับซ้อนมากขึ้น (แต่ไม่ซับซ้อนเกินไปหรือไม่)