對測試來講,jmeter應該是你們使用較頻繁的測試工具之一,由於其開源、免費、輕量、功能強大,支持不少種協議,除了測功能,還能作自動化和性能測試;html
據某機構的調查,性能併發工具中,jmeter市場佔有率已經50%+,超過了老大哥loadrunner;java
這麼一款如此優秀的工具,對測試而言,是必須掌握的;web
常常看到羣裏你們討論jmeter的各類功能,我發現有些朋友過分使用了一些沒必要要的功能;其實,jmeter經常使用的功能並很少,把主要的掌握,基本上就能夠搞定90%的需求了,因此,不要把時間耗費在工具不經常使用的功能上,若是是作性能測試,分析定位調優纔是重點。正則表達式
從jmeter2.x版本用到如今的5.x,經常使用的功能也就下面列舉的這些,我不詳細單講,由於網上不少介紹,我博客或者公衆號,也有對應的實戰應用:shell
測試計劃apache
線程組websocket
【Sampler】併發
HTTP請求:能夠參考:測試必備:jmeter測試http協議接口的各類傳參方式 dom
BeanShell Sampler socket
Debug Sampler:只看到jmeter變量
若是是其它協議,好比java、dubbo、websocket、smtp、tcp、jdbc,添加對應的取樣器等便可,若是沒有,那麼就須要咱們本身開發,因此,java基礎是必備的。
【邏輯控制器】
事務控制器
ForEach控制器
僅一次控制器
【前置處理器】
BeanShell PreProcessor
【後置處理器】
正則表達式提取器:關聯的方式不少,我喜歡用萬能的正則,另外,你們能夠看以前寫的:jmeter關聯的5種方式 Debug PostProcessor:除了能夠看到jmeter變量,還能夠看到配置信息,最好放在正則表達式提取器後面,不然看不到提取的結果;
BeanShell PostProcessor
【斷言】
響應斷言
BeanShell斷言
【定時器】
固定定時器
高斯隨機定時器
Synchronizing Timer
【配置元件】
HTTP信息頭管理器
HTTP Cookie管理器
CSV 數據文件設置
HTTP請求默認值
【監聽器】
查看結果樹
聚合報告
函數助手
經常使用的函數須要掌握,如隨機函數等,舉例:生成1-1000的隨機數,能夠經過${__Random(1,1000,key)}生成隨機數,經過${key}能夠獲取這個隨機數;
分佈式壓測
分佈式壓測也是須要掌握的,參考:jmeter5.1分佈式壓測
另外,beanshell相關的,能夠參考:玩轉jmeter:beanshell必備技能
配置元件 → 前置處理器 → 定時器 → 取樣器 → 後置處理器 → 斷言 → 監聽器;
同一層級的,順序執行;
最後,咱們來看看官方的最佳實踐,地址是:
http://jmeter.apache.org/usermanual/best-practices.html
大概意思是:
Jmeter壓測減小資源使用的一些建議,即壓測結果會更準確:
一、使用非GUI模式(也就是CLI,Command Line Interface,命令行界面):jmeter -n -t test.jmx -l result.jtl
二、少使用Listener, 若是使用-l參數,它們均可以被刪除或禁用
三、在加載測試期間不要使用「查看結果樹」或「用表格查看結果」監聽器,只能在腳本階段使用它們來調試腳本
四、包含控制器在這裏沒有幫助,由於它將文件中的全部測試元素添加到測試計劃中
五、不要使用功能模式
六、使用CSV輸出而不是XML
七、只保存你須要的數據
八、儘量少地使用斷言
九、若是測試須要大量數據,尤爲是須要將其隨機化,能夠提早準備好測試數據放到數據文件中,從CSV數據集中讀取, 這樣能夠避免在運行時浪費資源
若有不許之處,或者補充,請文末留言,謝謝。