สิ่งที่ควรรู้ก่อนทดสอบ API

สิ่งที่ควรรู้ก่อนทดสอบ API

สวัสดีเพื่อนๆทุกท่าน วันนี้จะมาแนะนำให้ทุกคนรู้จักกับ REST API TESTING กัน ก่อนอื่นหากจะเริ่มทดสอบเราจำเป็นที่จะต้องรู้เกี่ยวกับ REST สักหน่อยนะ

ในบทความนี้จะกล่าวถึง
– REST API
– Goal API testing
– สิ่งที่ต้องรู้ก่อนทดสอบ API

REST API คืออะไร?

REST ย่อมาจาก Representational State Transfer เป็นรูปแบบการส่งข้อมูลระหว่าง Server-Client รูปแบบหนึ่ง ซึ่งอยู่บนพื้นฐานของ HTTP Protocol เป็นการสร้าง Web Service เพื่อแลกเปลี่ยนข้อมูลกันผ่าน Application ไม่ว่าจะเป็น PUT, GET, PATCH, และ DELETE

Goal API testing

จุดมุ่งหมายที่เราจะต้องทำการทดสอบ API กันนั้น เพราะจะเป็นการทดสอบ การทำงานของฟังก์ชัน(functionality), ความน่าเชื่อถือของระบบ(reliability), ประสิทธิภาพการทำงานของระบบ(performance), และความปลอดภัยของระบบ(security of the programming interfaces)

สิ่งที่ต้องรู้ก่อนทดสอบ API

หัวใจหลักสำคัญในการทดสอบระบบ API นั้นจำเป็นจะต้องมี Document the API Testing เสมอ เหมือนเป็นกฎและรายละเอียดในการอ้างอิงถึงการเรียกใช้งานต่างๆของ API ได้ถูกต้อง ต่อไปนี้จะขอเปรียบเทียบการขอ HTTP Request ให้เสมือนการเขียนจดหมาย โดยจะประกอบด้วย

Resource description

จะต้องมีคำอธิบายในแต่ละ API เพื่อที่จะให้ผู้ใช้งานสามารถเข้าใจได้ทันทีว่า Request นี้มีไว้สำหรับทำอะไร หากผู้ใช้งานไม่เข้าใจจุดประสงค์ของแต่ละ API การทดสอบนั้นก็จะไร้ประสิทธิภาพ

Endpoints and methods

Endpoints คือ เส้นทาง (path) หลายๆอันประกอบกันขึ้นมา สำหรับการเข้าถึงการใช้งานของแต่ละ API จึงเปรียบเสมือนการจ่าหน้าซองจดหมาย

Methods คือ จากข้างบนที่เรากล่าวว่า REST ทำงานอยู่บน HTTP Protocal ดังนั้นจึงทำให้เวลาเราใช้งานจะต้องอยู่บนพื้นฐาน HTTP Method ด้วยเช่นกัน เสมือนประเภทของจดหมายที่เราต้องการจะส่งไป เช่น

POST = การส่งจดหมายเพิ่มข้อมูล
GET = การส่งจดหมายขอข้อมูล
PUT = การส่งจดหมายเพื่ออัพเดทข้อมูล
DELETE = การส่งจดหมายเพื่อขอลบข้อมูล 

Parameters

Parameter คือตัวเลือกข้อมูลที่เราสามารถส่งไปให้ระบบได้ โดยจะประกอบด้วย

  1. Header parameters
    เปรียบเสมือน Barcode เพื่อระบุรายละเอียดของจดหมายได้อย่างรวดเร็ว ว่ามาจากใคร และเนื้อหาข้างในจดหมายเป็นอย่างไร และเป็นส่วนคำสัญที่สุดในการนำส่งข้อมูล โดยส่วนมากจะเป็นการนำส่งข้อมูลต่างๆ ดังนี้
    1.1. Request and Response Body
    1.2. Request Authorization
    1.3. Response Caching 
    1.4. Response Cookies
  2. Path parameters
    เป็นส่วนหนึ่งของ endpoints เหมือนการระบุอาคารที่พักอาศัยบนซองจดหมาย ยกตัวอย่าง {user-id}

GET https://graph.instagram.com/{api-version}/{user-id}/?fields={fields}

  1. Query string parameters
    เป็นการจำกัดการแสดงข้อมูลให้แคบลง หรือเรียกว่าการ Filter ข้อมูล วิธีการใช้ต้องมี?และตามด้วย key คู่กับ value โดยส่วนมากจะใช้กับ GET ยกตัวอย่าง ?fields={fields}

GET https://graph.instagram.com/{user-id}/?fields={fields}

  1. Request body parameters
    เป็นเนื้อหาของจดหมาย ว่าต้องการส่งข้อมูลอะไรไปให้ระบบ โดยส่วนมากที่ใช้งานจะอยู่ในรูปแบบ JSON (key: value)

{

  “id”: “17895695668004550”,

  “username”: “jayposiris”

}

Response

จากที่ได้ส่งจดหมายไปแล้ว(client->server) หลังจากนั้นเราจะได้จดหมายตอบกลับมา(server-> client) โดยจะมีรายละเอียดการตอบกลับ

1. Response status code
บ่งบอกว่าจดหมายที่เราส่งไปนั้น มีการตอบกลับสำเร็จหรือไม่

  1. Response body
    เป็นเนื้อหาของจดหมายที่ตอบกลับมา

เท่านี้เราก็ทราบรายละเอียดต่างๆของการเขียนจดหมายที่สมบูรณ์(HTTP Request) หวังว่าเพื่อนๆจะพอเข้าใจการเขียนมากขึ้น เพื่อให้เราทำตามจุดประสงค์หลักได้ต่อไป

43 Thai CC Tower, 23rd Floor, Room 234,
South Sathorn Rd., Yannawa, Sathorn, Bangkok 10120

Email : qsquad.qa@gmail.com