บทช่วยสอนการทดสอบ API: API Test Automation คืออะไร

⚡ สรุปอย่างชาญฉลาด

การทดสอบ API คือการตรวจสอบความถูกต้องของ Application Programming Interface (API) เพื่อให้มั่นใจถึงฟังก์ชันการทำงาน ความน่าเชื่อถือ ประสิทธิภาพ และความปลอดภัย โดยใช้การเรียกใช้งานผ่านโค้ดแทนการโต้ตอบผ่าน GUI

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

การทดสอบ API

การทดสอบ API คืออะไร

การทดสอบ API เป็นประเภทการทดสอบซอฟต์แวร์ที่ตรวจสอบความถูกต้องของ Application Programming Interfaces (API) วัตถุประสงค์ของการทดสอบ API คือเพื่อตรวจสอบการทำงาน ความน่าเชื่อถือ ประสิทธิภาพ และความปลอดภัยของอินเทอร์เฟซการเขียนโปรแกรม ในการทดสอบ API แทนที่จะใช้อินพุตและเอาต์พุตมาตรฐานของผู้ใช้ คุณจะใช้ซอฟต์แวร์เพื่อส่งการเรียกไปยัง API รับเอาต์พุต และจดบันทึกการตอบสนองของระบบ การทดสอบ API แตกต่างจากการทดสอบ GUI มากและจะไม่เน้นที่รูปลักษณ์และความรู้สึกของแอปพลิเคชัน แต่จะเน้นที่ชั้นตรรกะทางธุรกิจของสถาปัตยกรรมซอฟต์แวร์เป็นหลัก

การทดสอบ API

สำหรับพื้นหลัง API (Application Programming Interface) เป็นอินเทอร์เฟซคอมพิวเตอร์ที่ช่วยให้สามารถสื่อสารและแลกเปลี่ยนข้อมูลระหว่างระบบซอฟต์แวร์สองระบบที่แยกจากกัน ระบบซอฟต์แวร์ที่ดำเนินการ API มีฟังก์ชัน/รูทีนย่อยหลายอย่างที่ระบบซอฟต์แวร์อื่นสามารถทำได้ API กำหนดคำขอที่สามารถทำได้ วิธีส่งคำขอ รูปแบบข้อมูลที่สามารถใช้ได้ ฯลฯ ระหว่างระบบซอฟต์แวร์สองระบบ

การตั้งค่าสภาพแวดล้อมการทดสอบอัตโนมัติของ API

การทดสอบระบบอัตโนมัติ API จำเป็นต้องมีแอปพลิเคชันที่สามารถโต้ตอบได้ผ่าน API ในการทดสอบ API คุณจะต้องมีสิ่งต่อไปนี้:

  • ใช้เครื่องมือทดสอบเพื่อทดสอบการทำงานของ API
  • เขียนโค้ดของคุณเองเพื่อทดสอบ API

ข้อควรระวังบางประการ:

  • การทดสอบ API แตกต่างจากการทดสอบประเภทอื่น เนื่องจากไม่มีส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) และคุณต้องตั้งค่าสภาพแวดล้อมที่เรียกใช้ API ด้วยพารามิเตอร์ที่จำเป็น จากนั้นจึงตรวจสอบผลการทดสอบ
  • การตั้งค่าสภาพแวดล้อมการทดสอบสำหรับการทดสอบระบบอัตโนมัติ API ดูเหมือนจะค่อนข้างซับซ้อน
  • ควรตั้งค่าฐานข้อมูลและเซิร์ฟเวอร์ให้ตรงตามข้อกำหนดของแอปพลิเคชัน
  • เมื่อการติดตั้งเสร็จสมบูรณ์แล้ว ควรเรียกใช้ฟังก์ชัน API เพื่อตรวจสอบว่า API นั้นทำงานได้หรือไม่

ประเภทของเอาท์พุตของ API

ผลลัพธ์จาก API อาจเป็นดังนี้:

  1. ข้อมูลประเภทใดก็ได้
  2. สถานะ (พูดว่าผ่านหรือไม่ผ่าน)
  3. เรียกใช้ฟังก์ชัน API อื่น

ข้อมูลประเภทใดก็ได้

ตัวอย่าง: มีฟังก์ชัน API ที่ควรบวกเลขจำนวนเต็มสองตัว

Long add(int a, int b)

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

add (1234, 5656)

จะต้องมีการจัดการข้อยกเว้นหากตัวเลขเกินขีดจำกัดจำนวนเต็ม

สถานะ (ผ่านหรือไม่ผ่าน)

พิจารณาฟังก์ชัน API ด้านล่างนี้:

  1. ล็อค()
  2. ปลดล็อค()
  3. ลบ()

ฟังก์ชันเหล่านี้จะส่งค่าใดๆ ก็ได้ เช่น True (ในกรณีที่สำเร็จ) หรือ False (ในกรณีที่เกิดข้อผิดพลาด) เป็นผลลัพธ์ ซึ่งมีความแม่นยำกว่ามาก กรณีทดสอบ จะเรียกใช้ฟังก์ชันในสคริปต์ใดๆ ก็ได้ และตรวจสอบการเปลี่ยนแปลงในฐานข้อมูลหรือในส่วนติดต่อผู้ใช้ของแอปพลิเคชันในภายหลัง

การเรียกใช้ API / เหตุการณ์อื่น

การเรียก API / เหตุการณ์อื่น

ในกรณีนี้ เราจะเรียกใช้ฟังก์ชัน API ฟังก์ชันหนึ่ง ซึ่งจะเรียกใช้ฟังก์ชันอื่นต่อ ตัวอย่างเช่น ฟังก์ชัน API แรกสามารถใช้สำหรับลบเรคอร์ดที่ระบุในตาราง และฟังก์ชันนี้จะเรียกใช้ฟังก์ชันอื่นเพื่อรีเฟรชฐานข้อมูล

กรณีทดสอบสำหรับการทดสอบ API

กรณีทดสอบสำหรับการทดสอบ API นั้นอิงตาม:

  • ส่งคืนค่าตามเงื่อนไขอินพุต: การทดสอบค่อนข้างง่าย เนื่องจากสามารถกำหนดอินพุตและรับรองความถูกต้องของผลลัพธ์ได้
  • ไม่ส่งคืนสิ่งใด: เมื่อไม่มีค่าที่ส่งคืน จะมีการตรวจสอบพฤติกรรมของ API บนระบบ
  • ทริกเกอร์ API/เหตุการณ์/การขัดจังหวะอื่นๆ: หากผลลัพธ์จาก API กระตุ้นให้เกิดเหตุการณ์หรือการขัดจังหวะใดๆ เหตุการณ์และตัวรับฟังการขัดจังหวะเหล่านั้นควรได้รับการจัดการ tracเกด
  • อัปเดตโครงสร้างข้อมูล: การอัปเดตโครงสร้างข้อมูลจะมีผลหรือผลกระทบต่อระบบ และควรได้รับการตรวจสอบสิทธิ์
  • แก้ไขทรัพยากรบางอย่าง: หากการเรียก API แก้ไขทรัพยากรบางอย่าง ก็ควรได้รับการตรวจสอบความถูกต้องโดยการเข้าถึงทรัพยากรที่เกี่ยวข้อง

แนวทางการทดสอบ API

แนวทางการทดสอบ API คือกลยุทธ์หรือวิธีการที่กำหนดไว้ล่วงหน้าซึ่งทีม QA จะดำเนินการเพื่อทดสอบ API หลังจากที่เวอร์ชันสมบูรณ์แล้ว การทดสอบนี้ไม่รวมถึงซอร์สโค้ด แนวทางการทดสอบ API ช่วยให้เข้าใจฟังก์ชันการทำงาน เทคนิคการทดสอบ พารามิเตอร์อินพุต และการดำเนินการของกรณีทดสอบได้ดียิ่งขึ้น

แนวทางการทดสอบ API

ประเด็นต่อไปนี้เป็นแนวทางในการทดสอบ API:

  1. ทำความเข้าใจการทำงานของโปรแกรม API และกำหนดขอบเขตของโปรแกรมให้ชัดเจน
  2. ใช้เทคนิคการทดสอบ เช่น คลาสที่เท่าเทียมกัน การวิเคราะห์ค่าขอบเขต และการคาดเดาข้อผิดพลาดและเขียนกรณีทดสอบสำหรับ API
  3. พารามิเตอร์อินพุตสำหรับ API จำเป็นต้องได้รับการวางแผนและกำหนดอย่างเหมาะสม
  4. ดำเนินการกรณีทดสอบและเปรียบเทียบผลลัพธ์ที่คาดหวังและผลลัพธ์จริง

วิธีการทดสอบ API

การทดสอบระบบอัตโนมัติ API ควรครอบคลุมวิธีการทดสอบอย่างน้อยดังต่อไปนี้ นอกเหนือจากกระบวนการ SDLC ทั่วไป:

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

ความแตกต่างระหว่างการทดสอบ API และการทดสอบหน่วย

การทดสอบหน่วย การทดสอบ API
นักพัฒนาดำเนินการ ผู้ทดสอบดำเนินการ
มีการทดสอบฟังก์ชันการทำงานแบบแยกส่วน มีการทดสอบฟังก์ชันการทำงานแบบครบวงจร
นักพัฒนาสามารถเข้าถึงซอร์สโค้ดได้ ผู้ทดสอบไม่สามารถเข้าถึงซอร์สโค้ดได้
การทดสอบ UI ก็มีส่วนเกี่ยวข้องด้วย มีการทดสอบเฉพาะฟังก์ชัน API เท่านั้น
มีการทดสอบฟังก์ชันพื้นฐานเท่านั้น ปัญหาด้านการทำงานทั้งหมดได้รับการทดสอบแล้ว
มีขอบเขตจำกัด ในขอบเขตที่กว้างกว่า
โดยปกติจะดำเนินการก่อนการเช็คอิน ทดสอบการทำงานหลังจากสร้างบิลด์แล้ว

แนวปฏิบัติที่ดีที่สุดสำหรับการทดสอบ API

  • ควรจัดกลุ่มกรณีทดสอบ API ตามหมวดหมู่การทดสอบ
  • นอกเหนือจากการทดสอบแต่ละครั้งคุณควรรวมการประกาศของ API ที่กำลังเรียกใช้
  • ควรระบุการเลือกพารามิเตอร์ไว้อย่างชัดเจนในกรณีทดสอบนั้นๆ
  • จัดลำดับความสำคัญของการเรียกใช้ฟังก์ชัน API เพื่อให้ผู้ทดสอบสามารถทดสอบได้ง่ายขึ้น
  • แต่ละกรณีทดสอบควรมีความสมบูรณ์ในตัวเองและเป็นอิสระจากส่วนประกอบอื่นๆ ให้มากที่สุดเท่าที่จะเป็นไปได้
  • หลีกเลี่ยงการใช้ “การทดสอบแบบต่อเนื่อง” ในขั้นตอนการพัฒนาของคุณ
  • ต้องใช้ความระมัดระวังเป็นพิเศษเมื่อใช้งานฟังก์ชันที่เรียกใช้เพียงครั้งเดียว เช่น ลบ ปิดหน้าต่าง เป็นต้น
  • ควรดำเนินการจัดลำดับการโทรอย่างรอบคอบและวางแผนไว้เป็นอย่างดี
  • เพื่อให้มั่นใจว่าการทดสอบครอบคลุมโดยสมบูรณ์ ให้สร้างกรณีทดสอบ API สำหรับชุดค่าผสมอินพุตที่เป็นไปได้ทั้งหมดของ API

ประเภทของข้อผิดพลาดที่การทดสอบ API ตรวจพบ

  • ไม่สามารถจัดการกับเงื่อนไขข้อผิดพลาดได้อย่างสวยงาม
  • ธงที่ไม่ได้ใช้
  • ฟังก์ชันการทำงานที่ขาดหายไปหรือซ้ำกัน
  • ปัญหาด้านความน่าเชื่อถือ รวมถึงความยากลำบากในการเชื่อมต่อและรับการตอบกลับจาก API
  • ปัญหาด้านความปลอดภัย
  • ปัญหาเกี่ยวกับมัลติเธรด
  • ปัญหาด้านประสิทธิภาพที่ทำให้เวลาตอบสนองของ API สูงมาก
  • ข้อผิดพลาด/คำเตือนที่ไม่เหมาะสมแก่ผู้โทร
  • การจัดการค่าอาร์กิวเมนต์ที่ถูกต้องไม่ถูกต้อง
  • ข้อมูลการตอบกลับไม่ได้จัดโครงสร้างอย่างถูกต้อง (JSON หรือ XML)

วิธีการทำการทดสอบ API แบบอัตโนมัติ

ต่อไปนี้เป็นคำแนะนำโดยละเอียดสำหรับการทดสอบ API แบบอัตโนมัติ:

  • วิธีทดสอบ API ด้วย มั่นใจได้
  • วิธีทดสอบ API ด้วย Postman
  • วิธีทดสอบ API ด้วย UFT

นอกจากนี้ยังมีอย่างอื่นอีก เครื่องมือสำหรับการทดสอบ API.

AI กำลังเปลี่ยนแปลงการทดสอบ API อย่างไร

ปัญญาประดิษฐ์คือ reshaping การทดสอบ API โดยการทำให้งานที่ต้องทำด้วยมือเป็นไปโดยอัตโนมัติ อัลกอริธึมการเรียนรู้ของเครื่องสามารถวิเคราะห์ข้อกำหนดของ API สร้างกรณีทดสอบ และระบุกรณีพิเศษที่ผู้ทดสอบที่เป็นมนุษย์อาจมองข้ามไปได้

AI ยังช่วยเพิ่มประสิทธิภาพการทดสอบความปลอดภัยด้วยการตรวจจับช่องโหว่ อย่างไรก็ตาม AI ควรเป็นส่วนเสริมมากกว่าการแทนที่ความเชี่ยวชาญของมนุษย์ เนื่องจากวิศวกร QA มีความรู้เฉพาะด้านที่ AI ไม่สามารถเลียนแบบได้

ความท้าทายของการทดสอบ API

  • ความท้าทายหลักในการทดสอบ Web API ได้แก่ การรวมพารามิเตอร์ การเลือกพารามิเตอร์ และลำดับการเรียกใช้งาน
  • แอปพลิเคชันนี้ไม่มีส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) สำหรับทดสอบ ทำให้ยากต่อการป้อนค่าต่างๆ
  • การตรวจสอบและยืนยันผลลัพธ์ในระบบอื่นนั้นค่อนข้างยากสำหรับผู้ทดสอบ
  • ผู้ทดสอบจำเป็นต้องทราบวิธีการเลือกและจัดหมวดหมู่พารามิเตอร์
  • จำเป็นต้องทดสอบฟังก์ชันการจัดการข้อผิดพลาด
  • ความรู้ด้านการเขียนโปรแกรมเป็นสิ่งจำเป็นสำหรับผู้ทดสอบ

สรุป

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

คำถามที่พบบ่อย

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

ใช่ เครื่องมือเช่น Postman นำเสนออินเทอร์เฟซแบบ GUI ที่ไม่จำเป็นต้องเขียนโค้ด อย่างไรก็ตาม การทำงานอัตโนมัติขั้นสูงนั้นต้องอาศัยทักษะการเขียนโปรแกรม Java or Python.

รหัสสถานะ HTTP บ่งบอกถึงผลลัพธ์ของการตอบสนอง: 2xx สำหรับความสำเร็จ, 4xx สำหรับข้อผิดพลาดฝั่งไคลเอ็นต์, 5xx สำหรับข้อผิดพลาดฝั่งเซิร์ฟเวอร์ การทดสอบต้องตรวจสอบให้แน่ใจว่ามีการส่งคืนรหัสที่ถูกต้องสำหรับคำขอทุกประเภท

AI สร้างกรณีทดสอบจากข้อกำหนด API ระบุกรณีพิเศษ และคาดการณ์พื้นที่ที่มีแนวโน้มจะเกิดข้อบกพร่องโดยใช้การเรียนรู้ของเครื่องเพื่อเพิ่มประสิทธิภาพกลยุทธ์การทดสอบ

ไม่ AI ขาดความเชี่ยวชาญเฉพาะด้านและการแก้ปัญหาอย่างสร้างสรรค์ วิธีที่ดีที่สุดคือการผสมผสานระบบอัตโนมัติของ AI เข้ากับการกำกับดูแลของมนุษย์เพื่อให้ได้ผลลัพธ์สูงสุด

Postman นำเสนอแผนบริการฟรีพร้อมความร่วมมือ มั่นใจได้ เป็นซอฟต์แวร์โอเพนซอร์สฟรี Java กรอบ. SoapUI, cURL และ JMeter นอกจากนี้ยังให้บริการฟังก์ชันฟรีอีกด้วย

สรุปโพสต์นี้ด้วย: