1、工具介紹java
(一)簡介正則表達式
Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟件作壓力測試,它最初被設計用於Web應用測試,但後來擴展到其餘測試領域。 它能夠用於測試靜態和動態資源,例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、數據庫、FTP 服務器, 等等。JMeter 能夠用於對服務器、網絡或對象模擬巨大的負載,來自不一樣壓力類別下測試它們的強度和分析總體性能。另外,JMeter可以對應用程序作功能/迴歸測試,經過建立帶有斷言的腳原本驗證你的程序返回了你指望的結果。爲了最大限度的靈活性,JMeter容許使用正則表達式建立斷言。數據庫
Apache jmeter 能夠用於對靜態的和動態的資源(文件,Servlet,Perl腳本,java 對象,數據庫和查詢,FTP服務器等等)的性能進行測試。它能夠用於對服務器、網絡或對象模擬繁重的負載來測試它們的強度或分析不一樣壓力類型下的總體性能。你可使用它作性能的圖形分析或在大併發負載測試你的服務器/腳本/對象。apache
(二)做用編程
1.可以對HTTP和FTP服務器進行壓力和性能測試, 也能夠對任何數據庫進行一樣的測試(經過JDBC)。緩存
2.徹底的可移植性和100% 純java。性能優化
3.徹底 Swing 和輕量組件支持(預編譯的JAR使用 javax.swing.*)包。服務器
4.徹底多線程 框架容許經過多個線程併發取樣和 經過單獨的線程組對不一樣的功能同時取樣。cookie
5.精心的GUI設計容許快速操做和更精確的計時。網絡
6.緩存和離線分析/回放測試結果。
JMeter的高可擴展性
1.可連接的取樣器容許無限制的測試能力。
2.各類負載統計表和可連接的計時器可供選擇。
3.數據分析和可視化插件提供了很好的可擴展性以及個性化。
4.具備提供動態輸入到測試的功能(包括Javascript)。
5.支持腳本編程的取樣器(在1.9.2及以上版本支持BeanShell)。
在設計階段,JMeter可以充當HTTP PROXY(代理)來記錄IE/NETSCAPE的HTTP請求,也能夠記錄apache等WebServer的log文件來重現HTTP流量。當這些HTTP客戶端請求被記錄之後,測試運行時能夠方便的設置重複次數和併發度(線程數)來產生巨大的流量。JMeter還提供可視化組件以及報表工具把量服務器在不一樣壓力下的性能展示出來。
相比其餘HTTP測試工具,JMeter最主要的特色在於擴展性強。JMeter可以自動掃描其lib/ext子目錄下.jar文件中的插件,而且將其裝載到內存,讓用戶經過不一樣的菜單調用。
(三)名詞意義
一、Label: 定義的HTTP請求名稱
二、Samples: 表示此次測試中一共發出了多少個請求
三、Average: 訪問頁面的平均響應時間
四、Min: 訪問頁面的最小響應時間
五、Max: 訪問頁面的最大響應時間
六、Error%: 錯誤的請求的數量/請求的總數
七、Throughput:每秒完成的請求數
八、KB/Sec: 每秒從服務器端接收到的數據量
2、安裝教程
(一)Jmeter下載
進入官網:http://jmeter.apache.org/
1. 第一步進入官網以下
2. 選擇進行下載,下載下來爲一個壓縮包,解壓便可。
3.我下載的是jmeter4.0版本,對應jdk1.8。而後就進行解壓。
我的認爲要注意3點:
1)解壓以後壓縮包叫apache-jmeter-4.0.zip,如是src.zip後綴的都不對,打開以後會報錯不可用,由於裏面缺乏咱們下一步將要配置的環境變量.jar文件。
2)對應的jdk版本不可過低,通常jmeter3.0的對應jdk1.7,jmeter4.0對應jdk1.8以上,否者啓用jmeter也會報錯。
3)必定要確保環境變量配置正確(包括jdk的與jmeter的環境變量配置)。
(二)Jmeter環境變量相關配置
1. 電腦桌面----》「計算機」圖標----》鼠標右鍵選擇「屬性」----》點擊高級系統設置----》高級---》環境變量頁面
2. 開始配置環境變量了。在系統變量框,點擊「新建」,創建一個變量:JMETER_HOME,值爲你解壓的jmeter安裝路徑。個人安裝路徑是在E盤,這個路徑根據本身實際安裝路徑進行填寫。而後點擊肯定保存便可
3. 配置classpath變量,沒有的話也要按照上面步驟進行新建,有的話直接進行選中,點擊編輯便可。變量值固定爲:%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar; 作完以後必定要保存,不肯定的話能夠直接點擊肯定按鈕直到退到個人電腦頁面
4. 基本配置完成,而後驗證一下是否配置正確,是否可用。
首先進到你的jmeter安裝路徑,找到bin文件夾,點擊進去,找到jmeter.bat,鼠標右鍵用管理員方式運行,或者直接雙擊打開,此時會彈出2個界面:1.個是命令窗口,使用jmeter的時候此命令窗口不能關,你縮小到電腦任務欄便可。2.還有一個界面是jmeter工做頁面,你能夠在裏面進行相關的操做.具體如圖
5. 確認安裝是否成功,雙擊jmeter.bat或者以管理員方式運行,頁面以下:
6. jmeter的工做區域以下:,咱們每次使用jmeter的首先打開方式就是進入bin文件下雙擊這個jmeter.bat,若是以爲麻煩,能夠鼠標右鍵快捷方式發送電腦桌面,就會方便不少。
7. 安裝結束。
咱們小組的「代取吧」項目是一個基於移動端的APP,所以在接下里的功能實現以及項目測試中可能會用到jmeter對其進行壓力測試,測試的主要目的是收集併發訪問用戶數和發生錯誤用戶數
下面是使用jmeter進行壓力測試的基本步驟:
(一)Jmeter設置
1.在jmeter/bin路徑下雙擊jmeter.bat 等待jmeter啓動
啓動成功後界面以下:
2.添加線程組:右鍵測試計劃→添加→Threads(Users)→線程組
3.添加簡單控制器:右鍵線程組→添加→邏輯控制器→簡單控制器
4.添加HTTP cookies 管理器:右鍵簡單控制器→添加→配置元件→HTTP cookies 管理器
5.添加CSV數據文件設置:右鍵簡單控制器→添加→配置元件→CSV數據文件設置
6.添加察看結果樹:右鍵線程組→添加→監聽器→察看結果樹
7.添加聚合報告:右鍵線程組→添加→監聽器→聚合報告
8.添加圖形結果:右鍵線程組→添加→監聽器→圖形結果
9.添加HTTP代理服務器:右鍵測試計劃→添加→非測試元件→HTTP 代理服務器
10.配置HTTP代理服務器
·端口:8888
·目標控制器:測試計劃→HTTP代理服務器
·分組:每一個組放入一個新的控制器
(二)配置手機代理
1.在設置→WLAN頁面 開啓手動代理
2.在PC端CMD→ipconfig查看ip 填寫代理服務器主機名
3.填寫代理服務器端口 與HTTP代理服務器端口一致
(三)錄製腳本
1. 在HTTP代理服務器頁面點擊啓動,進入錄製狀態
2. 在手機端操做要壓測的APP
3. 錄製完成後點擊中止
4. 查看錄製腳本(能夠刪除不須要壓測的部分)
(四)使用jmeter進行性能測試
1. 造數據:先看參數要求中須要輸入哪些參數,必傳參數必須有數據,非必傳可造可不造,(csv每行表示每一組參數值,每列表示同一種變量)造好數據後,另存爲csv格式文件
2. 填寫CSV數據文件設置
·文件名:測試數據的路徑
·文件編碼:UTF-8
·其餘:默認便可
3. 參數設置
填寫造了數據的參數,沒造數據的就不用填了,使用 ${參數名稱} 格式,若是參數是固定值就輸入固定值,若是輸入數字就須要在數字前加上英文逗號「,」,例如是年月日格式,參數輸入固定值時就必須輸入「,2014-07-12」。
4. 設置線程屬性
線程組主要包含三個參數:線程數、準備時長(Ramp-Up Period(in seconds))、循環次數。
1)線程數:虛擬用戶數。一個虛擬用戶佔用一個進程或線程。須要設置多少個虛擬用戶數就在這裏填寫多少個線程數。
2)準備時長: 設置的虛擬用戶數須要多長時間所有啓動。若是線程數爲20 ,準備時長爲5 ,那麼須要5秒鐘啓動20個線程。也就是每秒鐘啓動4個線程。
3)循環次數:每一個線程發送請求的次數。若是線程數爲20 ,循環次數爲100 ,那麼每一個線程發送100次請求。總請求數爲20*100=2000 。若是勾選了「永遠」,那麼全部線程會一直髮送請求,直到選擇中止運行腳本。
5. 運行腳本
6. 測試結束後,查看結果樹中的結果是否符合要求,綠色是成功,紅色是失敗,若失敗數過多可從新測試一遍,若失敗數較少,則查看聚合報告結果,通常來講samples越大越好,通常也最好測試900s,或者10000條。而後根據性能測試統計表填寫數據(平均響應時間、最大響應時間、最小響應時間、錯誤率)
聚合報告:
結果分析: 根據需求判斷壓測結果是否知足實際須要,若是誤差太大,就須要進行性能優化。
Tips:在一個空白的測試計劃頁面打開之前保存的測試項目,當彈出下圖提示時,選擇「否」,若是選擇「是」,後面的空白頁將會覆蓋之前保存的配置。