Robot Framework มีความสามารถสูงในการทดสอบ REST API ด้วยการใช้ library ต่างๆ ที่ให้มาด้วย เช่น RequestsLibrary หรือ RESTInstance
การทดสอบ REST API ด้วย Robot Framework สามารถทำได้โดยการเขียน keyword ที่จะส่ง request และรับ response จาก API นั้น และเปรียบเทียบผลลัพธ์กับความต้องการที่กำหนดไว้
ตัวอย่าง keyword ที่สามารถใช้ในการทดสอบ REST API ด้วย Robot Framework:
- Create Session: สร้าง session สำหรับการเชื่อมต่อ API
- Send Request: ส่ง request ไปยัง API
- Get Response: รับ response จาก API
- Get JSON Value: ดึงค่าจาก JSON response
- Get JSON Length: ดึงจำนวนของค่าใน JSON response
- Verify JSON Value: ตรวจสอบค่าจาก JSON response ให้ตรงกับความต้องการ
ตัวอย่าง code การทดสอบ REST API ด้วย Robot Framework:
*** Settings ***
Library RequestsLibrary
*** Test Cases ***
Test REST API
Create Session my_session
# Send a GET request to retrieve the list of users
${response}= Send Request my_session GET https://api.example.com/users
# Verify the status code is 200 (OK)
Should Be Equal ${response.status_code} 200
# Get the response content as a JSON object
${json_response}= To Json ${response.text}
# Verify the number of users in the response
${number_of_users}= Get Json Length ${json_response}['users']
Should Be Equal ${number_of_users} 10
# Verify the first user in the response
${first_user}= Get Json Value ${json_response}['users'][0]
Should Be Equal ${first_user['name']} 'John Doe'
Should Be Equal ${first_user['email']} 'john.doe@example.com'
นี้คือตัวอย่าง code การทดสอบ REST API ด้วย Robot Framework ซึ่งใช้ library RequestsLibrary ในการสร้าง session และส่ง request ไปยัง API และดึง response จาก API นั้น และตรวจสอบผลลัพธ์ให้ตรงกับความต้องการ.
นอกจากนี้ในการทดสอบ REST API ด้วย Robot Framework ยังสามารถสร้าง test case ที่มีการทดสอบหลาย endpoint ได้ โดยใช้ keyword ต่างๆ ที่ให้มาด้วย เช่น
- Iterate Over List: วนลูปทดสอบหลาย endpoint ในเว็บไซต์
- Run Keyword If: ทำ keyword ถ้าเงื่อนไขนั้นเป็นจริง
- For Loop: วนลูปทดสอบ endpoint จาก list ของ endpoint
ตัวอย่าง code การทดสอบ REST API ด้วย Robot Framework สำหรับหลาย endpoint:
*** Test Cases ***
Test Multiple Endpoints
${endpoints} Create List https://api.example.com/users https://api.example.com/posts
:FOR ${endpoint} IN @{endpoints}
${response}= Send Request my_session GET ${endpoint}
${json_response}= To Json ${response.text}
Log ${json_response}
:IF "${endpoint}" == "https://api.example.com/users"
${number_of_users}= Get Json Length ${json_response}['users']
Should Be Equal ${number_of_users} 10
${first_user}= Get Json Value ${json_response}['users'][0]
Should Be Equal ${first_user['name']} 'John Doe'
Should Be Equal ${first_user['email']} 'john.doe@example.com'
:ELSE
${number_of_posts}= Get Json Length ${json_response}['posts']
Should Be Equal ${number_of_posts} 20
${first_post}= Get Json Value ${json_response}['posts'][0]
Should Be Equal ${first_post['title']} 'Hello World'
Should Be Equal ${first_post['content']} 'This is a sample post.'
# Send a POST request to create a new user
${data}= Create Dictionary name=Jane Doe email=jane.doe@example.com
${headers}= Create Dictionary Content-Type=application/json
${response}= Send Request my_session POST https://api.example.com/users data=${data} headers=${headers}
# Verify the status code is 201 (Created)
Should Be Equal ${response.status_code} 201
# Get the response content as a JSON object
${json_response}= To Json ${response.text}
# Verify the new user in the response
Should Be Equal ${json_response['name']} 'Jane Doe'
Should Be Equal ${json_response['email']} 'jane.doe@example.com'
ตัวอย่าง code นี้คือการทดสอบ REST API ด้วย Robot Framework สำหรับ endpoint ในการสร้างข้อมูล (Create) ใน API โดยการส่ง request แบบ POST และดึง response จาก API และตรวจสอบผลลัพธ์ให้ตรงกับความต้องการ.