不用寫程式一樣完成Web API 接口自動化測試 RobotFramework + RequestLib

不用寫程式一樣完成Web API 接口自動化測試

Image result for API testing

這篇文章主要說明如何運用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 內建函數處理

http://robotframework.org/robotframework/latest/libraries/XML.html

 

產生亂數輸入資料

如果需要大量的測試資料怎麼辦? 例如:地址, 姓名, IP, …等

可以參考使用這個套件 faker, 產生大量的隨機測試資料

https://github.com/guykisel/robotframework-faker

Leave a Reply

Your email address will not be published.