วันนี้ได้ลองใช้งาน Cotton เป็นเครื่องมือสำหรับการทดสอบ RESTFul API
ได้รับแรงบันดาลใจมากจาก Silk (คนทำน่าจะเลิกทำหรือดูแลไปแล้ว)
ดังนั้นทางพี่อูเลยพัฒนา Cotton ขึ้นมา
ซึ่งยังคงเขียน test case ในรูปแบบไฟล์ Markdown เช่นเดิม
เพิ่มเติมคือความสวยงามและการใช้งานที่ง่ายขึ้น
ดังนั้นเรามาลองใช้งานกัน
ขั้นตอนแรกก็ติดตั้งสิ
$go get github.com/chonla/cotton $cotton
การใช้งานก็เขียน test case ไม่ยาก มันคือไฟล์ Markdown นี่เอง
แต่มีรูปแบบนิดหน่อย ส่วนที่ใช้งานบ่อย ๆ มีดังนี้
- ในแต่ละไฟล์เรียกว่า test suite
- ในแต่ละไฟล์จะมีได้มากกว่า 1 test case ซึ่งแต่ละ test case จะขึ้นต้นด้วย #
- กำหนด URI และ HTTP Method (verb) สำหรับ API หรือ Enpoint ที่ต้องการทดสอบ จะขึ้นต้นด้วย ##
- ถ้า Request มาการส่งค่าผ่าน HTTP Request Header จะกำหนดในรูปแบบตาราง ซึ่งดูดีกว่า Silk มาก
- ส่วนข้อมูลที่ต้องการส่งผ่าน body/payload ของ HTTP ให้ใช้ backtick 3 ตัว
- ในส่วนการตรวจสอบ response จะอยู่ในส่วน ## Expectation
- การตรวจสอบจะอยู่ในรูปแบบของตารางเช่นกัน ซึ่งใช้งานง่ายดี
- การเข้าถึงข้อมูลใช้ตัวแปรชื่อ Data ได้เลย
อธิบายมากไปเสียเวลา มาลองใช้งานกันนิดหน่อย
สร้างไฟล์ Markdown ชื่อว่า httpbin.md
ทำการทดสอบ RESTful API จาก httpbin.org
จากตัวอย่างมีอยู่ 2 test cases คือ GET กับ POST ดังนี้
จากนั้นก็ run สิ รออะไร
$cotton -u http://httpbin.org httpbin.md
ผลที่ได้เป็นดังนี้
Tests executed: 2 Tests passed: 2 (100.00%) Tests failed: 0 (0.00%)
จากการทดสอบใช้งานพบว่า ยังไม่สามารถ parse 2 test cases ในไฟล์เดียวได้
แต่ก็แก้ไขด้วยการแยกไฟล์ละ 1 test case ได้
แต่ก็ได้แจ้ง issue#2 ไปยังผู้พัฒนาแล้ว
สิ่งที่ทำให้ผมชอบ Silk และ Cotton คือ
ชุดการทดสอบมันคือเอกสารที่มีชีวิต และทำความเข้าใจได้ง่าย
ซึ่งมันอยู่ในตัวเดียวกัน
และใคร ๆ ก็เขียนได้