寫這篇短文主要想詳細介紹一下jmeter中取樣器、邏輯控制器、前置處理器、後置處理器、定時器、配置元件等,可能看起來比較繁雜,其實裏面不少操做是相似的,一篇總結和記錄的博客:shell
jmeter優點有:輕量、易持續集成(對命令行命令的執行和輕量)、易實現自動化、基於Java開發的不少插件等;數據庫
jmeter是5.1.1版本;緩存
jmeter中各個部分執行的順序:cookie
1.配置節點--->2.前置處理器--->3.定時器--->4.採樣器--->5.後置處理器--->6.斷言--->7.監聽器;(後面三個在採樣器運行有結果後纔會執行)併發
1、jmeter基礎設置:框架
1.jmeter線程組:分佈式
主要是經過設置線程組的參數來實現併發,從而進行性能測試,其中黃框內是線程數,藍框內是實現設置線程數所需時間,綠色框內是循環次數也可選擇forever進行持續併發:oop
2.jmeter中取樣器:性能
下圖是在線程組中添加採樣器,經常使用的採樣器通常是HTTP Request(接口測試)、JDBC Request(鏈接操做數據庫)、Debug Request(調試腳本和查看參數)等:測試
下圖是HTTP 採樣器的一些重要參數:協議、服務名、端口號、請求方法、路徑、內容編碼,第三個紅方框內是關於重定向和鏈接方式的設置,第四個紅框那一欄是請求參數和請求體的設置:
HTTP採樣器中高階的設置是下面圖:
3.jmeter中邏輯控制器:
jmeter中邏輯控制器主要是起到控制採樣器的做用,實現循環、判斷等邏輯結構,經常使用的邏輯控制器有If Controller(if判斷)、Loop Controller(循環)、Transaction Controller(事務)等:
下面是Loop循環控制器,功能和設置與線程組循環控制同樣:
一次控制器,只執行一次的的邏輯控制器並無設置項,可做爲登陸控制,只登錄一次,後面在利用循環和判斷控制器執行其餘:
4.jmeter中前置、後置處理器:
前置處理器中經常使用的有User Parameters(用戶參數)、JDBC PreProcessor(數據庫)、Bean shell(寫代碼):
後置處理器經常使用的是Regular(正則提取)、Xpath(XML文件提取)、Bean shell(代碼):
5.jmeter中定時器:
6.jmeter中配置元件
配置元件使用仍是很頻繁的,能夠進行各類默認和初始化的參數設置,進行緩存和cookies值的設置等:
7.jmeter監聽器:
監聽器中經常使用的有查看結果樹、聚合報告等:
2、jmeter中的參數化:
1.能夠經過配置元件或者測試計劃中添加UDV(User Defined Variables):
2.能夠經過引入前置處理器或者配置元件設置參數:
2.1 前置處理器中添加User Parameters:
2.2 能夠添加配置元件中的CSV Data Config進行表格讀取參數:
3、jmeter中的關聯:
jmeter中的關聯主要是獲取採樣器中動態的數據,將其傳入下一個採樣器中進行處理,通常獲取動態元素用到後置處理器的正則匹配提取器和Xpath(XML格式)處理器:
提取一個Body中的token值將其設置爲jmeter中的變量,可經過${token}進行使用。
4、jmeter中的分佈式:
在單機進行壓力測試時,解決壓力不夠或者單機壓測效果不理想等問題時會用到分佈式壓測,須要多臺電腦進行壓測,其中須要一臺控制,多臺工做:
1.注意事項:
相同版本的jmeter和JDK;關閉殺毒軟件;在同一子網下;
2.實現jmeter分佈式壓測框架圖:
3.實現步驟:
(1)在全部slaves上啓動jmeter-server;
(2)在master控制機的配置文件上把slaves的ip地址添加到remote_hosts=[ip1,...,ip5],而後重啓master上的jmeter;
(3)在master上的jmeter啓動測試腳本,查看監聽器的結果;
————————————————————————————————————————————————————
jmeter中BeanShell能夠寫代碼實現一些參數的設置和獲取,jmeter還用不少擴展的插件可以實現不一樣需求的測試;