1. 程式人生 > >使用JMeter3.0實戰之分散式併發測試以及web API介面測試

使用JMeter3.0實戰之分散式併發測試以及web API介面測試

簡介:

該文件是以Apche JMeter-3.0為例進行編寫的,通過網上的學習資料和官方文件的說明手冊學習後,進行專案操作實踐,將測試的過程記錄下提供給大家學習。

本博文的內容主要是進行配置JMeter的測試引數,進行併發測試,分散式測試和收集伺服器端的效能引數以及如何去測試web api介面的方法。

本博文以工作的專案作為併發測試的實驗案例。如果有錯誤,請大家指出。

1.使用Badboy錄製Web效能測試指令碼

1.1使用Badboy工具進行錄製Web效能測試指令碼

(1)啟動Badboy。首次啟動Badboy時,錄製按鈕預設處於選中狀態,如圖所示中的紅色小圓點。



(2)在Badboy工具位址列中輸入測試網址,然後按回車鍵。Badboy工具會使用內建的瀏覽器訪問對應的網址,如圖所示。


(3)在Badboy工具開啟的頁面中完成登入所需的各項操作,接下來可以在左上角的指令碼框中看到錄製產生的測試指令碼,如圖所示。


1.2匯出Badboy測試指令碼

(1)在Badboy中完成指令碼錄製後,可以將測試指令碼匯出成JMX格式,以便後續供JMeter使用,如圖所示。


2.建立Web測試計劃

2.1匯入Badboy錄製的測試指令碼

(1)開啟Jmeter->File->Open,選擇儲存的Badboy錄製的測試指令碼後,點選開啟按鈕。


2.2配置屬性和引數

(1)選中HTTP Header Manager後,根據測試的需求,可以修改Headers Stored in the Header Manager中的資訊,以本案例為主,新增Content-Type鍵值對。


設定HTTP Header的資訊


設定HTTP Request的配置資訊


設定HTTP Request的配置資訊,並設定傳送的引數內容

2.3引數化

(1)函式助手可以用過ctrl-F開啟,通過函式助手找到_CSVRrad方法,輸入引數檔案的路徑,CSV檔案列號是從0開始的,第一列0、第二列1、第三列2、依次類推。

然後點選【生成】按鈕,則會自動生成我們需要的引數化函式。

開啟引數化視窗

設定引數化檔案和取得引數化的列

(2)複製生成的引數化函式,開啟登陸請求頁面,在右則的引數化中找到我們要引數化的欄位,這裡對使用者名稱和密碼做引數化,第一列是使用者名稱,列號為0;

第二列是密碼,列號為1;修改函式中對應的引數化欄位列號就可以啦。

2.4正則表示式

(1)由於專案為了防止CSRF攻擊,所以頁面上會添加了令牌,在頁面中可找到該資訊串,如果當前頁面要獲取到該字串,必須要在上一個頁面中傳送http請求後,

從該請求的響應中提取出該字串,提取時使用的是正則表達的方式。

(2)正則表示式提取資料

建立正則表示式


(3)填寫正則表示式資訊

參考地址:http://book.51cto.com/art/201204/327425.htm

2.5新增測試結果監聽器


(1)為測試步驟新增測試結果監聽器(View Results Tree)

2.6設定遠端伺服器監控

(1)在做負載測試時,我們要時刻關注伺服器的CPU,MEM……的使用情況,但是JMeter本身對這些資訊是不做收集的,這個時候PerfMon就應運而生了。

他就是用來收集被壓伺服器的各種效能指標,例如: CPU, Memory, Swap, Disks I/O and Networks I/O ……


環境搭建
下載地址:http://jmeter-plugins.org/downloads/all/
解壓zip包,將JMeterPlugins-Standard.jar放到jmeter客戶端的jmeter/lib/ext下
啟動jmeter,新增Listener時你就看到PerfMon Metrics Collectors


(2)配置被監控的伺服器
下載地址:http://jmeter-plugins.org/downloads/file/ServerAgent-2.2.1.zip
解壓zip包,將ServerAgent-2.2.1放到被監控的伺服器下,必須啟動startAgent.bat,並且測試的時候不能關閉該視窗,啟動成功後,得預設埠是4444


(3)新增被監控的伺服器指標


3.執行測試計劃

3.1.設定併發使用者數


根據測試的需求,可設定併發的使用者數量和時間以及迴圈次數。

3.2.執行測試計劃


執行測試計劃


檢視監控遠端伺服器的報表


執行結束後,檢視監控遠端伺服器的CPU,IO,記憶體和網路的統計報表。

4.附件配置

4.1.配置收集被監控伺服器的資訊指標

預設情況下收集伺服器的效能指標資料的頻率是1秒,如果覺得收集頻率過高,可進行設定手機時間。在Jmeter的目錄下..\apache-jmeter\bin\下找到jmeter.properties檔案,

進行編輯,如果沒有在檔案中沒有找到JmeterPlugin.perfmon.interval ,在文件的末尾最加進去。

例如設定每5秒收集一次:jmeterPlugin.perfmon.interval=5000


其它選項設定:
•jmeterPlugin.perfmon.interval - metrics collection interval in milliseconds
•jmeterPlugin.perfmon.useUDP - true/false, enabling UDP connection try after failed TCP connection attempt
•jmeterPlugin.perfmon.label.useHostname - true/false, enable using "short" hostnames, default pattern is ([\w\-]+)\..*
•jmeterPlugin.perfmon.label.useHostname.pattern - string (escaped), regular expression to extract hostname (first group is matched)
•e.g. Default pattern would 
•be: jmeterPlugin.perfmon.label.useHostname.pattern=([\w\-]+)\..*
•e.g. Pattern for EC2 us-east/west subdomain 
•matching: jmeterPlugin.perfmon.label.useHostname.pattern=([\w\-]+\.us-(east|west)-[0-9]).*
•forcePerfmonFile - true/false, enabling it makes JMeter to write JTL file with perfmon metrics in the current directory
需要更多的配置設定,請參考:http://jmeter-plugins.org/wiki/PerfMon/

4.2.配置取樣批次

(1)進行分散式測試後,在在Control端中,檢視View Results Tree時,點選選項卡Response data後,沒有顯示返回的響應資料。這時需要在Jmeter的目錄

下..\apache-jmeter\bin\下找到jmeter.properties檔案,進行編輯,找到mode=Standard,並將#去掉並且進行儲存。


在jmeter.properties檔案Remote batching configuration板塊中找到mode=Standard配置


去掉mode=Standard前面的#號,這樣分散式測試的控制檯中的view result tree檢視結果時就可以看到response data中的資料了。
其它引數配置:
測試計劃中的監聽器會把它們的結果返回到JMeter客戶端,而JMeter客戶端預設情況下會將這些結果寫入到指定檔案中,取樣結果會在產生後立即發回JMeter客戶端。

這樣就會對網路和JMeter客戶端產生很大的壓力。使用者可以通過設定一些屬性,來改變預設操作。

模式(Mode)(取樣結果傳送模式)預設是Standard。

Standard:在取樣結果產生後立即傳送。
Hold:將取樣結果儲存在一個數組中,直到測試結束。這可能會佔用遠端伺服器的大量記憶體。
Batch:當計數器或者時間超過閾值之後,傳送儲存的取樣結果。
Statistical:當計數器或者時間超過閾值之後,以概要的形式傳送取樣結果;取樣結果以執行緒組(Thread Group)名稱和取樣標籤(Sample Label)進行概要統計。

積累的資料域包括:elapsed time、latency、bytes、sample count、error count,其他資料域將會被丟棄。

Stripped:將成功取樣的響應資料移除。
StrippedBatch:將成功取樣的響應資料移除,並批次傳送。
Custom implementation:將模式引數設定為測試人員的客戶化取樣傳送器的類名。該類必須實現介面SampleSender,並且類的建構函式只有一個

RemoteSampleListener型的引數。
如下屬性會影響Batch和Statistical模式。
num_sample_threshold:一個批次中的取樣數目(預設為100)。
time_threshold:等待的毫秒數(預設為60秒)。
參考地址:http://jmeter-plugins.org/wiki/PerfMon/

5.分散式壓力測試

  Jmeter 是java 應用,對於CPU和記憶體的消耗比較大,因此,當需要模擬數以千計的併發使用者時,使用單臺機器模擬所有的併發使用者就有些力不從心,甚至會引起

JAVA記憶體溢位錯誤。為了讓jmeter工具提供更大的負載能力,jmeter短小精悍一有了使用多臺機器同時產生負載的機制。

   如果執行JMeter客戶端的機器效能不能滿足測試需要,那麼測試人員可以通過單個JMeter GUI客戶端來控制多個遠端JMeter伺服器,以便對伺服器進行壓力測試,

模擬足夠多的併發使用者。通過遠端執行JMeter,測試人員可以跨越多臺低端計算機複製測試,這樣就可以模擬一個比較大的伺服器壓力。一個JMeter GUI客戶端例項,

理論上可以控制任意多的遠端JMeter例項,並通過它們收集測試資料

    通過遠端執行jmeter,測試人員可以跨越多臺低端計算機複製測試,這樣就可以模擬一個比較大的伺服器壓力,一個jmeter客戶端例項,理論上可以控制任意多的遠端

jmeter例項,並通過他們收集測試資料。這樣一樣,就有了如下特性:

*   儲存測試取樣資料到本地機器
*   通過單臺機器管理多個jmeter執行引擎。
*   沒有必要將測試計劃複製到每一臺機器,jmeter GUI客戶端會將它發往每一臺jmeter伺服器。
*   每一臺jmeter遠端伺服器都執行相同的測試計劃,jmeter不會在執行期間做負載均衡,每一臺伺服器都會完整地執行測試計劃。

                                                         分散式測架構


Terminology
Before we dive into the step-by-step instructions, it's a good idea to define the terms and make sure
the definition is clear.
Master – the system running Jmeter GUI, which controls the test
Slave – the system running jmeter-server, which takes commands from the GUI and send requests tothe target system(s)
Target – the webserver we plan to stress test

步驟:
1.Slave:在Slave伺服器上中,進入到jmeter/bin目錄並執行在widnwos系統上的jmeter-server.bat(jmeter-server 在Unix)。

2.Master:在Master伺服器作為控制檯時,在Master系統中,進入到jmeter/bin目錄。
2.1.使用文字編輯開啟jmeter.properties檔案
2.2.編輯remote_hosts=127.0.0.1
2.3.在remote_hosts=Slave伺服器地址,Slave2伺服器地址,......
2.4.開啟jmeter.properties檔案,設定將mode=Standard(預設)注視後,設定mode=Batch,如果不修改mode模式,可能出現併發後result view tree無法收集到響應資料。(配置位於Remote batching configuration板塊)
2.5啟動jmeter

5.1.Windows下分散式測試

伺服器環境:
Linux Slave:192.168.238.128,192.168.238.131
Win10 Master:192.168.238.103

5.1.1.配置遠端伺服器Slave(Jmeter-server)

(1)將Jmeter解壓後,拷貝到遠端伺服器(Linux/Window)中,開啟jmeter-server.後,彈出命令視窗,並且不能關閉該視窗。在預設情況下遠端伺服器中的埠是1099,

如果該埠被佔用了,那麼可以設定其它埠。在Jmeter的目錄下..\apache-jmeter\bin\下找到jmeter.properties檔案。

預設埠為1099,不用再修改配置,如果選擇修改成為其他埠,可在編輯檔案後,找到server_port=1099,根據需求,更改為未被使用的埠。

.

5.1.2.遠端伺服器的IP地址新增到控制端Master屬性檔案中

步驟:
1.修改jmeter.properties檔案
2.修改remote_hosts配置
3.修改mode=Standard配置

詳細步驟如下:
(1)在Jmeter的目錄下..\apache-jmeter\bin\下找到jmeter.properties檔案。
編輯檔案後,在Remote hosts and RMI configuration板塊中找到remote-host,根據需求,新增遠端伺服器的ip和埠號,可以新增多個遠端伺服器。例如:remote_hosts=localhost:1099,localhost:2010

(2)在 Remote batching configuration板塊中將mode=Standard前面的#去掉或者修改成為mode=Batch,如果不修改mode前面的#,可能無法收集到Slave伺服器

併發的資料。

Batch:當計數器或者時間超過閾值之後,傳送儲存的取樣結果。

5.1.3.執行控制檯

(2)在Jmeter中,點選Run-Remote Start All選單,執行遠端伺服器任務

(3)檢視併發後,檢視結果樹中的Sample Result資料。


(4)檢視結果樹中的Response Data資料


以上是在window平臺下,進行分散式測試的實踐過程,在最後View Result Tree中檢視到響應資料,表明已經併發成功。

5.2.Linux下分散式測試

前置要求:
1.必須在Linux(Centos7)伺服器下安裝JDK。
2.關閉firewalld。
3.Linux和window網路必須能通行,並且在同一個區域網內。

伺服器環境:
Linux Slave:192.168.238.128,192.168.238.131
Win10 Master:192.168.238.103

5.2.1.配置遠端伺服器Slave(Jmeter-server)


Linux作為服務端,執行jmeter-server之前,需要安裝jdk,安裝成後將jmeter的整個檔案拷貝到伺服器上,本案例是將apache-jmeter-3.0檔案拷貝到var/ftp/pub目錄下。

在/var/ftp/pub/apache-jmeter-3.0/bin/目錄下輸入./jmeter-server命令,執行jmeter服務時,出現錯誤,

提示:Server failed to start:java.rmi.RemoteException: Cannot start. localhost is a loopback address。


輸入命令cd /etc進入到目錄下,再輸入vi hosts進行編輯hosts檔案,將裡面的IP地址修改成本機地址,然後進行儲存。

需要在bin目錄下輸入命令:./jmeter-server-Djava.rmi.server.hostname=本機IP地址。才能啟動成功過,需要輸入ps -qa | grep jmeter-server命令或

輸入netstat -ntlp命令檢視確認是否執行成功。或者修改jmeter-server中的配置,配置如下:

輸入vi jmeter-server命令編輯檔案,在檔案中新增

RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.238.131  #IP地址是本機的地址.

5.2.2.遠端伺服器的IP地址新增到控制端Master屬性檔案中


(1)在apache-jmeter-3.0目錄下開啟jmeter.properties檔案,進行編輯。在配置檔案中找到remote_hosts,然後新增遠端的服務端ip地址和埠好,

例如:remote_hosts=192.168.238.131,192.168.238.128如果需要新增多個服務端,可用都用逗號隔開來配置。配置完成後,開啟客戶端ApacheJmeter控制檯。


(2)在 Remote batching configuration板塊中將mode=Standard前面的#去掉或者修改成為mode=Batch,如果不修改mode前面的#,可能無法收集到Slave伺服器

併發的資料。


開啟控制檯後,檢視執行-.遠端啟動-可看到遠端的服務端機器的IP地址。

5.2.3.執行控制檯

(3)在Jmeter中,點選Run-Remote Start All選單,執行遠端伺服器任務


(4)執行任務完成後,檢視服務端(Slave)的日誌。服務端程式產生一條Starting和Finished記錄。


(5)檢視併發後,檢視結果樹中的Sample Result資料。


(6)檢視結果樹中的Response Data資料


以上是在Linux平臺下,進行分散式測試的實踐過程,在最後View Result Tree中檢視到響應資料,表明已經併發成功。

注意事項:

In some cases, the firewall may still beblocking RMI traffic.

Symantec Anti Virus and Firewall

In some cases, Symantec firewall needs tobe stopped from windows services.

1. open control panel

2. open administrative tools

3. double click services

4. Go to down to symantec anti virus, rightclick and select stop

Windows firewall

1. open network connections

2. select the network connection

3. right click and select properties

4. select advanced tab

5. uncheck internet connection firewall

Linux

On Suse linux, ipchains is turned on bydefault. For instructions, please refer to the “remote testing”

in the user manual.

On RedHat (or derivatives), iptables(netfilter) is turned on by default. Execute “service iptables

stop” to stop the Linux netfilter firewall.

參考地址:

 6.介面測試

6.1.WCF 測試

測試背景:
氣站中有一個WCF的介面,通過待用該介面的PutNetworkStatus的方法,可修改氣站的狀態資訊。而PutNetworkStatus方法有兩個引數一個是MCUMapID,另外一個引數是Status。如果呼叫介面的方法成功後,會返回true資訊。

測試步驟:
測試wcf之前需要獲取到wcf的地址,例如:http://10.190.130.70:8072/ServiceForEXS.svc?wsdl
該wcf的協議是SOAP協議,所以可用SOAP UI工具進行生成XML指令碼。

6.1.1.SOAP UI生成XML


開啟SOAP UI工具,新建一個SOAP專案,在Initial WSDL輸入中輸入


點選OK按鈕後,可看到WCF介面的全部方法名稱。


雙擊PutNetworkStatus後開啟右邊的視窗公開。

6.1.2.SOAP UI測試介面


將?替換成測試引數,MCUMapID引數日為氣站的MCUID,而Status為氣站的狀態,1為斷開,0為正常。


測試之前MCUID為1000122的氣站的狀態為斷開。


點選執行按鈕後,執行成功後,在右邊框可看到伺服器的響應資料,檢視預期的返回值。


在頁面上檢視氣站的狀態,顯示正常。

6.1.3.JMeter測試

除了可使用SOAP UI工具進行介面測試外,當然也可以使用Apache JMETER 的
SOAP/XML –RPC Request的進行介面測試和併發測試。

開啟Jmeter介面後,新建一個ThreadGroup。


選擇Thread Group後,右鍵彈出選單->Add->Sampler->SOAP/XML-RPCRequest。


複製相應的資料。


將對應的資料拷貝 到SOAP/XML-RPC Request介面中。


選擇Thread Group後,右鍵選單->Add->Listener->ViewResults Tree


點選執行按鈕。


在View Results Tree中檢視SamplerResult資訊。


檢視View Result Tree中的Request資訊。


響應資料是期望返回的結果。
以上是WCF的介面測試,而併發測試可引數http的引數化和併發設定去測試。

6.2.Web API測試

測試案例:
1.客戶端呼叫web API時,傳送引數請求後,web API進行接收到請求後,根據傳送過來的引數進行查詢到訂單資料,讓後將訂單資料返回到客戶端。


                                                                                                        呼叫web api處理流程

6.2.1.測試準備

注意:測試之前需要跟開發人員確認好,測試哪個介面的方法,該方法的引數是什麼,並且資料有沒有涉及到加密,請求的頭部有沒有附加其它資料。

6.2.2.建立JMeter指令碼


本次測試介面的方法


測試的方法地址是:api/values/GetEnquiry而傳送的引數主要是存放在header中。那麼我們下面進行簡單測試web API的介面呼叫。


開啟JMeter後,建立在TestPlan下建立一個Thrad Group後,讓後在Thread Group下分別建立HTTP Header Manager,HTTP Reqeust,View Results Tree等元素。

6.2.2.1.Thread Group


在Thread Group中設定,2秒鐘併發10個使用者,只迴圈一下。

6.2.2.2.HTTP Header Manger


在HTTP Header Manager中新增請求的引數。需要注意Content-Type的請求值,不同的請求設定的值也不一樣。

6.2.2.3.HTTP Request


設定HTTP Request的引數,Server Name of IP,Port Number, Method和Path。需要特別注意Method的請求方式。

6.2.2.4View Results Tree


新增View Result Tree,檢視請求和響應的結果。

6.2.2.5.執行測試


點選Start按鈕執行測試,執行結果後,點選ViewResults Tree檢視結果。

6.2.2.6.檢視測試結果


在View Results Tree中,選擇一個結果後,檢視Responsedata的資料,檢查返回數結果是否正確和期望的結果。注意:雖然顯示是正確的標記,但不代表資料正確。

也就是說測試過程狀態和步驟是正確的,但不代表資料就正確。除了檢視Responsedata之外,也可以檢視Sampler Result和Result的資料。


在Response Timer VS Threads中檢視使用者的響應時間。該功能是需要安裝外掛才可以。如果需要更詳細的測試結果,可以根據需求,新增更多的元素元件來進行測試。

7.Web API傳送JSON資料格式

傳送json格式的資料到Web API端,在Jmeter中有兩種方法,一種是在Parameters
中直接輸入json的資料,另外一種是在body中輸入json資料。下面進行一個Web API專案進行實現兩種不同的方式來傳送json格式的資料。另外需要說明的是, 雖然這兩種方法可以解決json格式資料問題,但如果按照以前的傳送資料方式,在HTTP Request的Parameter中設定成Name和Value的方式也是可以測試成功的。

7.1.方法1

在HTTP Request的Parameters選項中輸入json資料。

7.1.1.新增Thread Group


新增一個執行緒組,可根據需求,設定併發數量。

7.1.2.設定HTTP Header Manager


由於在web api中需要獲取http header中的token認證,所以需要在頭部設定token的值,另外傳送json格式資料,必須要在頭部設定Content-Type=application/json,否則,會導致傳輸資料錯誤。

7.1.3.新增HTTP Request


在HTTP Reuqest中新增傳送json格式的資料,不用在Name列輸入資料。資料格式為:
{key:”value”,key2:”value2”,……}

7.1.4.新增View Result Tree


最後新增一個監聽器View Result Tree,以便檢視傳送請求的資料和響應資料

7.1.5.執行測試計劃檢視結果


在View Result Tree中檢視取樣器的資料,檢查Reponse Header的資料。


在View Result Tree中檢視Request選項卡的POST的json格式資料和請求頭資訊。


在View Reuslt Tree中檢視Response Data選項卡,響應資料正確。
以上就是在HTTP Request中輸入json格式資料傳送到web api的測試方法。

7.2.方法2

7.2.1.新增Thread Group


新增一個執行緒組,可根據需求,設定併發數量。

7.2.2.設定HTTP Header Manager


由於在web api中需要獲取http header中的token認證,所以需要在頭部設定token的值,另外傳送json格式資料,必須要在頭部設定Content-Type=application/json,

否則,會導致傳輸資料錯誤。

7.2.3.新增HTTP Request


在HTTP Reuqest的Body Data選項卡中新增傳送json格式的資料。資料格式為:

{key:”value”,key2:”value2”,……}

7.2.4.新增View Result Tree監聽器


最後新增一個監聽器View Result Tree,以便檢視傳送請求的資料和響應資料

7.2.5.執行測試計劃檢視結果


在View Result Tree中檢視取樣器的資料,檢查Reponse Header的資料。


在View Result Tree中檢視Request選項卡的POST的json格式資料和請求頭資訊。


在View Reuslt Tree中檢視Response Data選項卡,響應資料正確。
以上就是在HTTP Request中輸入json格式資料傳送到web api的測試方法。

8..IP欺騙

最近在使用jmeter進行壓力測試時需要使用類似於loadrunner的IP欺騙功能,經問津度娘無果後決定再次耐心研究jmeter官方文 檔,終於發現在jmeter2.5以上的版本 有此功能的實現,由於發現很多網友都在尋找此問題答案,遂將本次測試的過程的記錄下來以幫助更多的同學

8.1.準備工作

1、window7一臺,安裝jdk1.6環境,此處就不再累贅講述。
2、下載最新jmeter 2.11,連結地址:http://jmeter.apache.org/download_jmeter.cgi,下載zip包解壓即可,雙擊bin/jmeter.bat啟動jmeter;
3、使用IP欺騙功能必須得本地有多個可用IP,通常普通的PC機只有一個物理網絡卡,這就需要我們手工設定多IP繫結同一網絡卡:
      a、開始選單 -> 控制面板 -> 網路共享中心 -> 更改介面卡設定 -> 本地連結 
      b、右鍵本地連結 -> 屬性,選擇Internet 協議版本4(雙擊開啟視窗),如果是採用自動獲取IP,得通過手工設定IP
      c、在屬性視窗中選擇高階按鈕,選擇IP設定,點選新增,輸入新的IP地址(須要注意在區域網內不要有IP衝突,可以事先ping一下找沒有使用的IP),            但子網掩碼必須一致。


4、設定好多個IP後就可以開始使用jmeter的IP欺騙功能了,這裡要注意的是到目前為止,基於http 請求必須使用httpClient4方可成功。

首先我們把設定好的IP儲存在cvs檔案中方便我們匯入到jmeter引數中:


5、在jmeter測試計劃中新增配置元件 並配置IP引數

6、對http 請求進行調整

針對每個http都要設定一遍,jmeter在每個併發執行緒開始時從檔案中取一個IP值;
測試結果:
結果可以從服務端通過日誌觀察變化,也可以通過jmeter 的察看結果樹看到效果:


 9.參考附錄

9.1.術語說明

(1)Aggregate Graph集合報告


圖表含義說明如下:
Label:說明是請求型別,如Http,FTP等請求。
#Samples:也就是圖形報表中的樣本數目,總共傳送到伺服器的樣本數目。
Average:也就是圖形報表中的平均值,是總執行時間除以傳送到伺服器的請求數。
Median:也就是圖形報表中的中間值,是代表時間的數字,有一半的伺服器響應時間低於該值而另一半高於該值。
90%line:是指90%請求的響應時間比所得數值還要小。
Min:是代表時間的數字,是伺服器響應的最短時間。
Max: 是代表時間的數字,是伺服器響應的最長時間。
Error%:請求的錯誤百分比。
Throughput:也就是圖形報表中的吞吐量,這裡是伺服器每單位時間處理的請求數,注意檢視是秒或是分鐘。
KB/sec:是每秒鐘請求的位元組數。

使用分析:
在測試過程中,平均響應時間是我們效能測試的一個重要衡量指標,但是在測試中,特別是在聚合報告中,得出的90%Line,我這裡參考《《LoadRunner 沒有告訴你的》

之一——描述性統計與效能結果分析》,我認為90%Line等同於該文作者提出的90%響應時間,這個數值對我們效能測試分析也很有參考價值。90%響應時間是說在傳送

的請求中,90%的使用者響應時間都比得到的數值上要短,同時說明,一個系統在應用時,90%的使用者響應時間都能達到這個數值,那麼就為系統性能分析提供了很好的

參考價值。

參考地址:http://blog.163.com/huo_jintao/blog/static/6152838020090130331286/

9.1.1.監聽伺服器影象外掛下載地址


舊版本的外掛下載地址:https://jmeter-plugins.org/downloads/old/

9.1.2.使用外掛管理方式下載外掛

在Jmeter工具中,其實除了工具本身擁有的功能外,還還不能滿足測試的需求,可以使用外掛功能。要使用外掛管理功能,必須要下載Jmeter Plugins Manger.jar包。

9.1.2.1.下載外掛管理包

Jmeter Plugins Manage.jar包下載地址:https://jmeter-plugins.org/wiki/PluginInstall/

下載成功後,需要將檔案拷貝到jmeter的lib/ext目錄下。

9.1.2.2.啟動外掛管理介面


啟動JMeter後,點選【選項】選單,選擇Plugins Manager選單。



開啟JMeter Plugins Manager介面後,顯示3個選項卡:
Installed Plugins:顯示已經安裝的外掛。
Available Plugins:顯示可以下載的外掛。
Upgrades:顯示可升級的外掛。

9.1.2.3下載外掛


在AvailablePlugins選項卡中,選擇KafkaSupport外掛後,點選ApplyChanges and Restart JMeter按鈕就惡意開始下載。


下載的過程中,網速非常緩慢,需要耐心等待,甚至可能下載不成功,需要耐心等待和重試下載多次。

9.2在Centos下啟動jmeter-server是提示:Server failed to start: java.rmi.RemoteException: Cannot start. localhost.localdomain is a loopback address.

解決方法1:
http://stackoverflow.com/questions/3150448/jmeter-loopback-address-error-when-launching-jmeter-server-on-linux

在linux伺服器下,設定環境變數:
export RMI_HOST_DEF=-Djava.rmi.server.hostname=XXX.XXX.XXX.XXX
或者執行時,加入引數
./jmeter-server -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx
或者在jmeter.server檔案中新增:
RMI_HOST_DEF=-Djava.rmi.server.hostname=XXX.XXX.XXX.XXX

可參考以下文章:
http://blog.csdn.net/lcm_up/article/details/17594551
http://gmwen.blog.163.com/blog/static/18800705720116511927749/
https://voidtech.wordpress.com/2012/10/05/jmeter-fix-jmeter-server-server-failed-to-start-java-rmi-remoteexception-cannot-start-hostname-is-a-loopback-address/

9.3.在linux環境下進行分散式測試,檢視控制端的jmeter中的view result tree中的response data時,

沒有響應資料。

解決方法:
在 Remote batching configuration板塊中將mode=Standard前面的#去掉或者修改成為mode=Batch,如果不修改mode前面的#,可能無法收集到Slave伺服器併發的資料。