วิธี Upload file และ Data ผ่าน multipart/form-data ด้วย POST request ใน Robot framework

วิธี Upload file และ Data ผ่าน multipart/form-data ด้วย POST request ใน Robot framework

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

ในตัวอย่างนี้นะคะ เราต้องการส่ง POST Request โดยใช้ Robot Framework พร้อมกับการส่งข้อมูล JSON และอัปโหลดไฟล์หลายไฟล์พร้อมกันผ่าน API โดยใช้ multipart/form-data ผ่านคำขอ POST โดยจะใช้ฟังก์ชัน Create Dictionary และ Get Binary File ในการเตรียมข้อมูลและไฟล์ที่ต้องการอัปโหลดค่ะ

ขั้นตอนที่เราต้องทำ มีดังนี้
1. สร้าง Dictionary สำหรับข้อมูลในส่วน body ทั้งหมด
  • ${body}: ข้อมูลที่ต้องการส่งเป็น JSON โดยมีชื่อและหมวดหมู่
2. สร้าง Dictionary สำหรับ Header เช่น ในที่นี้ใช้ Authorization=Bearer ${token} เพื่อยืนยันตัวตนในการเข้าถึง API
  • ${header}: หัวข้อของคำขอที่รวม Authorization และ Content-Type เป็น multipart/form-data ขึ้นอยู่กับแต่ละเคสมีความจำเป็นต้องใส่หรือไม่
3. การดึงข้อมูลไฟล์
  • ใช้ Get Binary File เพื่อดึงข้อมูลของไฟล์แต่ละไฟล์ใน binary format
4. การสร้าง Dictionary สำหรับไฟล์
  • ใช้ keyword Create Dictionary ใช้เพื่อจัดเก็บไฟล์ใน Dictionary
5. การส่ง POST Request
  • POST ใช้สำหรับการส่งคำขอไปยัง API พร้อมกับข้อมูล JSON, headers, และ files
6. การตรวจสอบ result
  • Status Should Be ใช้เพื่อตรวจสอบ status ที่ต้องการในการเทสนี้
  • Log To Console เพื่อแสดงผลลัพธ์ของการตอบกลับใน console
สิ่งที่ต้องระวัง
  • ตรวจสอบว่า URL และ path ของไฟล์เป็นค่าที่ถูกต้อง และมีอยู่จริง
  • อาจต้องปรับเปลี่ยน Content-Type โดยขึ้นอยู่กับ API ของเรา
ข้อดีของ keyword Get Binary File
1. ช่วยดึงข้อมูลไฟล์ในรูปแบบ binary ซึ่งเป็นรูปแบบที่ API ส่วนใหญ่ต้องการสำหรับการส่งไฟล์
2. สามารถใช้ข้อมูลไฟล์ในรูปแบบ binary ในคำขอ POST หรือ PUT เพื่ออัปโหลดไฟล์
3. เก็บข้อมูลไฟล์ได้อย่างถูกต้องและไม่ถูกแปลง ช่วยให้การส่งไฟล์ที่ต้องการความแม่นยำสูง เช่น PDF หรือรูปภาพ
4. รองรับการดึงข้อมูลหลายไฟล์และจัดการไฟล์เหล่านั้นในคำขอเดียว
สรุป
ด้วยวิธีนี้จะช่วยให้คุณสามารถส่ง data และไฟล์หลายไฟล์พร้อมกันผ่าน POST API ได้อย่างง่ายดายมากขึ้น โดยใช้ Robot Framework

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

Email : qsquad.qa@gmail.com