1. 如何使用jmeter來實現更大批量的並發的解決方案
近期在用JMeter進行負載測試的 時候,發現使用單台機器模擬測試超過比如500個進程的並發就有些力不從心或者說不能如實的反應實際情況,在執行的過程中,JMeter自身會自動關閉,要解決這個問題,則可以使用分布式測試,運行多台機器運行所謂的 Agent 來分擔 JMeter自身的壓力(這個和LODARUNNER是一樣的道理),並藉此來獲取更大的並發用戶數,則需要進行相關的配置參數和文件許可權進行一些修改,具體如下:
1、在所有期望運行 JMeter 並作為 Load Generator 的機器上安裝 JMeter,並確定其中一台機器作為 Controller,其他的機器作為 Agent——假定我們使用兩台機器 192.168.0.1 和 192.168.0.2 作為 Agent;
2、在Controller 機器的 JMeter 安裝目錄下找到 bin 目錄,再找到 JMeter.properties 這個文件,使用記事廳拍本或者其他文字編輯工具打開它;
3、在打開的文件中查找「remote_hosts=」這個字元串,你可以找到這樣一行「remote_hosts=127.0.0.1」。其 中的 127.0..0.1 表示運行 JMeter Agent 的機扮仿羨器,這里需要修改為「remote_hosts=192.168.0.1:1099,192.168.0.2:1099」——其中的 1099 為 JMeter 的 Controller 和 Agent 之間進行通訊的默認 RMI 埠號; (個人備註:只改要作為Controller的機器上的此文件即可;Agent的機器上的文件可以不理會)
4、保存文件,然後依次啟動作為Controller的機器上的jmeter-server文件和作為Agent的機器上的jmeter-server文件(個人備註:如果是WINDOWS系統版本的jmeter,則是啟動jmeter-server.bat的批處理文件,LINUX系統則是jmeter-server文件,沒有後綴的,但是要修改為可執行許可權,這後面具體有提到),並重新啟動 Controller 機器上的 JMeter.bat,並進入 Run -> Remote Start 菜單項,在這里可以看到遠程啟動菜單下面有192.168.0.1 ,192.168.0.1兩個IP地址
5、如果要讓某個電腦執行,可以點擊改電腦的IP地址就可以,如果兩個都要執行,可以點擊Run 菜單下的「遠程運行全部」菜單
6、有時候用作代理的機器太少,仍不能滿足需要,則需要將作為Controller的電腦也當作Agent,則同樣需要修改 JMeter.properties文件,將Controller的IP地址寫入。同時,這個時候,需要打先打開Controller 電腦中JMeter下bin目錄下的jmeter-server.bat,然後再打開JMeter.bat,此時,進入Run -> Remote Start菜單,可以看到Controller也作為遠程機器進行運行。 (針對第大清六點我個人經過實地測試後要進行細化確認:如果是在LINUX下,此文件的許可權都還是要修改的,且jmeter-server會調用名為jmeter腳本文件,其jmeter文件的許可權也要修改為可執行的才可以,且每個被調用的Agent的機器的jmeter-server文件也是要執行中才可用調用,這點很重要。)。
/* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0 7px 0 7px; mso-para-margin:0; mso-para-margin-bottom:0; mso-pagination:widow-orphan; font-size:14px; mso-bidi-font-size:15px; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-font-kerning:1px;}
2. JMeter 介面/並發/性能測試(詳盡版)
Jmter工具設計之初是用於做性能測試的,它在實現對各種介面的調用方面已經做的比較成熟,因此,本次直接使用Jmeter工具來完成對Http介面的測試。因為再做介面測試時可以設置線程組,所以也可做介面性能測試。
本篇使用JMeter完成了一個完整的Http介面性能測試流程,從腳本編寫(工具化生成),執行到最終結果分析。
> 介面地址 :我們選取最常見的網路搜索介面:https://www..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 users 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文件,如下圖所示: