在繼續本節之前,讓我們先瞭解一些有關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部分。
可以在此網站上註冊以訪問您的API密鑰,該密鑰隨後用於獲取正確的天氣報告。
在我們的例子中,生成的API密鑰:3f25ec8eed9e1951e21407a34312c2c8
下圖顯示了成功登錄後生成的API密鑰。
現在,我們將使用此API密鑰以及調用API的方法來獲得所需的結果。調用API的方法包括伺服器名稱,後跟城市代碼/城市名稱和API密鑰。
下圖顯示了OpenWeatherMap網站提供的API調用示例。
現在,我們將創建一個測試計畫來測試OpenWeatherMap網站提供的REST API。
創建JMeter測試計畫
- 進入到
JMeter/bin
檔夾,雙擊jmeter.bat
檔以啟動JMeter介面。 - 單擊“Test Plan”節點。
- 將此測試計畫節點重命名為: WebServiceTest 。
- 選擇 WebServiceTest 節點,然後右鍵單擊所選項。
- 滑鼠懸停在“Add” 選項上,然後將顯示元素列表。
- 選擇“線程(用戶)”>“線程組”。
修改線程組的以下屬性:
- 名稱 - Webservice user
- 線程數(用戶) - 2
- 加速期 - 保留默認值(1)。
- 迴圈計數-1
添加採樣器
- 選擇Webservice user 元素(線程組),然後右鍵單擊所選項。
- 滑鼠懸停在“Add”選項上,然後將顯示元素列表。
- 選擇Sampler> HTTP Request。
在HTTP Request控制面板中設置以下字段:
- 名稱 - HTTP請求
- 伺服器名稱或IP - api.openweathermap.org
- 路徑 - data/2.5/weather
- 參數 - q = London
- appid = 3f25ec8eed9e1951e21407a34312c2c8
添加監聽器
Listener元素將負責將HTTP請求的所有結果存儲在檔中,並呈現數據的可視化模型。
- 選擇Webservice user元素。
- 滑鼠懸停在“Add”選項上,然後將顯示元素列表。
- 選擇Listener> View Results Tree選項。
保存並執行測試計畫
- 單擊 File > Save Test Plan as 。
- 將整個測試計畫保存為HTTP_test.jmx。
- 單擊Run > Start以執行測試計畫。
驗證輸出
可以在偵聽器中看到以下輸出。
在回應數據選項卡中,可以看到OpenWeatherMap網站提供的實際天氣報告。