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

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

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

รูปภาพการทดสอบ API

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

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

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

  1. ใช้เครื่องมือทดสอบเพื่อขับเคลื่อน API
  2. เขียนโค้ดของคุณเองเพื่อทดสอบ API

ประเด็นที่ควรทราบ

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

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

ผลลัพธ์ของ API อาจเป็นได้

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

ลองดูตัวอย่างของแต่ละประเภทข้างต้นในบทช่วยสอนการทดสอบ API นี้

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

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

Long add(int a, int b)

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

การโทรจำเป็นต้องทำเช่น

add (1234, 5656)

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

สถานะ (พูดว่าผ่านหรือไม่ผ่าน)

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

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

โดยจะส่งกลับค่าใดๆ เช่น True (ในกรณีที่สำเร็จ) หรือเท็จ (ในกรณีที่เกิดข้อผิดพลาด) เป็นเอาต์พุต

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

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

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

ในกรณีนี้ เราเรียกใช้ฟังก์ชัน API ตัวใดตัวหนึ่ง ซึ่งจะเรียกใช้ฟังก์ชันอื่นแทน

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

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

กรณีทดสอบของการทดสอบ API ขึ้นอยู่กับ

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

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

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

ประเด็นต่อไปนี้ช่วยให้ผู้ใช้สามารถดำเนินการทดสอบ API ได้:

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

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

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

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

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

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

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

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

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

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

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

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

1) ReadyAPI

ReadyAPI เป็นเครื่องมือชั้นนำสำหรับการทดสอบการทำงาน ความปลอดภัย และโหลดของ RESTful, SOAP, GraphQL และบริการเว็บอื่นๆ ในแพลตฟอร์มเดียวที่ใช้งานง่าย คุณจะได้รับเครื่องมืออันทรงพลังสามอย่าง: การทดสอบ ReadyAPI, ประสิทธิภาพ ReadyAPI และการจำลองเสมือน ReadyAPI ด้วยเครื่องมือเหล่านี้ คุณสามารถดำเนินการทดสอบการทำงาน การรักษาความปลอดภัย และประสิทธิภาพ/โหลดได้ คุณยังสามารถจำลอง API และบริการบนเว็บด้วยเครื่องมือการจำลองเสมือนที่แข็งแกร่งของเรา นอกจากนี้คุณยังสามารถรวมระบบของคุณได้อย่างง่ายดาย ไปป์ไลน์ CI/CD ในระหว่างการสร้างทุกครั้ง

ReadyAPI

Key Features

  • ReadyAPI สามารถรวมเข้ากับสภาพแวดล้อมใดก็ได้
  • มีฟีเจอร์ Smart Assertion ที่สามารถสร้างการยืนยันจำนวนมากกับปลายทางหลายร้อยจุดได้อย่างรวดเร็ว
  • การสนับสนุนดั้งเดิมสำหรับ Git, Docker, Jenkins, Azureฯลฯ
  • รองรับ Command-line สำหรับการทดสอบอัตโนมัติ
  • รองรับการดำเนินการทดสอบการทำงานและการจัดคิวงานแบบขนาน
  • Promoการนำโค้ด tes มาใช้ซ้ำ
  • ลบการพึ่งพาระหว่างการทดสอบและการพัฒนา

เยี่ยมชม ReadyAPI >>

ทดลองใช้ฟรี 14 วัน (ไม่ต้องใช้บัตรเครดิต)

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

นอกจากนี้ยังมีเครื่องมืออื่นๆ สำหรับการทดสอบ API ตรวจสอบพวกเขา Good Farm Animal Welfare Awards

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

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

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

สรุป

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