สวัสดีค่ะ ทุกคน วันนี้เราจะมาแนะนำวิธีการทำ 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 File1. ช่วยดึงข้อมูลไฟล์ในรูปแบบ binary ซึ่งเป็นรูปแบบที่ API ส่วนใหญ่ต้องการสำหรับการส่งไฟล์
2. สามารถใช้ข้อมูลไฟล์ในรูปแบบ binary ในคำขอ POST หรือ PUT เพื่ออัปโหลดไฟล์
3. เก็บข้อมูลไฟล์ได้อย่างถูกต้องและไม่ถูกแปลง ช่วยให้การส่งไฟล์ที่ต้องการความแม่นยำสูง เช่น PDF หรือรูปภาพ
4. รองรับการดึงข้อมูลหลายไฟล์และจัดการไฟล์เหล่านั้นในคำขอเดียว
สรุป
ด้วยวิธีนี้จะช่วยให้คุณสามารถส่ง data และไฟล์หลายไฟล์พร้อมกันผ่าน POST API ได้อย่างง่ายดายมากขึ้น โดยใช้ Robot Framework




