JMeter入門

JMeter簡介

JMeter基本概念

Apache JMeter是Apache組織開發(fā)的基于Java的壓力測試工具某饰。用于對軟件做壓力測試蹋艺,它最初被設計用于Web應用測試剃袍,但后來擴展到其他測試領域。 它可以用于測試靜態(tài)和動態(tài)資源捎谨,例如靜態(tài)文件民效、Java 小服務程序、CGI 腳本涛救、Java 對象畏邢、數(shù)據(jù)庫、FTP 服務器检吆, 等等舒萎。JMeter 可以用于對服務器、網(wǎng)絡或?qū)ο竽M巨大的負載蹭沛,來自不同壓力類別下測試它們的強度和分析整體性能臂寝。另外,JMeter能夠?qū)贸绦蜃龉δ?回歸測試致板,通過創(chuàng)建帶有斷言的腳本來驗證你的程序返回了你期望的結(jié)果交煞。為了最大限度的靈活性,JMeter允許使用正則表達式創(chuàng)建斷言斟或。

為什么要使用JMeter

  • 開源免費素征,基于Java編寫,可集成到其他系統(tǒng)可拓展各個功能插件
  • 支持接口測試萝挤,壓力測試等多種功能御毅,支持錄制回放,入門簡單
  • 相較于自己編寫框架活其他開源工具怜珍,有較為完善的UI界面端蛆,便于接口調(diào)試
  • 多平臺支持,可在Linux酥泛,Windows今豆,Mac上運行

JMeter安裝配置

Windowns下安裝

  1. 點擊下載,根據(jù)自己將要使用的平臺柔袁,下載相應的文件
    Jmeter1.jpg
  2. 安裝JDK力喷,配置環(huán)境變量
  • JAVA_HOME【C:\Program Files\Java\jdk1.8.0_73】
  • classpath【.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar】
  • Path【;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;】
  1. 解壓下載的JMeter壓縮包比驻,打開/bin/jmeter.bat


    Jmeter2.jpg

    Jmeter3.jpg

配置環(huán)境變量
JMETER_HOME【E:\1-必備工具\35-JMeter\apache-jmeter-4.0】
Path【;%JMETER_HOME%\bin】

其它平臺安裝

與windowns一致,除打開入口不同,如Linux下/bin/jmeter.sh

JMeter目錄結(jié)構(gòu)

Jmeter4.jpg
  1. bin目錄常用文件介紹
  • examples:目錄下包含Jmeter使用實例
  • ApacheJMeter.jar:JMeter源碼包
  • jmeter.bat:windows下啟動文件
  • jmeter.sh:Linux下啟動文件
  • jmeter.log:Jmeter運行日志文件
  • jmeter.properties:Jmeter配置文件
  • jmeter-server.bat:windows下啟動負載生成器服務文件
  • jmeter-server:Linux下啟動負載生成器文件
  1. /docs目錄——Jmeter幫助文檔
  2. /extras目錄——提供了對Ant的支持文件蔼水,可也用于持續(xù)集成
  3. /lib目錄——存放Jmeter依賴的jar包牺荠,同時安裝插件也放于此目錄
  4. /licenses目錄——軟件許可文件,不用管
  5. /printable_docs目錄——Jmeter用戶手冊

JMeter插件安裝

JMeter插件安裝很簡單,只需要下載相應的插件解壓即可酝润。

  1. 點擊下載
  2. 下載后解壓放入:apache-jmeter-2.12\lib\ext\目錄下
  3. 重啟jmeter

數(shù)據(jù)庫鏈接驅(qū)動如果需要需要專門下載,例如mysql需要jdbc的jar包璃弄,地址:http://dev.mysql.com/downloads/file/?id=462850
使用注意事項:添加第三方插件并使用后保存的jmx文件在未添加該插件的運行環(huán)境下會導致無法打開該文件并報錯要销,請保持環(huán)境一致性。

JMeter命令行模式

  1. 配置環(huán)境變量
    JMETER_HOME 【E:\1-必備工具\33-雜亂工具\apache-jmeter-4.0】
    path 【;%JMETER_HOME%\bin】
  2. 命令:
    jmeter -n -t <testplan filename> -l <listener filename>
  3. 參數(shù):
    -h 幫助 -> 打印出有用的信息并退出
    -n 非 GUI 模式 -> 在非 GUI 模式下運行 JMeter
    -t 測試文件 -> 要運行的 JMeter 測試腳本文件
    -l jtl文件 -> 記錄結(jié)果的文件
    -r 遠程執(zhí)行 -> 啟動遠程服務
    -H 代理主機 -> 設置 JMeter 使用的代理主機
    -P 代理端口 -> 設置 JMeter 使用的代理主機的端口號
    -j 日志文件->設置JMeter日志文件的名稱

JMeter分布式測試(windows下)

作為一個純 JAVA 的GUI應用谢揪,JMeter 對于CPU和內(nèi)存的消耗還是很驚人的蕉陋,所以當需要模擬數(shù)以千計的并發(fā)用戶時,使用單臺機器模擬所有的并發(fā)用戶就有些力不從心拨扶,甚至還會引起JAVA內(nèi)存溢出的錯誤。不過茁肠,JMeter 也可以像 LoadRunner 一樣通過使用多臺機器運行所謂的 Agent 來分擔 Load Generator 自身的壓力患民,并借此來獲取更大的并發(fā)用戶數(shù)。

  1. 在所有期望將JMeter作為Load Generator(負載生成器)的機器上安裝JMeter垦梆,并確定其中一臺作為Controller匹颤,其他的機器作為Agent。然后運行所有Agent機器上的JMeter-server.bat文件(假定使用192.168.0.11和192.168.0.12作為Agent托猩,Agent機器上必須安裝JDK印蓖,并設置環(huán)境變量)
  2. 在Controller機器的%JMETER_HOME%\bin下,找到JMeter.properties文件京腥,編輯該文件赦肃,查找“remote_hosts=”這個字符串,可以找到這樣一行“remote_hosts=127.0.0.1”公浪。其中的127.0.0.1表示運行JMeter Agent的機器他宛,這里需要修改成為“remote_hosts=192.168.0.11:1099,192.168.0.12:1099”(其中1099為端口號)。一般資料顯示1644為JMeter的Controller和Agent之間進行通訊的RMI端口號欠气,但是在測試時發(fā)現(xiàn)設置的1644運行不成功厅各,改成1099后運行通過。
  3. 雙擊啟動Controller機器上的jmeter.bat预柒,選擇菜單Rum->Remote Start队塘,將會看到有兩臺Agent。

常見問題:

  1. 確定在controller機器上安裝jdk宜鸯,版本和jmeter一致憔古,配置環(huán)境變量:Java_home等
    在Agent機器上安裝jdk,配置環(huán)境變量:Java_home和JMeter_home
  2. 在Controller端上控制某臺機器Run顾翼,提示"Bad call to remote host"投放。
    解決方法:檢查被控制機器上的jmeter-server有沒有啟動,或者JMeter.properties中remote_hosts的端口配置錯誤适贸。
  3. Agent機器啟動Jmeter_server.bat時灸芳,后臺提示:"could not find ApacheJmeter_core.jar"
    解決方法:確定在Agent機器安裝jdk涝桅,并設置環(huán)境變量:java_home、path烙样、classpath和jmeter_home
  4. 查看1099端口是否被占用
    netstat -ano | findstr "1099"
    tasklist | findstr "1099"
  5. 啟動遠程時冯遂,報錯:


    Jmeter6.jpg

    只要將本機的jmter-server.bat執(zhí)行即可。要是在jmeter.properties配置的地方寫了127.0.0.1 的話就要開本機的 jmeter-sever.bat.谒获。不寫的話就不用開了蛤肌。

JMeter使用

  1. 切換中文
  • 【Options】--> 【Choose Language】--> 【Chinese】


    Jmeter5.jpg
  • Jmeter_home/bin/jmeter.properties,設置language=zh_CN
  1. 正則表達式

    Jmeter9.jpg

    引用名稱:代表下一個請求要引用的參數(shù)名稱批狱,如填寫“openid”裸准,那么則可用“${openid}”引用它。
    正則表達式:
    ():括起來的部分就是要取的
    . :匹配任何字符
    +:一次或多次
    赔硫?:在找到第一個匹配項后停止
    模板:用$$引起來炒俱,$2$表示取第2個值給openid
    匹配:匹配多個值時,0代表隨機取值爪膊,1代表取第一個
    缺省值:如果參數(shù)沒有取到值权悟,那就默認給它一個值

  2. 圖形結(jié)果

    圖形結(jié)果.jpg

    樣本數(shù)目:總共發(fā)送到服務器的請求數(shù)。
    最新樣本:代表時間的數(shù)字推盛,是服務器響應最后一個請求的時間峦阁。
    吞吐量:服務器每分鐘處理的請求數(shù)。
    平均值:是總運行時間除以發(fā)送到服務器的請求數(shù)耘成,即每個請求的平均響應時間榔昔。
    中間值:是代表時間的數(shù)字,有一半的服務器響應時間低于該值而另一半高于該值凿跳。
    偏離:表示服務器響應時間變化件豌、離散程度測量值的大小,即數(shù)據(jù)的分布控嗜。

  3. 聚合報表

    聚合報告.jpg

    90%line:90%的響應時間都比這個時間小
    Min:代表時間的數(shù)字,是服務器響應的最短時間茧彤。
    Max:代表時間的數(shù)字,是服務器響應的最長時間。
    Error%:請求的錯誤百分比疆栏。
    KB/sec:是每秒鐘請求的字節(jié)數(shù)曾掂。

  4. 操作mysql數(shù)據(jù)庫
    操作數(shù)據(jù)庫基本有四個步驟:

  • 導入mysql的jdbc的jar包,存放到\apache-jmeter-4.0\lib下壁顶;
  • 創(chuàng)建數(shù)據(jù)庫的連接配置珠洗,線程組里添加配置元件-JDBC Connection Configuration;


    JDBC.jpg
  • 線程組里添加jdbc request若专,寫sql語句许蓖;


    JDBC_1.jpg
  • 添加察看結(jié)果樹,點擊啟動按鈕,就能看到執(zhí)行的SQL膊爪。


    JDBC_2.jpg

    特別說明:jmeter還可以操作oracle自阱、postgreSQL、msSQL米酬、mongodb等等數(shù)據(jù)庫沛豌,同時不同的數(shù)據(jù)庫,JDBC Connection Configuration填寫的Database url格式和JDBC Driver驅(qū)動名稱也不相同赃额。jmeter數(shù)據(jù)庫驅(qū)動列表如下表所示:


    JDBC_3.jpg

    JDBC Driver class是固定的加派,Jmeter操作各類數(shù)據(jù)的Driver參考下圖;
    jdbc_4.jpg
  1. jmeter3.2以后沒有SOAP/XML-Request

  2. Jmeter的參數(shù)化方法

  • 利用函數(shù)助手獲取參數(shù)值
    選項->函數(shù)助手對話框
    __CSVRead
    生成的函數(shù)字符串: ${__CSVRead(,)}第一個參數(shù)是文件名(包含路徑)跳芳,第二個參數(shù)是文件中的列(列數(shù)從0開始)芍锦;
    csvread.jpg

    csvread1.jpg

__Random
生成的函數(shù)字符串:${__Random(,,)}第一個參數(shù)為隨機數(shù)的下限,第二個參數(shù)為隨機數(shù)的上限筛严,第三個參數(shù)為儲存隨機數(shù)的變量名醉旦;

random.jpg

r.jpg

  • 利用配置元件(CSV Data Set Config)
    選中線程組,右擊桨啃,添加->配置元件->CSV Data Set Config


    csv.jpg

選中線程組,右擊檬输,添加->sampler->HTTP 請求照瘾,在http請求參數(shù)中引用變量


http.jpg
  • 用戶自定義變量
    選中純種組,右擊丧慈,添加->配置元件->用戶自定義變量


    用戶自定義變量.jpg
  1. HTTP Cookie Manager
    用于需要登錄cookie的接口中

JMeter使用注意事項

  1. 變量問題
    使用過程中析命,一定要注意控件的執(zhí)行順序以及變量的作用域。

  2. 路徑問題
    Windows下支持"/"""并存模式逃默,推薦使用"/"鹃愤,方便跨平臺使用。
    在linux格式下支持"/"格式完域。

  3. Jmeter自身性能問題
    命令行模式:命令相同软吐。
    UI模式:操作方式相同,但會存在windows下能打開linux下打不開的情況吟税,暫不知道原因凹耙。

監(jiān)控內(nèi)存及CPU等(jconsole)

  1. 直接點擊:開始——》運行——》輸入cmd——》然后在出現(xiàn)的命令行界面輸入“jconsole”即可彈出一個【java監(jiān)視和管理控制臺】


    3.jpg
  2. 選擇本地進程,并點擊一下sun.tools.jconsole.JConsole這一行肠仪,然后點擊連接
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肖抱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子异旧,更是在濱河造成了極大的恐慌意述,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異荤崇,居然都是意外死亡拌屏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門天试,熙熙樓的掌柜王于貴愁眉苦臉地迎上來槐壳,“玉大人,你說我怎么就攤上這事喜每∥裉疲” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵带兜,是天一觀的道長枫笛。 經(jīng)常有香客問我,道長刚照,這世上最難降的妖魔是什么刑巧? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮无畔,結(jié)果婚禮上啊楚,老公的妹妹穿的比我還像新娘。我一直安慰自己浑彰,他們只是感情好恭理,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著郭变,像睡著了一般颜价。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上诉濒,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天周伦,我揣著相機與錄音,去河邊找鬼未荒。 笑死专挪,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的茄猫。 我是一名探鬼主播狈蚤,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼划纽!你這毒婦竟也來了脆侮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤勇劣,失蹤者是張志新(化名)和其女友劉穎靖避,沒想到半個月后潭枣,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡幻捏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年盆犁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篡九。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡谐岁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出榛臼,到底是詐尸還是另有隱情伊佃,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布沛善,位于F島的核電站航揉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏金刁。R本人自食惡果不足惜帅涂,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尤蛮。 院中可真熱鬧媳友,春花似錦、人聲如沸产捞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽轧葛。三九已至,卻和暖如春艇搀,著一層夾襖步出監(jiān)牢的瞬間尿扯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工焰雕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衷笋,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓矩屁,卻偏偏與公主長得像辟宗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子吝秕,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 在使用Jmeter進行接口的性能測試時泊脐,由于Jmeter 是JAVA應用,對于CPU和內(nèi)存的消耗比較大烁峭,所以容客,當需...
    燕京博士閱讀 4,168評論 0 16
  • 轉(zhuǎn)自:http://www.reibang.com/p/ce0e4cf5dbc7 首先了解下什么是接口測試: 一秕铛、...
    夜境閱讀 646評論 1 1
  • 本文版權歸xmeter.net[http://www.xmeter.net]所有。歡迎轉(zhuǎn)載缩挑,轉(zhuǎn)載請注明出處但两。 簡介...
    XMeter性能測試云服務閱讀 204,991評論 29 204
  • 我終于將戴了三年的碧玉珠取了下來,轉(zhuǎn)身換上了一根純金項鏈供置,墜子也是金的谨湘。看著鏡子里畫風陡轉(zhuǎn)的人芥丧,陌生到想要落淚紧阔。 ...
    繹如閱讀 236評論 0 2
  • 我的家鄉(xiāng)位于華北平原腹地,西有魏巍太行娄柳,北有起伏燕山寓辱,東可觀浩瀚渤海,實乃沃野千里之地赤拒,人杰地靈之鄉(xiāng)秫筏。 這里自古就...
    地中海的傳說閱讀 1,222評論 0 2