如何使用JMeter進行性能和負載測試
JMeter負載測試是使用一個名為Apache JMeter的負載測試工具完成的測試過程,Apache JMeter是一個基于Java的開源桌面應用程序。它還有助于分析高負載下的整體服務器。
JMeter性能測試是使用Apache JMeter測試Web應用程序性能的測試方法。JMeter for Performance Testing有助于同時測試靜態和動態資源,有助于發現并發用戶JMeter性能測試,包括Web應用的負載測試和壓力測試。
Apache JMeter測試工具在性能測試方面提供以下好處
JMeter性能測試包括:
下圖顯示了JMeter負載測試如何模擬重負載:
在本教程中,我們將對1000名用戶進行baidu.com的性能分析 。在測試目標Web應用程序的性能之前,我們應該確定-
以下是這個實際示例的路線圖
右鍵單擊“測試計劃”,添加一個新的線程組:Add->Thread(Urs)->Thread Group
在線程組控制面板中,輸入線程屬性,如下所示:
線程計數和循環計數不同。
啟動周期告訴JMeter在啟動下一個用戶之前要延遲多長時間。例如,如果我們有100個用戶和100秒的啟動周期,那么啟動用戶之間的延遲將是1秒(100秒/100個用戶)
現在我們確定此測試中的JMeter元素。這些元素包括
可以通過右鍵單擊Thread Group并選擇:Add->Config Element->HTTP request Defaults來添加此元素。
在Http request Defaults控制面板中,輸入正在測試的網站名稱( http://www.google.com )
右鍵單擊Thread Group并選擇:Add->Sampler->HTTP Request。
在HTTP求控制面板中,路徑字段指示要將哪個URL求發送到Google服務器。
例如,如果在路徑字段中輸入“日歷”。JMeter將創建指向谷歌服務器的URL求 http://www.google.com/calendar
如果保留路徑字段 空白 jeter將創建指向谷歌服務器的url求 http://www.google.com 。 在此測試中,將路徑字段保留為空,以使JMeter創建到Google服務器的 http://www.google.com 請求。
JMeter可以將測試結果以Graph格式顯示。 右鍵單擊“測試計劃”,選擇“添加”->“偵聽器”->“繪制結果圖”
按工具欄上的Run(運行)按鈕(Ctrl+R)開始軟件測試過程。將看到測試結果實時顯示在Graph上。 下圖顯示了一個測試計劃的圖表,其中我們模擬了訪問 www.google.com 網站的100個用戶。
在圖片底部,有以下用顏色表示的統計數據:
讓我們在下圖中分析一下Google服務器的性能。
要分析被測Web服務器的性能,應該關注兩個參數
吞吐量是最重要的參數。它表示吞吐量越高,服務器性能越好。 在本次測試中,Google服務器的吞吐量為1491.193/分鐘。該值相當高,因此我們可以得出結論,Google服務器具有良好的性能 偏差用紅色表示-它表示與平均值的偏差。越小越好。
讓我們將Google服務器的性能與其他Web服務器進行比較。這是網站 http://www.yahoo.com/ 的性能測試結果(可以選擇其他網站)
被測網站 http://www.yahoo.com 的吞吐量為867.326/分鐘。這意味著該服務器每分鐘處理867.326個求,低于谷歌。 偏差為2689,遠高于谷歌(577) 。所以我們可以確定這個網站的性能低于谷歌服務器。
注意:上面的值取決于幾個因素,比如Google當前的服務器負載,網速,CPU能力等等。所以不要驚慌!
如果在運行上述方案時遇到此問題.執行以下操作
瀏覽網頁: https://www.itxiaonv.com/ ,了解更多IT信息
Jmeter 分布式性能測試方案
Jmeter 分布式工作原理
控制機: 分發腳本 和 回收響應數據
執行機: 一般使用服務器
Jmeter 分布式工作流程
1.選擇其中一臺作為調度機(master),其他機器做為代理機(Agent)。
2.執行時,master 會把腳本數據發送到每臺 Agent上,Agent 拿到腳本后就開始執行,Agent執行時不需要啟動GUI,通過命令行模式執行的
3.執行完成后,Agent 會把結果回傳給 master,master會收集所有Agent的信息并匯總
分布式操作流程:
1.首先 保證腳本是可以運行的--本機運行是ok的
2.保證 執行機與控制機之間網絡是ok,相互ping通
3.執行機與控制機的Jmeter 和 jdk 要版本一致
4.執行機里面的jmeter是可以運行的
運行jmeter
cd ./apache-jmeter-5.1.1/bin
./jmeter.sh
./jmeter-rver
5.關聯控制機與執行機
(1)設置執行機的Jmeter 屬性文件
(2)設置控制機的Jmeter 屬性文件
(3)重啟設置過的機器的 Jmeter工具
實戰演示
一臺控制機 + 一臺執行機
準備工作:讓執行機的jmeter-rver 運行起來
jmeter 有兩種運行模式
1.GUI
2.命令行
代理機設置
1. 打開window本地,進入 cmd命令行,輸入 ifconfig,查看 本地 IP地址為 192.168.1.101
2.登錄遠程服務器,ping 本地連接,保證聯通
輸入 ping 192.168.1.101
3.登錄遠程服務器,查看本地ip
輸入 ifconfig,查看服務器 ip 為 192.168.1.104
4.打開 本地 cmd,ping 遠程鏈接
輸入 ping 192.168.1.104
5. 執行機 jmeter.properties 設置 remote_hosts = 192.168.1.104:1099
rver.rmi.ssl.disable=true
控制機 jmeter.properties 設置 remote_hosts = 192.168.1.101:1099,remote_hosts = 192.168.1.104:1099
rver.rmi.ssl.disable=true
6.執行機啟動jmeter
進入 bin 目錄,執行 ./jmeter-rver
./jmeter-rver-Djava.rmi.rver.hostname=192.168.1.104
JMeter 接口/并發/性能測試(詳盡版)
Jmter工具設計之初是用于做性能測試的,它在實現對各種接口的調用方面已經做的比較成熟,因此,本次直接使用Jmeter工具來完成對Http接口的測試。因為再做接口測試時可以設置線程組,所以也可做接口性能測試。
本篇使用JMeter完成了一個完整的Http接口性能測試流程,從腳本編寫(工具化生成),執行到最終結果分析。
> 接口地址 :我們選取最常見的百度搜索接口:https://www.baidu.com/s?ie=utf-8&&wd=新聞
ie:編碼方式,默認為utf-8
wd: 搜索詞
> 返回結果判斷 (斷言):
搜索結果,我們可以通過校驗結果中是否含有搜索詞wd來判斷本次請求成功或失敗。
> 依次進行如下操作:1) 添加線程組 2)添加請求&http消息頭管理器 3)添加結果監聽器(察看結果樹 )
4)添加用戶自定義變量 *)添加定時器(集合點)
5)添加請求的斷言 6)添加斷言結果 7)添加聚合報告 8)執行
9)結果分析(分析測試報告)
1) 添加線程組
添加虛擬用戶組(Thread Group),這些虛擬用戶用來模擬訪問被測系統
一個 線程組(Thread Group) 等于 一組虛擬用戶(virtual urs group) ,
一個Java線程 等于 一個用戶
2)添加請求、添加 http消息頭管理器
2.1)添加請求
接下來的一步就是要加入實際被測頁面,右擊“線程組” > “添加” > “Sampler” > “HTTP請求”。
ps: 參數,用于get 或put請求;消息體數據用于post 請求; -----很重要,很容易出錯!
2.2)http消息頭管理器
3)添加察看結果樹
添加結果監聽器(察看結果樹 ), “監聽器”讓用戶來觀察測試結果
運行后點擊左側觀察結果數,查看請求執行結果,紅色為失敗,綠色為成功,如下圖:
4)添加用戶自定義變量 &集合點
用戶自定義變量 -,需要再HTTP請求處,手動修改請求中為變量形式 ${wd}
*)添加集合點
5)添加請求的斷言 6)添加斷言結果
7)添加聚合報告
8)執行
至此,就完成了一個完整Http接口的JMeter性能測試腳本編寫,點擊運行即可
>查看運行日志, “選項” > “Log Viewer”看看運行的日志。如果你還是看不到日志,你可以點擊下面所示的三角箭頭展開或者收起日志視圖
9)結果分析(分析測試報告)
待性能測試執行完成后,打開聚合報告可以看到:
10) 腳本查看
可以使用編輯器查看.jmx文件,如下圖所示:
使用Jmeter進行http接口性能測試
在進行網頁或應用程序后臺接口開發時,一般要及時測試開發的接口能否正確接收和返回數據,對于單次測試,Postman插件是個不錯的Http請求模擬工具。
但是Postman只能模擬單客戶端的單次請求,而對于模擬多用戶并發等性能測試,就必須借助其他的工具了,這里推薦功能強大的JMeter自動化測試工具
Apache JMeter - Apache JMeter™
Apache JMeter是Apache組織開發的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設計用于Web應用測試但后來擴展到其他測試領域。 它可以用于測試靜態和動態資源例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、數據庫, FTP 服務器, 等等。JMeter 可以用于對服務器、網絡或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。
下面就以上圖的Restful類型的接口為例簡單介紹使用Jmeter進行接口測試的方法。
獲取某個具體網關設備的基本信息。
請求
方法:GET
URI:/api/gateway/<gateway_id>
參數:
在HTTP請求(http request)的頭部(header)添加Urid和Token字段作為用戶驗證字段
響應
返回值:JSON格式的網關信息
參數:
.啟動jmeter:在bin下以管理員身份運行jmeter.bat,啟動jmeter
2. 創建測試計劃:
默認啟動jmeter時會加載一個測試技術模板,保存測試計劃:修改名稱為Apitest,點擊保存,選擇保存路徑,后面的步驟,每次添加或修改了了一些選項,軟件并不會自動保存到jmx文件中,所以進行測試后,如果需要保存本次測試選項,要手動到“文件”菜單中保存一下。
3. 添加線程組
右鍵左邊樹中的測試計劃“Apitest”節點,“添 加”→”Threads”→”線程組”
添加成功后,“Apitest”節點下多了“線程組” 節點,當然這個線程組的名稱是可以自己設定的。
4. 添加http默認請求:(用來配置公共參數,不是http請求)
右鍵線程組,選擇“添加”→ “配置元件”→“HTTP請求默認值”,點擊“HTTP請求默認值”后
添加成功后,線程組”節點下多了“HTTP請求默認值”節點
這里可以設置主機地址等一下公共參數,比如我們的例子中請求路徑前面都是主機地址+index.php,就可以統一在"http請求默認值"里設置
填寫默認請求名、服務器、默認請求路徑,保存測試計劃。
5.添加http請求信息頭
這一項并不是必須的,只不過我們的例子中使用了Urid和Token放在HTTP請求頭中用作用戶驗證
右鍵“Apitest”,選擇“添加”→ “配置元件”→“HTTP信息頭管理器”
6. 添加http請求
右鍵“Apitest”,選擇“添加”→ “Sampler”→“HTTP請求”
添加成功后,出現新的節點“HTTP請求”,就可以填寫具體的請求參數了。
填寫完成,保存測試計劃
7. 添加監聽器:
右鍵線程組,選擇“添加”→“監聽器”→“XXXXXXXXX”
可以添加的監聽器有很多種,可以添加多個監聽器,這里我們添加幾個常用的“圖形結果”、“察看結果樹”、“聚合報告”
添加成功后,“線程組”下增加了幾個節點
8. 試運行
點擊執行
可以查看各個“監聽器”的結果
Label:每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這里顯示的就是 Name 屬性的值
#Samples:表示你這次測試中一共發出了多少個請求,如果模擬10個用戶,每個用戶迭代10次,那么這里顯示100
Average:平均響應時間——默認情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,也可以以Transaction 為單位顯示平均響應時間
Median:中位數,也就是 50% 用戶的響應時間
90% Line:90% 用戶的響應時間
Note:關于 50% 和 90% 并發用戶數的含義,請參考下文
http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html
Min:最小響應時間
Max:最大響應時間
Error%:本次測試中出現錯誤的請求的數量/請求的總數
Throughput:吞吐量——默認情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數
KB/Sec:每秒從服務器端接收到的數據量,相當于LoadRunner中的Throughput/Sec
9. 修改線程組的線程數等參數,用于壓力測試
點擊左側樹形導航中的“線程組”
設置上面幾個參數,模擬的總的請求數是:線程數*循環次數。執行一下,用“圖形結果”監聽器查看一下
樣本數目:總共發送到服務器的請求數.
最新樣本:代表時間的數字,是服務器響應最后一個請求的時間.
吞吐量:服務器每分鐘處理的請求數.
平均值:總運行時間除以發送到服務器的請求數.
中間值:時間的數字,有一半的服務器響應時間低于該值而另一半高于該值.
偏離:服務器響應時間變化、離散程度測量值的大小,或者,換句話說,就是數據的分布.
jmeter性能測試步驟是什么?
把登陸改為cookie進行登陸。
負載測試是一個分析軟件應用程序和支撐架構、模擬真實環境的使用,從而來確定能夠接收的性能過程。壓力測試(Stress Testing)是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。
并發性能測試的過程是一個負載測試和壓力測試的過程,即逐漸增加負載,直到系統的瓶頸或者不能接收的性能點,通過綜合分析交易執行指標和資源監控指標來確定系統并發性能的過程。負載測試(Load Testing)是確定在各種工作負載下系統的性能。
目標是測試當負載逐漸增加時,系統組成部分的相應輸出項,例如通過量、響應時間、CPU負載、內存使用等來決定系統的性能。
負載測試是一個分析軟件應用程序和支撐架構、模擬真實環境的使用,從而來確定能夠接收的性能過程。壓力測試(Stress Testing)是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。
python自動化教程Jmeter性能測試
python自動化教程Jmeter性能測試25套高級軟件測試,性能測試,功能測試,自動化測試,接口測試,移動端測試,手機測試,WEB測試,滲透測試,測試用例設計,黑盒測試,白盒測試,UFT高級測試,Android測試,Selenium3自動化測試,Python3 測試,Java接口測試項目實戰視頻教程
軟件測試技術包含:性能測試,功能測試,自動化測試,接口測試,移動端測試,手機測試,WEB測試,滲透測試,測試用例設計,黑盒測試,白盒測試,UFT高級測試,項目實戰,Android測試,Selenium3自動化測試,Python3 測試,Java接口測試,LoadRunner性能測試,Appiumapp自動化測試,UIAutomator,Appium,Unittest測試框架,Kali Linux Web滲透測試,Git+Jenkins持續集成,LR+Jmeter性能測試,分布式性能測試高級視頻教程。。。
Dodwnload:https://www.soft1188.com/rjcs/283.html
總目錄:25套高級軟件測試,性能測試,功能測試,自動化測試,接口測試,移動端測試,手機測試,WEB測試,滲透測試,測試用例設計,黑盒測試,白盒測試,目實戰視頻教程
第一套:【基礎精通】軟件測試特訓營基礎到就業班,系統測試,WEB測試,UFT與Selenium自動化測試,LR性能測試視頻教程
第二套:【項目實戰】軟件測試系列之Java Selenium3自動化測試項目實戰視頻教程
第三套:【微服務課】Spring Cloud微服務最新技術入門到精通視頻教程
第四套:【系統學習】Android移動端自動化測試從入門到實戰(Java篇)UIAutomator,Robotium,Appium實戰進階視頻教程
第五套:【系統學習】Android移動端專項測試與自動化測試(Python篇)UIAutomator,Appium,Unittest框架視頻教程
第六套:【性能測試】JMeter深入進階性能測試體系,接口性能測試,各領域企業實戰視頻教程
第七套:【項目實戰】JMeter全程實戰、性能測試實戰、分布式性能測試、真實案例分析、基礎到精通視頻教程
第八套:【性能測試】LoadRunner性能測試基礎到精通全程實戰視頻教程
第九套:【滲透測試】Kali Linux Web滲透測試視頻教程
第十套:【系統學習】Appiumapp自動化測試基礎到精通視頻教程
第十一套:【項目實戰】python lenium自動化測試項目實戰視頻教程(3套)
第十二套:【系統學習】快速上手JMeter性能測試工具視頻教程
第十三套:【系統學習】LoadRunner軟件性能測試,接口性能測試視頻教程
第十四套:【項目實戰】Selenium3.0深度解析自動化測試框架設計與實戰與平臺設計高級測試開發實戰視頻教程
第十五套:【系統學習】Web自動化測試,Selenium基礎到企業應用,用例設計,持續集成視頻教程
第十六套:【項目實戰】最全面的Java接口自動化測試實戰視頻教程
第十七套:【項目實戰】Python接口自動化從設計到開發,測試框架實戰與自動化進階視頻教程
第十八套:【系統學習】達內軟件測試零基礎到就業視頻教程
第十九套:【測試就業】軟件測試就業指導視頻教程
第二十套:【安卓測試】Android安卓自動化新手進階測試培訓手機app軟件開發課
第二十一套:【系統學習】軟件測試特訓營,自動化測試與UFT應用視頻教程
第二十二套:【高新面試】Python高新面試教程移動自動化測試面試面試分析+知識理論+面試技巧視頻教程
第二十三套:【高級測試】最新Web自動化測試框架Selenium3.0+Python3,搭建通用的Web自動化測試框架實戰視頻教程
第二十四套:【高級測試】高級軟件測試工程師精英培訓班,軟件測試工程師(Web自動化+APP自動化+接口自動化+面試)視頻教程
第二十五套:【系統學習】軟件測試web自動化測試lenium+移動端項目測試appium+接口測試Jmeter+性能測試LoadRunner視頻教程
python自動化教程Jmeter性能測試python自動化教程Jmeter性能測試python自動化教程Jmeter性能測試python自動化教程Jmeter性能測試python自動化教程Jmeter性能測試python自動化教程Jmeter性能測試python自動化教程Jmeter性能測試python自動化教程Jmeter性能測試python自動化教程Jmeter性能測試