最近在看neo4j相關的官網文檔以及一些調優參數,同時也學了下Jmeter,爲了測試下neo4j服務的性能,雖然不是專業搞測試的,可是我以爲每一個優秀的開發者都應該學會主動壓測本身服務和代碼的性能,並不是寫完代碼以後直接扔給測試就完事了,兵法雲:知彼知己,才能百勝不殆嘛。java
jmeter是一款開源的測試工具,源碼100%基於java並開源,最初的設計目的是用來測試Web應用的,因爲其很是輕量級和免費,後來又擴展到其餘測試領域。apache
1.可以對HTTP,FTP,TCP,JDBC等服務器進行壓力和性能測試,編程
2.徹底的可移植性和100% 純java。windows
3.徹底 Swing 和輕量組件支持(預編譯的JAR使用 javax.swing.*)包。緩存
4.徹底多線程 框架容許經過多個線程併發取樣和 經過單獨的線程組對不一樣的功能同時取樣。服務器
5.精心的GUI設計容許快速操做和更精確的計時。微信
6.緩存和離線分析/回放測試結果。多線程
1.可連接的取樣器容許無限制的測試能力。併發
2.各類負載統計表和可連接的計時器可供選擇。框架
3.數據分析和可視化插件提供了很好的可擴展性以及個性化。
4.具備提供動態輸入到測試的功能(包括Javascript)。
5.支持腳本編程的取樣器(在1.9.2及以上版本支持BeanShell)。
Samples:樣本數
Average:平均響應時間
Median:中位數,50%響應時間小於此值
90%line:90%響應時間小於此值
Min:最短響應時間
Max:最大響應時間
Error:未命中數/比率
Throughput:吞吐量——每秒完成請求事務數【能夠理解成tps或者qps,通常100用戶壓15min左右,其值會在800左右——不少地方並無嚴格去計較,就像tps和qps概念是不同的,但是不少時候能夠混爲一談】
Kb/sec:每秒接收數據量
下載地址: http://ftp.kddilabs.jp/infosystems/apache/jmeter/binaries/apache-jmeter-3.1.tgz
jmeter是java寫的,因此要求你的電腦上須要先提早安裝JDK,在windows上直接解壓下載後的壓縮包,而後進入
apache-jmeter-3.1\bin目錄
雙擊jmeter.bat啓動,看到下面的一個UI
注意,jmeter已經有多語言支持,若是是英文語言版本的咱們能夠在上圖的設置選項裏面改成中文設置。
如何對百度首頁url進行一次性能測試? (GET請求)
(1)右擊 測試計劃=>添加=>Threads (Users)=>線程組 注意名稱我已經改爲百度首頁測試
(2)右擊 百度首頁測試=>添加=>Sampler=>HTTP請求
(3) 添加結果集展現或聚合報告
上圖裏面有不少的結果集報告,你們能夠根據狀況添加
我這裏添加了三個
(一)右擊 百度首頁測試=>添加=>監聽器=>察看結果樹(很是重要,相似debug,有詳細的請求響應體,初學者建議必定要添加,不然出了問題,你根本看不到提示)
(二)右擊 百度首頁測試=>添加=>監聽器=>用表格察看結果(單次請求詳細報告)
(三)右擊 百度首頁測試=>添加=>監聽器=>聚合報告(全部的請求報告額外加入彙總聚合報告)
對neo4j的一個rest接口進行一次批量測試,(post請求+用戶名密碼認證+http header參數設置)
注意例子一不用的時候,能夠禁用,不影響另外一個測試,jmeter裏面的全部子組件均可以禁用,而後測試的時候,會忽略這個組件,這個功能,很是實用,建議你們嘗試一下:
(1)線程組裏面配置1000次樣本壓測:
(2)HTTP請求的一些參數設置: 注意此次HTTP請求下面多了兩個組件:
(A) HTTP請求=>添加=>配置元件=>HTTP受權管理器(管理post的用戶名和密碼)
(B) HTTP請求=>添加=>配置元件=>HTTP信息頭管理器(管理請求頭攜帶參數)
(3)此次結果裏面多加了圖形結果,這個結果是以圖表的方式展現,適合大批量的測試 時候觀察性能的:
總結:
從上圖能夠很是漂亮的看出壓測結果,底部有平均響應時間,很是方便,此外 整個配置項最後能夠保存成一個jmx文件,之後再次啓動jmeter依然存在。從總體體驗來講 jmeter仍是很是不錯的,開發人員掌握這個之後,如虎添翼,隨時隨刻都能對本身的服務進行一個壓力評測。
官網連接:http://jmeter.apache.org/
有什麼問題能夠掃碼關注微信公衆號:我是攻城師(woshigcs),在後臺留言諮詢。 技術債不能欠,健康債更不能欠, 求道之路,與君同行。