剛剛在打掃衛(wèi)生的時候,就一直在思考近一年以來所學(xué)知識及體系。知識太過于碎片化,整理的東西全寫在筆記本上,日常工作不可能全部用到,所以復(fù)習(xí)很重要。因此開始準備將一些知識寫在隨筆里邊,用于知識體系的重建,知識的總結(jié)。
敲定了之后,便開始動手吧!
就從Jmeter開始吧!那么就先介紹一下今天的豬腳吧!
Apache JMeter是Apache組織開發(fā)的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設(shè)計用于Web應(yīng)用測試,但后來擴展到其他測試領(lǐng)域。 它可以用于測試靜態(tài)和動態(tài)資源,例如靜態(tài)文件、Java小服務(wù)程序、CGI 腳本、Java 對象、數(shù)據(jù)庫、FTP 服務(wù)器, 等等。JMeter 可以用于對服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。另外,JMeter能夠?qū)?yīng)用程序做功能/回歸測試,通過創(chuàng)建帶有斷言的腳本來驗證你的程序返回了你期望的結(jié)果。為了最大限度的靈活性,JMeter允許使用正則表達式創(chuàng)建斷言。
Apache jmeter 可以用于對靜態(tài)的和動態(tài)的資源(文件,Servlet,Perl腳本,java 對象,數(shù)據(jù)庫和查詢,FTP服務(wù)器等等)的性能進行測試。它可以用于對服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M繁重的負載來測試它們的強度或分析不同壓力類型下的整體性能。你可以使用它做性能的圖形分析或在大并發(fā)負載測試你的服務(wù)器/腳本/對象。
----百度百科
TheApache JMeter?application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.
What can I do with it?
Apache JMeter may be used to test performance both on static and dynamic resources, Web dynamic applications.
It can be used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types.
Apache JMeter features include:
Ability to load and performance test many different applications/server/protocol types:
Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
SOAP / REST Webservices
FTP
Database via JDBC
LDAP
Message-oriented middleware (MOM) via JMS
Mail - SMTP(S), POP3(S) and IMAP(S)
Native commands or shell scripts
TCP
Java Objects
Full featured Test IDE that allows fast Test Planrecording (from Browsers or native applications), building and debugging.
Command-line mode (Non GUI / headless mode)to load test from any Java compatible OS (Linux, Windows, Mac OSX, …)
A complete andready to present dynamic HTML report
Easy correlation through ability to extract data from most popular response formats,HTML,JSON?,XMLorany textual format
Complete portability and100% Java purity.
Fullmulti-threadingframework allows concurrent sampling by many threads and simultaneous sampling of different functions by separate thread groups.
Caching and offline analysis/replaying of test results.
Highly Extensible core:
Pluggable Samplers allow unlimited testing capabilities.
Scriptable Samplers(JSR223-compatible languages likeGroovyand BeanShell)
Several load statistics may be chosen withpluggable timers.
Data analysis andvisualization pluginsallow great extensibility as well as personalization.
Functions can be used to provide dynamic input to a test or provide data manipulation.
Easy Continuous Integration through 3rdparty Open Source libraries for Maven, Graddle and Jenkins? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ---------官方介紹(傳送門:http://jmeter.apache.org/)
個人見解:Jmeter是一款十分優(yōu)秀的工具,不過筆者覺得它和平常的工具不一樣;首先Jmeter是跨系統(tǒng)的,在windows、Mac、Linux均可使用;一方面在于它支持豐富的協(xié)議(HTTP、FTP、JDBC、SOCKET。。。);功能方面也相對比較健全(各種各樣的邏輯處理,如條件判斷,循環(huán),僅一次等等);各種檢查點,對文本、Java對象均可進行處理;豐富的圖表展示;此外還有許多第三方插件支持以及第三方集成;且最重要的是開源的。。。
Jmeter安裝:
Jmeter是在JVM上運行的,因此必須先要安裝JDK,不過切記一點,截至今天,Jmeter已經(jīng)更新到3.3版本,它是不支持JDK1.9的,切記!

傳送門(http://jmeter.apache.org/download_jmeter.cgi)
至于JDK安裝以及環(huán)境變量配置,此處便不再列舉;
Jmeter環(huán)境變量配置:
1,變量名:JMETER_HOME
? 變量值:E:\apache-jmeter-3.2(根據(jù)自己的解壓目錄而定,筆者使用的是Jmeter3.2的版本)
2,變量名:CLASSPATH
? 變量值:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;
OK,環(huán)境變量配置結(jié)束,可以至E:\apache-jmeter-3.2\bin(安裝目錄下bin目錄)下尋找jmeter.bat文件,雙擊打開。(可能安裝會遇到各種各樣的問題,筆者曾經(jīng)在某些技術(shù)群中發(fā)現(xiàn)有不用配置環(huán)境變量便可以使用(至于到底什么情況,不是當事者也不清楚);還有找不到bat文件(系統(tǒng)默認將后綴名進行隱藏掉了嘛))


? 看到上方小黑窗,隨后下方Jmeter的彈窗跳出來。那么恭喜你,Jmeter已經(jīng)被你給拿下了。
可以觀察該小黑窗中的同時內(nèi)容,
Don't use GUI mode for load testing, only for Test creation and Test debugging !
For load testing, use NON GUI Mode:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to output folder]
& adapt Java Heap to your test requirements:
Modify HEAP="-Xms512m -Xmx512m" in the JMeter batch file
不要使用GUI模式進行負載測試,只用于測試創(chuàng)建和調(diào)試!---------------------what mean?
GUI模式----便是下方的彈窗,此處的意思便是推薦使用GUI模式進行創(chuàng)建腳本以及調(diào)試腳本,不推薦進行負載測試(所謂負載測試是屬于性能測試的一種類型,通過測試系統(tǒng)在資源超負荷情況下的表現(xiàn),以發(fā)現(xiàn)設(shè)計上的錯誤和驗證系統(tǒng)的負載能力,在這種測試中,將使測試對象承擔(dān)不同的工作量,以評測和評估測試對象在不同工作量條件下的性能行為,以及持續(xù)正常運行的能力;負載測試的目的是確定并確保系統(tǒng)在超出最大預(yù)期工作量的情況下仍能正常運行,此外,負載測試還要評估性能特征;例如:響應(yīng)時間、事務(wù)處理速率和其他與時間相關(guān)方面),因此可以看出負載測試是比較浪費系統(tǒng)資源的,GUI界面本身便很浪費資源,因此如果出現(xiàn)大并發(fā)或者機器處于大負載的情況下,非但不會得到你想要的結(jié)果,機器是必然會出現(xiàn)卡死的情況。
不過,小黑窗的下方一段話也給出了解決方案:
For load testing, use NON GUI Mode:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to output folder]
& adapt Java Heap to your test requirements:
Modify HEAP="-Xms512m -Xmx512m" in the JMeter batch file
對于負載測試使用no-GUI的方式進行運行:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to output folder]
這段命令便是NO-GUI的方式運行。
或者進行修改堆內(nèi)存的大小:
Jmeter的默認堆為512m,因此,如果使用Jmeter進行負載測試建議將堆內(nèi)存進行修改到合適的大?。?/p>
修改方法:
至E:\apache-jmeter-3.2\bin,使用文本編輯器模式將jmeter.bat文件打開,進行修改heap:

? 修改此處的堆內(nèi)存大小只是一種手段,但并不是萬能的。因此,做負載測試還是需要進行謹慎分析,再下結(jié)論。
OK,本篇先記錄到這。。
歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處。 限于本人水平,如果文章和代碼有表述不當之處,還請不吝賜教。 ---紫陌花間客