JMeter學習筆記——Web接口測試(webservice)


SOAP/XML-RPC Request插件部分內容,轉自:http://www.cnblogs.com/imyalost/p/5804359.html

3.2后版本內容,轉自:http://www.mamicode.com/info-detail-2222345.html

        JMeter3.2前的版本,可以使用SOAP/XML-RPC Request插件直接進行webservice接口,而3.2后的版本則已經取消了這個接口,需要另外的方法才能進行測試。

一、JMeter3.2前版本 SOAP/XML-RPC Request

一、建立一個測試計划(test plan)

之前有說過,jmeter打開后會自動生成一個空的test plan,用戶可以基於該test plan建立自己的test plan

一個性能測試的負載必須有一個線程組完成,而一個測試計划必須有至少一個線程組。添加線程組操作如下:

在測試計划處右鍵單擊:添加→Threads(Users)→線程組

每個測試計划都必須包含至少一個線程組,當然,也可以包含多個,多個線程組的運行在jmeter中采用的是並行的方式,即:同時被初始化且同時執行其下的sampler

線程組主要包含三個參數:

線程數:虛擬用戶的數量,一個線程指一個線程或者進程

Ramp—Up Period(in seconds):准備時長。設置的線程數需要多久全部啟動,比如上圖,線程數為6000,啟動時間為60,那么需要60S內啟動6000個線程;

循環次數:每個線程發送請求的次數。如上圖,6000個線程,每個線程發送1次,如果勾選了永遠,那么它將永遠發送下去,直到停止腳本;

設置合理的線程數對能否達到測試目標有決定性影響。比如在本例中,如果線程數太少,則無法達到設定的要求;

另外,設置合理的循環次數也很重要,除了給定的設置循環次數和永遠,還可以通過勾選調度器,設置開始和結束時間來控制。

 

二、添加sampler

添加完線程組后,在線程組上右鍵單擊:添加→Sampler→SOAP/XML-RPC Request(SOAP/XML-RPC:都是報文中不同的數據格式)

前面說過,取樣器(Sampler)是與服務器進行交互的單元。一個取樣器通常進行三部分的工作:向服務器發送請求,記錄服務器的響應數據和記錄相應時間信息

 

這里解釋一下,因為微信H5界面的會員注冊,向微信端發送的是xml文件,所以這里我選擇的取樣器是SOAP/XML-RPC Request

上面的圖中,選擇SOAP/XML-RPC Request取樣器,然后URL一欄輸入我們需要進行加壓的URL

然后默認選項,Use KeepAlive的意思是:保持連接,這個是http協議報文中的一個首部字段,之前的關於HTTP協議的隨筆寫過

下面的SOAP/XML-RPC Data輸入需要發送的xml格式的文件就行(也可以導入xml文件的文件夾進行讀取),下面是xml和json的區別:

 

添加完取樣器和具體的地址參數之后,接下來就是添加監聽器,對測試結果進行獲取

 

三、添加監聽器

在線程組上右鍵單擊,添加你需要的監聽器,一般常用的就是結果樹和聚合報告

 添加后啟動線程組進行測試,等線程執行完成后,根據結果樹中的請求和響應結果(成功或者失敗)就可以分析我們的測試是否成功,以及根據聚合報告結果來確認我們這次確認是否達成了預期結果。

四、聚合報告簡析

 

Aggregate Report: JMeter 常用的一個 Listener,中文被翻譯為“聚合報告”

Label:每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這里顯示的就是 Name 屬性的值

#Samples:表示你這次測試中一共發出了多少個請求,如果模擬10個用戶,每個用戶迭代10次,那么這里顯示100

Average:平均響應時間——默認情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,也可以以Transaction 為單位顯示平均響應時間

Median:中位數,也就是 50% 用戶的響應時間

90% Line:90% 用戶的響應時間

Note:關於 50% 和 90% 並發用戶數的含義,請參考下文

http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html

Min:最小響應時間

Max:最大響應時間

Error%:本次測試中出現錯誤的請求的數量/請求的總數

Throughput:吞吐量——默認情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數

KB/Sec:每秒從服務器端接收到的數據量,相當於LoadRunner中的Throughput/Sec

 

二、JMeter3.2后版本

jmeter3.2版本之后就沒有SOAP/XML-RPC Request插件了,所以沒辦法直接進行webservice接口的測試。

原理上:

Web service一般就是用SOAP協議通過HTTP來調用它,其實他就是一個WSDL文檔,客戶都可以閱讀WSDL文檔來用這個Web service。

SOAP簡單的理解,就是這樣的一個開放協議SOAP=RPC+HTTP+XML:采用HTTP作為底層通訊協議;RPC作為一致性的調用途徑,XML作為數據傳送的格式,允許服務提供者和服務客戶經過防火牆在INTERNET進行通訊交互。

所以其實我們是可以通過一些方法來通過,jmeter中的http請求來測試webservice.

當然官網的手冊上也說明了是可以的。只需要借助http信息頭管理器兩個參數Content-Type和SOAPAction。

首先需要在SOAPUI中新建project填入webservice接口地址。並且在接口中填入參數,點擊發送。

確保參數發送成功,具體如下圖。

這一步是為了獲取一些jmeter沒有的信息

 1、測試計划-->右擊添加-->Threads-->新增線程組

 2、線程組-->右擊配置元件-->增加http信息頭管理器

3、線程組-->點擊添加-->Sampler-->HTTP請求

 

4、http信息頭管理器需要填入Content-Type(必填)或者SOAPAction,而SOAPAction不是必須填的信息。

這兩個數據要從soapUI中進行獲取。當藍色划線顯示不為"http://"開頭的信息時,這個soapAction的信息就不是必填的。

在http信息頭管理器中,我們需要填入Content-Type信息

 5、在HTTP請求中XML中的數據信息,全部復制到jmeter的HTTP請求中的Body Data。

 6、然后發送請求,成功(*^▽^*)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM