在繼續(xù)本節(jié)之前,讓我們先了解一些有關(guān)Web Services API的關(guān)鍵概念。
Web服務(wù)被定義為旨在通過(guò)網(wǎng)絡(luò)支持兩臺(tái)機(jī)器之間交互的軟件系統(tǒng)。它被設(shè)計(jì)為具有以通常在Web服務(wù)描述語(yǔ)言(WSDL)中指定的機(jī)器可處理格式描述的接口。 通常,“HTTP”是最常用的通信協(xié)議。 Web服務(wù)還使用SOAP,REST和XML-RPC作為通信手段。
Web服務(wù)可能不包含完整的規(guī)范集,有時(shí)可能無(wú)法執(zhí)行完整API可能執(zhí)行的所有任務(wù)。
API充當(dāng)兩個(gè)不同應(yīng)用程序之間的接口,以便它們可以相互通信。 這是第三方供應(yīng)商可以編寫與其他程序輕松連接的程序的方法。API可以使用任何通信方式來(lái)啟動(dòng)應(yīng)用程序之間的交互。 例如,Linux內(nèi)核API使用中斷調(diào)用系統(tǒng)調(diào)用。
API包含一套完整的規(guī)則和規(guī)范,供軟件程序遵循以便于交互。
Web API可以被視為Web服務(wù)中的一種開發(fā),其中重點(diǎn)已經(jīng)轉(zhuǎn)移到更簡(jiǎn)單的基于表示狀態(tài)轉(zhuǎn)移(REST)的通信。 Restful API不需要基于XML的Web服務(wù)協(xié)議(SOAP和WSDL)來(lái)支持其接口。
Web服務(wù)大致分為兩類:
為了測(cè)試目的,我們將使用一些公開可用的REST API來(lái)測(cè)試JMeter。
可以在Internet上搜索各種可公開使用的REST API。并獲取API密鑰以在JMeter中設(shè)置測(cè)試。 您還可以使用任何開發(fā)環(huán)境構(gòu)建整個(gè)Web服務(wù)項(xiàng)目,并將其部署在JMeter上以運(yùn)行測(cè)試計(jì)劃。
對(duì)于此測(cè)試,我們使用的是開放天氣地圖網(wǎng)站在URL下提供的API:
https://openweathermap.org/api
下圖顯示了Open Weather Map網(wǎng)站提供的API部分。
可以在此網(wǎng)站上注冊(cè)以訪問(wèn)您的API密鑰,該密鑰隨后用于獲取正確的天氣報(bào)告。
在我們的例子中,生成的API密鑰:3f25ec8eed9e1951e21407a34312c2c8
下圖顯示了成功登錄后生成的API密鑰。
現(xiàn)在,我們將使用此API密鑰以及調(diào)用API的方法來(lái)獲得所需的結(jié)果。調(diào)用API的方法包括服務(wù)器名稱,后跟城市代碼/城市名稱和API密鑰。
下圖顯示了OpenWeatherMap網(wǎng)站提供的API調(diào)用示例。
現(xiàn)在,我們將創(chuàng)建一個(gè)測(cè)試計(jì)劃來(lái)測(cè)試OpenWeatherMap網(wǎng)站提供的REST API。
JMeter/bin
文件夾,雙擊jmeter.bat
文件以啟動(dòng)JMeter界面。修改線程組的以下屬性:
在HTTP Request控制面板中設(shè)置以下字段:
Listener元素將負(fù)責(zé)將HTTP請(qǐng)求的所有結(jié)果存儲(chǔ)在文件中,并呈現(xiàn)數(shù)據(jù)的可視化模型。
可以在偵聽器中看到以下輸出。
在響應(yīng)數(shù)據(jù)選項(xiàng)卡中,可以看到OpenWeatherMap網(wǎng)站提供的實(shí)際天氣報(bào)告。