剛剛在打掃衛(wèi)生的時(shí)候,就一直在思考近一年以來(lái)所學(xué)知識(shí)及體系。知識(shí)太過(guò)于碎片化,整理的東西全寫在筆記本上,日常工作不可能全部用到,所以復(fù)習(xí)很重要。因此開始準(zhǔn)備將一些知識(shí)寫在隨筆里邊,用于知識(shí)體系的重建,知識(shí)的總結(jié)。
敲定了之后,便開始動(dòng)手吧!
就從Jmeter開始吧!那么就先介紹一下今天的豬腳吧!
Apache JMeter是Apache組織開發(fā)的基于Java的壓力測(cè)試工具。用于對(duì)軟件做壓力測(cè)試,它最初被設(shè)計(jì)用于Web應(yīng)用測(cè)試,但后來(lái)擴(kuò)展到其他測(cè)試領(lǐng)域。 它可以用于測(cè)試靜態(tài)和動(dòng)態(tài)資源,例如靜態(tài)文件、Java小服務(wù)程序、CGI 腳本、Java 對(duì)象、數(shù)據(jù)庫(kù)、FTP 服務(wù)器, 等等。JMeter 可以用于對(duì)服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M巨大的負(fù)載,來(lái)自不同壓力類別下測(cè)試它們的強(qiáng)度和分析整體性能。另外,JMeter能夠?qū)?yīng)用程序做功能/回歸測(cè)試,通過(guò)創(chuàng)建帶有斷言的腳本來(lái)驗(yàn)證你的程序返回了你期望的結(jié)果。為了最大限度的靈活性,JMeter允許使用正則表達(dá)式創(chuàng)建斷言。
Apache jmeter 可以用于對(duì)靜態(tài)的和動(dòng)態(tài)的資源(文件,Servlet,Perl腳本,java 對(duì)象,數(shù)據(jù)庫(kù)和查詢,FTP服務(wù)器等等)的性能進(jìn)行測(cè)試。它可以用于對(duì)服務(wù)器、網(wǎng)絡(luò)或?qū)ο竽M繁重的負(fù)載來(lái)測(cè)試它們的強(qiáng)度或分析不同壓力類型下的整體性能。你可以使用它做性能的圖形分析或在大并發(fā)負(fù)載測(cè)試你的服務(wù)器/腳本/對(duì)象。
----百度百科
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/)
個(gè)人見(jiàn)解:Jmeter是一款十分優(yōu)秀的工具,不過(guò)筆者覺(jué)得它和平常的工具不一樣;首先Jmeter是跨系統(tǒng)的,在windows、Mac、Linux均可使用;一方面在于它支持豐富的協(xié)議(HTTP、FTP、JDBC、SOCKET。。。);功能方面也相對(duì)比較健全(各種各樣的邏輯處理,如條件判斷,循環(huán),僅一次等等);各種檢查點(diǎn),對(duì)文本、Java對(duì)象均可進(jìn)行處理;豐富的圖表展示;此外還有許多第三方插件支持以及第三方集成;且最重要的是開源的。。。
Jmeter安裝:
Jmeter是在JVM上運(yùn)行的,因此必須先要安裝JDK,不過(guò)切記一點(diǎn),截至今天,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文件,雙擊打開。(可能安裝會(huì)遇到各種各樣的問(wèn)題,筆者曾經(jīng)在某些技術(shù)群中發(fā)現(xiàn)有不用配置環(huán)境變量便可以使用(至于到底什么情況,不是當(dāng)事者也不清楚);還有找不到bat文件(系統(tǒng)默認(rèn)將后綴名進(jìn)行隱藏掉了嘛))


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

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