Linux下 运行Jmeter (含一个jmeter简单示例)
1. ?用Jmeter進行打壓測試 如果可以打開圖形界面,則可以參看圖形界面的使用教程; 此外,在Linux下用命令行進行測試。
1.1 在圖形界面編輯打壓測試腳本 參考《Jmeter教程 簡單的壓力測試》:http://www.cnblogs.com/TankXiao/p/4059378.html
其實所謂的腳本文件,就是用圖形界面配置好信息后保存的jmx文件,jmx是一個xml格式的文本,可以用來在命令行作為參數執行。
以下流程是在《Jmeter教程 簡單的壓力測試》的基礎上根據 Y公司 的測試習慣做得補充和修改:
什么是壓力測試? 顧名思義:壓力測試,就是 ?被測試的系統,在一定的訪問壓力下,看程序運行是否穩定/服務器運行是否穩定(資源占用情況)
比如: 2000個用戶同時到一個購物網站購物,這些用戶打開頁面的速度是否會變慢,或者網站是否會奔潰
做壓力測試的常用工具
做壓力測試,一般要使用工具, 人工是沒辦法做的。 ? 最常用的工具是LoadRunner, 但是LoadRunner畢竟是收費軟件,而且使用上也比較復雜。 現在越來越多的人開始使用Jmeter來做壓力測試。 免費, 而且使用上非常簡單。
?做壓力測試的步驟如下:
1. 寫腳本 或者錄制腳本
2. 使用用戶自定義參數
3. 場景設計
4. 使用控制器,來控制 模擬多少用戶。
5. 使用監聽器, 查看測試結果
?本文做壓力測試的例子
本文舉的實例是: 在一臺電腦用Jmeter模擬200個用戶,同時去使用bing搜索不同的關鍵字, 查看頁面返回的時間是否在正常范圍內。
?
?第一步: 使用CSV?Data?Set?Config 來參數化
首先我們把測試需要用到的2個參數放在txt文件中,
新建一個data.txt文件,輸入些數據, 一行有兩個數據,用逗號分隔。
1. ?啟動Jmeter, 會出現如下界面,系統自動添加了一個Test Plan(測試計劃),在名稱位置可以更改測試計劃名稱,比如: Bing接口測試樣本
2. 先添加一個Thread Group (右擊 Test Plan(測試計劃) -> Add(添加) -> Thread(Users)-> Thread Group(線程組) ?);
線程組也可以重命名,比如:Bing 200并發
3. 然后在“線程組” 下 添加一個CSV Data Set Config (右擊線程組 -> Add(添加) -> Config Element(配置元件) -> CSV Data Set Config);
在 CSV Data Set Config 中配置測試中要用到的文件內容信息,
?
第二步:添加HTTP Request.
我們添加http 請求,發送get 到?http://cn.bing.com/search?q=${param1}+${param2} ()
1. 選擇Thread Group 右鍵 (Add(添加) ->Sampler -> HTTP Request(HTTP 請求)),?
2. ?需要填的數據如下:
A. 在路徑中使用變量
?
B. 在變量欄中添加變量
C. 在變量中添加變量,同時路徑中也含有變量
本文后續采用第二種方式
第三步: 使用Thread Group, 控制模擬多少用戶
選中Thread Group
Number of Threads(users 線程數): ? ? 一個用戶占一個線程, ?200個線程就是模擬200個用戶
Ramp-Up Period(in seconds)(準備時長): ??設置線程需要多長時間全部啟動。如果線程數為200 ,準備時長為10?,那么需要1秒鐘啟動20個線程。也就是每秒鐘啟動20個線程。
Loop Count(循環次數):?每個線程發送請求的次數。如果線程數為200 ,循環次數為100?,那么每個線程發送100次請求??傉埱髷禐?00*100=20000?。如果勾選了“永遠”,那么所有線程會一直發送請求,直到選擇停止運行腳本。
注:如果想保證線程數里的線程能同時執行,所有線程的執行時間必須大于Ramp-up Period的時間。Jmeter打壓的同時運行線程數最大不會超過我們設置的線程數。
關于 Number of Threads、Ramp-Up Period 以及 Loop Count 之間關系的解釋,可參考:http://blog.csdn.net/hsd412237463/article/details/49929173
主要是對于 Ramp-Up Period 參數的理解(http://www.knowsky.com/367353.html)。
( ? ?每個線程均獨立運行測試計劃。因此,?線程組常用來模擬并發用戶訪問。假如客戶機沒有足夠的能力來模擬較重的負載,可以使用Jmeter的分布式測試功能來通過一個Jmeter控制臺來遠程控制多個Jmeter引擎完成測試。?
? ? ? ?參數?ramp-up?period?用于告知JMeter?要在多長時間內建立全部的線程。默認值是0。假如未指定ramp-up?period?,也就是說ramp-up?period?為零,?JMeter?將立即建立所有線程,假設ramp-up?period?設置成T?秒,?全部線程數設置成N個,?JMeter?將每隔T/N秒建立一個線程。?
線程組的大部分參數是不言自明的,只有ramp-up?period有些難以理解,?因為如何設置適當的值并不輕易。?首先,假如要使用大量線程的話,ramp-up?period?一般不要設置成零。?因為假如設置成零,Jmeter將會在測試的開始就建立全部線程并立即發送訪問請求,?這樣一來就很輕易使服務器飽和,更重要的是會隱性地增加了負載,這就意味著服務器將可能過載,不是因為平均訪問率高而是因為所有線程的第一次并發訪問而引起的不正常的初始訪問峰值,可以通過Jmeter的聚合報告監聽器看到這種現象。?
? ? ? ?這種異常不是我們需要的,因此,確定一個合理的ramp-up?period?的規則就是讓初始點擊率接近平均點擊率。當然,也許需要運行一些測試來確定合理訪問量。?
基于同樣的原因,過大的ramp-up?period?也是不恰當的,因為將會降低訪問峰值的負載,換句話說,在一些線程還未啟動時,初期啟動的部分線程可能已經結束了。?)
此外,對于Thread Group 的循環次數的設置,可以選用調度器來指定:
?第四步: ?添加監聽器 查看測試結果
有兩種比較常用的監聽器,一個是察看結果樹(View Result Tree),右擊線程組 -> Add -> Listener(監聽器)-> View Result Tree(察看結果樹)
一個是聚合報告(Aggregate?Report),右擊線程組 -> Add -> Listener(監聽器)-> Aggregate Report(聚合報告)
下面運行完成之后再簡單解釋這兩個監聽器的作用
第五步: 運行一下
到目前為止, 腳本就全寫好了, 我們來運行下, 如何看下測試的結果
點擊啟動之后,腳本就會執行,在“察看結果數”界面會看到我們發送的請求的具體信息和響應數據。
在實際的應用中,建議勾選“僅日志錯誤”,因為運行的請求太多時,如果全都顯示,系統容易崩潰,且我們比較關心的是錯誤的結果。
聚合報告會顯示很多詳細信息,請求數量,99響應時間,錯誤率以及吞吐等。詳細的解釋請參看 《JMeter 聚合報告》(?http://www.cnblogs.com/jackei/archive/2007/01/17/623166.html)。
將1.1中的腳本保存,在編輯是隨時可以保存,保存后是一個jmx格式的文件(如圖),這個就是要在命令行下運行的腳本(作為參數運行)。 這個腳本文件可以不包含1.1中第四和第五步,即可以不需要添加監聽器,運行是在命令行下執行。 ? ? ?
進到解壓apache-jmeter-2.13的路徑下, 執行Jmeter 腳本的命令是: ./bin/jmeter -n -t .jmx文件(腳本) -l .jtl文件(測試運行結果文件) 例: ./bin/jmeter -n -t /home/test/Bing接口測試樣本.jmx -l /home/test/Bing接口測試樣本.jtl
參數說明:
-n表示以nogui方式運行測試計劃
-t表示測試計劃,后面跟測試計劃名稱
-l表示測試結果,后面跟測試結果文件名稱
運行后顯示如下界面,即成功運行了腳本: 運行結束后,會顯示: 顯示 ... end of run 即腳本運行結束,在輸入的測試運行結果文件的路徑下就會出現命令中輸入的jtl文件了。
2. ?查看測試結果 將上一步運行結束后生成的jtl文件傳輸到可視化圖形界面可打開的路徑下, 打開可視化圖形界面的jmeter 隨便新建一個項目,也可以用先用的項目,添加監聽器,在監聽器界面,點擊瀏覽,選擇測試運行的結果文件 .jtl文件,就可以查看結果了。
打開文件后,就會顯示文件中的結果,但是如上述給出的命令在linux下得到的jtl文件里只有取樣器結果,請求和相應數據為空
同樣,在聚合報告中也可以打開jtl文件,查看結果:
備注: 另外,在Linux下我們有時候希望線程可以在后臺運行,這樣我們關閉當前連接后,線程依然可以運行,這里提供一個將 jmeter命令設置為后臺線程的方法。 使用setsid命令:? ?setsid?bin/jmeter?-n?-t .jmx文件 -l .jtl文件 ?setsid ./bin/jmeter?-n?-t .jmx文件 -l .jtl文件
有沒有 ./ 當前目錄的表示符都可以
運行結束后,會顯示:
來源:http://blog.csdn.net/zhemeteor/article/details/51316176
總結
以上是生活随笔為你收集整理的Linux下 运行Jmeter (含一个jmeter简单示例)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 借呗最低额度多少
- 下一篇: linux php7 安装redis扩展