不用寫程式一樣完成Web API 接口自動化測試
這篇文章主要說明如何運用RobotFramework 利用關鍵字定義的方式完成 WebAPI 測試
接口測試指的是直接針對 Web service 提供的 API (多半為 REST API或是 SOAP API)進行測試
主要使用的工具套件為 RobotFramework 的一個套件requestsLibrary與 python 套件 requests來完成
接口測試場景
Web API 接口測試主要在於不需要啟動瀏覽器, 不需要看到 Web UI 介面的情況下
測試每一個 Web API 請求與返回是否運行正常, 最常見的就是 HTTP Get 與 HTTP Post 請求
環境安裝
pip install -U requests pip install -U robotframework-requests |
官方網站: https://github.com/bulkan/robotframework-requests/#readme
RobotFramework RquestLib常用關鍵字
- Create NTLM Session : 用於在需要帳號密碼連接時候的請求
- Get Request
- Post Request
- Head Request
- To JSON
相關關鍵字使用查詢參考: https://bulkan.github.io/robotframework-requests/
範例腳本
*** Settings *** | |||||
Library | Collections | ||||
Library | RequestsLibrary | ||||
*** Test Cases *** | |||||
Get Requests | |||||
${auth} | Create List | user | pwd | #當需要使用者帳戶密碼輸入時 | |
Create Session | myAPI | http://www.myAPI.com | ${auth} | ||
${resp}= | Get Request | myAPI | /API1 | #其中myAPI為定義該請求的暱稱 | |
Should Be Equal As Strings | ${resp.status_code} | 200 | |||
Dictionary Should Contain Value | ${resp.json()} | API Response Testing | |||
Comment | 另外也可以使用ToJSON將返回內容轉換為JSON, 透過Dictionary key讀取 | ||||
${responsedata} | To Json | ${resp.content} | |||
${values} | Get Dictionary Values | ${responsedata} |
如果返回內容為 XML 可以使用 RobotFramework 內建函數處理
- Getting text or attributes of elements (e.g. Get Element Text and Get Element Attribute).
- Directly verifying text, attributes, or whole elements (e.g Element Text Should Be and Elements Should Be Equal).
http://robotframework.org/robotframework/latest/libraries/XML.html
產生亂數輸入資料
如果需要大量的測試資料怎麼辦? 例如:地址, 姓名, IP, …等
可以參考使用這個套件 faker, 產生大量的隨機測試資料