1. 程式人生 > >第四篇:添加一個線程組

第四篇:添加一個線程組

HR only 統計信息 dia 負載 conf .com 出現 循環

1.測試需求:建立20個用戶,訪問www.baidu.com,查看在負載達到 30QPS的時候的一個平均的響應時間;

QPS:query per second每秒查詢率,是查詢服務器每秒能處理的查詢次數,在因特網上,作為域名系統服務器的性能常用每秒查詢率來衡量;

2.測試步驟:

線程數:虛擬用戶數,一個虛擬用戶占用一個進程和線程,設置多少虛擬用戶數在這裏也就是設置多少線程數;

準備時長:單位s:設置虛擬用戶需要多少時間全部啟動,例如:設置20個,準備時長是10,那麽需要10秒鐘啟動20個線程,也就是每秒鐘2個;

循環次數:每個線程發送請求的次數,如果線程數目為20個,循環次數為5,那麽每個線程發送5個請求,總請求為20*5,如果勾選了“永遠”那麽所有的線程會一直發送請求,直到選擇停止運行腳本;

3.HTTP請求的配置:

名稱:用於標識一個取樣器,建議使用有意義的名稱;

註釋:對於測試沒啥用,僅用來備註;

服務器IP:HTTP請求發送的目標服務器或者IP地址;

端口號:目標服務器的端口號,默認是:80

timeouts:設置請求和響應時間的超時時間;

協議:HTTP或者HTTPS

方法:發送HTTP的方法:get post ,head put options trace delete等等

content encoding:內容的編碼方式,默認是:ISO8859

路勁:目標URL,註意不包括服務器的地址和端口

自動重定向:如果選中該項,當發送的HTTP請求是302/301的時候,jmeter自動重定向到新的頁面;

use keep alive:jmeter和目標服務器之間使用keep-alive方式(又稱持久鏈接,鏈接重用)進行HTTP通信,默認是選中的

use multipart /from -data for HTTP POST :當發送HTTP請求的時候,使用use multipart /from -data 方法發送,默認不選中;

通請求一起發送參數:

可以在發送的請求的時候把參數一起發送;

通請求一起發送文件:在請求發送文件,通常HTTP文件上傳行為可以通過這種方式模擬

從HTML獲取資源:默認不勾選,如果勾選,jmeter在發出請求後,得到響應後,會對HTML的文件進行分析並獲取HTML的內容,包括圖片,flash等等;

用作監視器:此取樣器被當做監視器,在監視結果中可以看到取樣器的圖形化統計信息,默認不選中;

save response as md5 hash :選中該項,在執行時僅僅記錄服務端返回的MD5的值,而不記錄完整的響應數據,在需要進行數據量非常大的測試的時候,建議選中該項,以減少取樣器記錄響應數據的開銷;

tips:默認時間單位是毫秒,報告輸出文件後綴。jtl

3.設置QPS限制:

jmeter提供了一個非常有用的定時器:Constant Throught Timer(常數吞吐量定時器),該定時器可以方便的控制給定的取樣器發送請求的吞吐量;

技術分享圖片

Constant Throughtput Timer :的主要的屬性:

Target throughtput(in samples per minute):目標吞吐量,這裏是每分鐘發送的請求數量,實際填的數量為:60*QPS 其次,Calculate Throughput based on :有5個選項,分別是:

This thread only :控制每個線程的吞吐量,選擇這種模式時,總的吞吐量為設置的target Throught 乘以該線程的數量;

all active threads :設置的target throughput 將分配在每個活躍的線程上,每個活躍的線程在上次運行結束後,等待合理的時間後再次運行,活躍線程,指的是同一個時刻,同時運行的線程;

all active threads(shared):與all active threads 的選項基本相同,唯一的區別是,每個活躍線程都會在所有活躍的線程上一次運行結束後,等待合理的時間後再次運行;

all active threads in current threads group:設置的target throughput 將任務分配在當前線程租的每一個活躍的線程上,當測試計劃中只有一個線程組時,該選項和all active threads的效果一樣,

all active threads in current threads group(shared)和all active threads in current threads group基本相同,唯一的區別是,每個活躍的線程都會在所有活躍線程的上一次運行結束後等待,合理時間後再次運行;

第四步:添加監聽器:

腳本的主要部分設置完成後,需要通過某種方式獲得性能測試中的測試結果,在本例中我們只關心,請求響應時間;

Jmeter 中使用監聽器元件,收集取樣器記錄的數據並以可視化的方式來呈現,Jmeter有各種不同監聽類型,因為HTTP請求,我們可以在添加聚合報告,更為直觀的查看測試結果。

添加聚合報告:右鍵點擊線程組,在彈的菜單(添加---監聽---聚合報告)中選擇聚合報告。

添加查看結果樹(添加---監聽---查看結果樹)

5、運行腳本

6、聚合報告分析

label:每個jmeter 的element(例如:HTTP request)都有一個,Name屬性,這裏是顯示的就是 Name 屬性的值;

samples:表示這次測試中一共發出了多少請求,如果模擬10個用戶,每個用戶叠代,10次,那麽這裏顯示100

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

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

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

MIn:最小的響應時間;

Max:最大響應時間;

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

Throughput:吞吐量,---默認情況下表示每秒完成的請求數,(request per second)當使用了,transaction controller時,也可以表示類似(loadrunner)的 Transaction per Second數;

響應時間單位:毫秒,見腳本:

7.Jmeter 斷言(檢查點):

斷言是在請求的返回層面增加一層判斷機制。因為請求成功了,並不代表結果一定正確,因此需要檢測機制提高測試準確性,下面介紹常用的jmeter三種斷言;

1.響應斷言:

2.Size Assertion(Size斷言)

3.Duration Assertion (持續時間斷言)

如果響應時間大於設置的響應時間,則斷言失敗,否則失敗,否則成功!

8.Jmeter參數化:

1.用戶參數:這裏講一下,CSV data setconfig

技術分享圖片

技術分享圖片

3.隨機參數化:

技術分享圖片

9.JMETER的集合點:

操作步驟----step--定時器---Synchronizing Timer

註意:集合點需要放在集合的元件的前面;

10.jmeter關聯:

1.正則表達式的提取器:

添加---後置處理器---正則表達式提取器:

技術分享圖片

技術分享圖片

正則表達式部分配置說明:

1.引用名稱:下一個請求要引用的參數名稱,如填寫activityID,則可用${activityID}引用它;

2):正則表達式:

()括起來的部分就是要提取的

.匹配任何字符串

+:一次或者多次

?:在找到第一個匹配項後停止

3)莫版:用$$引用起來,如果在正則表達式中有多個正則表達式(多個括號括起來的東東),則可以是$2$3$3等等,表示解析到的第幾個值給title,如:$1$2表示解析道德第1個值;

4)匹配數字:0代表隨機取值,1代表全部取值

5)缺省值:如果參數沒有取值得到值,那默認給一個值讓他取

第四篇:添加一個線程組