1. 程式人生 > >jmeter基礎(一)

jmeter基礎(一)

1.JMeter的特性
Jmeter基本原理是建立一個執行緒池,多執行緒執行取樣器產生大量負載,在執行過程中通過斷言來驗證
結果的正確性,可以通過監聽來記錄測試結果;
JMeter選擇了以執行緒方式來執行,通過執行緒組來驅動多個執行緒,執行測試指令碼對
被測伺服器發生負載,每個負載機上都可以執行多個執行緒組,執行場景不僅可以在GUI(圖形使用者介面)方
式中完成,還可以使用命令列,而且命令列執行的方式對於負載機的資源消耗會更小
JMeter可以作為Web伺服器與瀏覽器之間的代理閘道器,以便捕獲瀏覽器的請求和Web伺服器的響應,
這樣就很容易地生成效能測試指令碼, 有了效能測試指令碼,JMeter就可以通過執行緒組來模擬真實使用者對
Web伺服器的訪問壓力
2.JMeter主要特點


(1)支援對多種服務型別進行測試,包括:web-http,https;SOAP;Database via JDBC;LDAP;JMS; Mail-POP3(S) and IMAP(S)
(2)支援通過錄制/回訪方式獲取測試指令碼
(3)具備高可移植性,是100%純java程式
(4)採用多執行緒框架,允許通過多個執行緒併發取樣及通過獨立的執行緒組對不同的功能同時取樣
(5)靜心設計的GUI支援高速使用者操作和精確計時
(6)支援快取和離線的方式分析/回放測試結果
(7)具備高擴充套件性,包括:
插拔式的取樣器支援無限制擴充測試能力
提供各種負載統計表和可插拔的計時器
資料分析和視覺化提供了很好的擴充套件性及個性化支援
通過預置函式為測試提供動態輸入資料,以及通過預置函式對測試資料進行操作
支援用指令碼構造取樣器
3.JMeter一些用法

執行順序: 配置元件 -> 前置處理器 -> 定時器 -> 取樣器(sampler) -> 後置處理器 -> 斷言 -> 監聽器;
每次反覆清除Cookies:跑效能時要勾上,比如說登入了,沒有退出;
斷言: 一般使用 bean shell斷言 或者 響應斷言;
如果取樣器中有引數化需求,可以通過配置元件或者前置處理器來完成;
如果取樣器中有關聯需求,可以通過後置處理器來完成;
如果要模擬負載場景,比如模擬多少使用者,運動多長時間,可以通過執行緒組完成;
如果要模擬併發場景,可以通過定時器來完成;
如果要控制業務的執行邏輯,比如登入只執行一次,可以通過控制器來完成;
只有有sampler的時候,定時器,斷言,前置/後置處理器才會執行,邏輯控制器和Samplers按他們在樹裡的排列順序執行
4.JMeter元件的作用域

元件的作用域是靠測試計劃的的樹型結構中元件的父子關係來確定的
①.取樣器(sampler)元件不和其它元件相互作用,因此不存在作用域的問題
②.邏輯控制器(Logic Controller)元件只對其子節點中的取樣器 和 邏輯控制器作用
③.除取樣器 和邏輯控制器 元件外,其他6類元件,如果是某個sampler的子節點,則該元件公對其父子節點起作用
④.除取樣器和邏輯控制器元件外的其他6類元件,如果其父節點不是sampler ,則其作用域是該元件父節點下的其他所有後代節點(包括子節點,子節點的子節點等)

前置處理器、後置處理器和斷言等元件公能對 取樣器作用,因此,如果在它們的作用域內沒有任何取樣器,則不會被執行
如果在同一作用域範圍內有多個同一型別的元件,則這些元件按照它們在測試計劃中的上下順序一次執行
5.開啟JMeter錄製,報埠已佔用錯誤
首先檢查瀏覽器配置代理的埠和JMeter錄製指令碼的埠是否一致
在這裡插入圖片描述在這裡插入圖片描述
如果配置埠一致,接下來檢查是否開啟fiddler、charles等抓包工具,並且埠號和瀏覽器,Jmeter的埠重複
在這裡插入圖片描述
6.小知識
①突然發現Google不能用了。是因為fiddler 會自動設定IE代理,而Google使用的是IE核心,可以再設定裡關閉,如果關閉後還是不行,就把證書新增進去,但是得重啟瀏覽器!!
②如果url沒有轉義過來,可以用urldecoder線上轉換一下,方便檢視
③jmeter 快捷工具:ctrl + t 啟用/禁用; ctrl + e 清空執行結果; ctrl + r 執行
④執行取樣器一直超時,在advanced裡把Timeouts 裡的Connect設定大一點