以前公衆號推文一上手就分享如何測接口, 其實忽略了一些概念性的東西, 今天來給你們拾遺補缺, 作個回顧吧.html
一. JMeter介紹java
jmeter能作什麼,來自官網的解釋:web
Ability to load and performance test many different applications/server/protocol types:正則表達式
Jmeter能夠模擬大量負載測試網絡或者對象, JMeter是用java語言開發的application,比較消耗memory和CPU, 當模擬大併發用戶時候, 單臺模擬就有些力不從心. 同時jmeter能夠幫助咱們進行迴歸測試, 經過測試腳本和斷言來驗證程序返回的預期值.shell
JMeter與 LR 比較:數據庫
Jmeter是apache 組織下的開源測試工具(長得不太英俊), 與LR比較有不少不足, 可是它具有不少優勢, 讓無數測試工程師對它欲罷不能, 而放棄了LR的華而不實(雖然很帥, 但功能太多,上手困難).apache
LR運行環境沒法脫離windows, 且是商業收費軟件.json
缺點:windows
Jmeter不支持IP欺騙, LR支持.centos
結果分析能力相對LR不夠詳細.
二 .Jmeter 下載安裝
1)安裝
官網提供jmeter 版本下載: http://jmeter.apache.org/
jmeter 3.2之後版本都須要jdk1.8 環境
2)插件安裝
下載插件後到%jmeter_home%/lib/ext目錄下, 重啓jmeter便可生效
3)運行jmeter
1. 進入bin目錄運行jmeter
windows環境, 進入jmeter/bin 目錄, jmeter.bat便可運行jmeter
Mac os, Ubuntu等環境, 進入jmeter/bin 目錄, 點擊jmeter 便可運行jmeter
2.語言選擇
菜單: 選項->選擇語言->選擇我的喜愛的語言
3. classPath
若是是本身開發的jar包在jmeter中使用, 那方法和插件是同樣的, 放在lib/ext目錄下
三.Jmeter測試計劃
1)test plan
打開jmeter默認已經建立了測試計劃
來自官網的說明, 能夠建立多種test plan
2) Threads
是全部真正開始線程併發以前的準備工做,必須是在線程組開始以前完成而且擁有本身獨立的線程設置;setUp Thread Group相似於lr的init.可用於執行預測試操做。
是全部線程執行測試結束後執行按期的線程組. 擁有本身獨立的線程設置;
tearDown Thread Group相似於lr的end.可用於執行測試後動做。
咱們一般添加運行的線程。能夠看作是一個虛擬用戶組,線程組中的每一個線程均可以理解爲一個虛擬用戶。線程組中包含的線程數量在測試執行過程當中是不會發生變化的.
Ramp-Up Period(in seconds)表示在這個時間內建立完全部的線程。若有3個線程,Ramp-Up=10秒,那麼線程的啓動時間間隔爲10/3=3.33秒. 這樣的好處是:一開始不會對服務器有太大的負載,線程組是爲模擬併發負載而設計。
循環次數:表示每一個線程執行多少次請求
3)模板
模板是一個很是好用功能
點擊模板, jmeter GUI已經爲你預約好了各類test plan,選擇一個本身須要的類型, 所見即所得的建立線程組裏的內容, 你只要作的就是修修改改
這種方式爲咱們節省了不少時間
4)Sampler
這個咱們很是熟悉了, HTTP Request Sampler 、 FTP Request Sampler 、TCP Request Sampler 、 JDBC Request Sampler 等,每一種不一樣類型的 sampler 能夠根據設置的參數向服務器發出不一樣類型的請求,其中還有兩種比較特殊的sampler, java sampler和Beanshell sampler
5)Timer
定時器用於設置等待時間. 等待時間是性能測試中經常使用的控制客戶端QPS/TPS的手段。相似於LoadRunner裏面的「thinktime」。 JMeter 定義了Bean Shell Timer、Constant Throughput Timer、固定定時器等不一樣類型的Timer。
6) Pre-Processor Elements
意爲前置處理器,用於對於取樣器進行處理,且是在sampler啓動以前執行,此處和後置處理器是有所區別的, 如用戶參數 beanshell PreProcess 等
7) Post-Processor Elements
在測試過程當中,常常須要從響應數據中找到某些參數,做爲下一個請求的參數,這時候須要用到後置處理器 如正則表達式, json取樣器, beanshell PostProcess,就屬於這一類
8) Assertions
斷言就不用多介紹了, 咱們常常在使用, 同時jmeter提供豐富的斷言, 還能夠組合着一塊兒用.
9) Listeners
監聽器提供了不少豐富的結果信息, 包含圖形的和數字的, 是用來對測試結果數據進行處理和可視化展現的一系列元件, 圖形結果、查看結果樹、聚合報告、用表格察看結果都是咱們常常用到的元件
10) Configuration Elements
配置元件, 相似的有csv 數據元件, http信息管理頭, http cookie管理器, 用戶定義變量, 計數器, 隨機變量等 都屬於配置元件.
配置元件在咱們的線程組裏常常出現, 好比接收到的cookie能夠存儲爲JMeter線程變量。要將cookie保存爲變量,需定義屬性「cookiemanager .save.cookie =true」
11) Execution order
執行順序, 來自官網的解釋
12) Properties and Variables
屬性和變量, jmeter的屬性都定義在jmeter.properties,這個屬性做用域是global的, 用戶也能夠自定義變量
13) jmeter命令行
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
Modify current env variable HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
今日精選推薦
諮詢工做加微信
掃描二維碼
歡迎自薦和推薦, 須要的微信推送簡歷!
請猛戳下面二維碼瞭解更多