JMeter Webservice API測試計劃

在繼續本節之前,讓我們先了解一些有關Web Services API的關鍵概念。

Web Services

Web服務被定義爲旨在通過網絡支持兩臺機器之間交互的軟件系統。它被設計爲具有以通常在Web服務描述語言(WSDL)中指定的機器可處理格式描述的接口。 通常,「HTTP」是最常用的通信協議。 Web服務還使用SOAP,REST和XML-RPC作爲通信手段。

Web服務可能不包含完整的規範集,有時可能無法執行完整API可能執行的所有任務。

API(應用程序編程接口)

API充當兩個不同應用程序之間的接口,以便它們可以相互通信。 這是第三方供應商可以編寫與其他程序輕鬆連接的程序的方法。API可以使用任何通信方式來啓動應用程序之間的交互。 例如,Linux內核API使用中斷調用系統調用。

API包含一套完整的規則和規範,供軟件程序遵循以便於交互。

Web API

Web API可以被視爲Web服務中的一種開發,其中重點已經轉移到更簡單的基於表示狀態轉移(REST)的通信。 Restful API不需要基於XML的Web服務協議(SOAP和WSDL)來支持其接口。

Web服務大致分爲兩類:

  • 簡單對象訪問協議(SOAP)
  • 代示狀態轉移(REST)

爲了測試目的,我們將使用一些公開可用的REST API來測試JMeter。

可以在Internet上搜索各種可公開使用的REST API。並獲取API密鑰以在JMeter中設置測試。 您還可以使用任何開發環境構建整個Web服務項目,並將其部署在JMeter上以運行測試計劃。

對於此測試,我們使用的是開放天氣地圖網站在URL下提供的API:

https://openweathermap.org/api

下圖顯示了Open Weather Map網站提供的API部分。
JMeter

可以在此網站上註冊以訪問您的API密鑰,該密鑰隨後用於獲取正確的天氣報告。

在我們的例子中,生成的API密鑰:3f25ec8eed9e1951e21407a34312c2c8

下圖顯示了成功登錄後生成的API密鑰。
JMeter

現在,我們將使用此API密鑰以及調用API的方法來獲得所需的結果。調用API的方法包括服務器名稱,後跟城市代碼/城市名稱和API密鑰。

下圖顯示了OpenWeatherMap網站提供的API調用示例。

JMeter

現在,我們將創建一個測試計劃來測試OpenWeatherMap網站提供的REST API。

創建JMeter測試計劃

  • 進入到JMeter/bin文件夾,雙擊jmeter.bat文件以啓動JMeter界面。
  • 單擊「Test Plan」節點。
  • 將此測試計劃節點重命名爲: WebServiceTest
  • 選擇 WebServiceTest 節點,然後右鍵單擊所選項。
  • 鼠標懸停在「Add」 選項上,然後將顯示元素列表。
  • 選擇「線程(用戶)」>「線程組」。

修改線程組的以下屬性:

  • 名稱 - Webservice user
  • 線程數(用戶) - 2
  • 加速期 - 保留默認值(1)。
  • 循環計數-1

JMeter

添加採樣器

  • 選擇Webservice user 元素(線程組),然後右鍵單擊所選項。
  • 鼠標懸停在「Add」選項上,然後將顯示元素列表。
  • 選擇Sampler> HTTP Request

JMeter

在HTTP Request控制面板中設置以下字段:

  • 名稱 - HTTP請求
  • 服務器名稱或IP - api.openweathermap.org
  • 路徑 - data/2.5/weather
  • 參數 - q = London
  • appid = 3f25ec8eed9e1951e21407a34312c2c8

JMeter

添加監聽器

Listener元素將負責將HTTP請求的所有結果存儲在文件中,並呈現數據的可視化模型。

  • 選擇Webservice user元素。
  • 鼠標懸停在「Add」選項上,然後將顯示元素列表。
  • 選擇Listener> View Results Tree選項。

JMeter

保存並執行測試計劃

  • 單擊 File > Save Test Plan as
  • 將整個測試計劃保存爲HTTP_test.jmx
    JMeter
  • 單擊Run > Start以執行測試計劃。

驗證輸出

可以在偵聽器中看到以下輸出。

JMeter

JMeter

在響應數據選項卡中,可以看到OpenWeatherMap網站提供的實際天氣報告。
JMeter