Jmeter-非GUI模式與GUI模式(分布式測試)

一、由于Jmeter是一個(gè)純Java的應(yīng)用,用GUI模式運(yùn)行壓力測試時(shí),對(duì)客戶端的資源消耗是很大的,所以在進(jìn)行正式的壓測時(shí)一定要使用非GUI模式運(yùn)行。如果并發(fā)數(shù)很高或者客戶端的硬件資源比較一般的話,采取的方法是以Server模式用多個(gè)Client進(jìn)行分布式測試。

二、新建 JMETER_HOME 環(huán)境變量,值為D:\Software\apache-jmeter-5.0\apache-jmeter-5.0,在Path加入:%JMETER_HOME%\bin;

三、CMD->jmeter,可以直接運(yùn)行Jmeter,jmeter -v查看版本號(hào):

圖1

四、官方提示:不要使用GUI模式進(jìn)行負(fù)載測試,GUI模式僅用于測試創(chuàng)建和測試調(diào)試。對(duì)于負(fù)載測試,請(qǐng)使用非GUI模式:jmeter -n -t [jmx文件] -l [results文件] -e -o [Path to web report文件夾],可以節(jié)省系統(tǒng)資源,能夠產(chǎn)生更大的負(fù)載,可以通過命令行參數(shù)對(duì)測試場景進(jìn)行更精細(xì)的配置。

圖2

五、jmeter部分參數(shù)解釋:

1、-v:打印版本信息;

2、-p {argument}:運(yùn)行時(shí)指定property文件,默認(rèn)是使用JMETER_HOME/bin目錄下的jmeter.properties,如果用戶自定義有其它的配置,在這里加上;

3、-q {argument}:指定其它配置文件,如JVM參數(shù)等等;

4、-t {argument}:要運(yùn)行的jmeter腳本,.jmx文件;

5、-l {argument}:記錄采樣器Log的文件,保存JTL 測試結(jié)果文件的路徑;

6、-j {argument}:指定記錄jmeter log的文件,默認(rèn)為jmeter.log;

7、-n:以nongui模式(非GUI模式)運(yùn)行jmeter;

8、-s:運(yùn)行JMeter server;

9、-H {argument}:代理服務(wù)器地址;

10、-P:代理服務(wù)器端口;

11、-J {argument}={value}:定義額外的Jmeter屬性properties;

12、-G, --globalproperty {argument}={value}:定義發(fā)送給server的全局屬性;

13、-D, --systemproperty {argument}={value}:定義系統(tǒng)屬性;

14、-r, --runremote (non-GUI only):啟動(dòng)遠(yuǎn)程server(在jmeter properties中定義好的remote_hosts),僅在non-gui模式下此參數(shù)才生效;

15、-R, --remotestart? server1,... (non-GUI only):啟動(dòng)遠(yuǎn)程server(如果使用此參數(shù),將會(huì)忽略properties中中定義的remote_hosts);

16、-d, --homedir {argument}:Jmeter運(yùn)行的主目錄;

17、-X, --remoteexit:測試結(jié)束時(shí),退出(在non-gui模式下);

18、-g {argument}:通過csv文件來創(chuàng)建dashboard報(bào)告;

19、-o {argument}:運(yùn)行結(jié)束后創(chuàng)建dashboard報(bào)告;

20、-e {argument}:在哪個(gè)目錄創(chuàng)建dashboard報(bào)告。

六、分布式:Jmeter的集群模式可以讓我們將多臺(tái)機(jī)器聯(lián)合起來一起產(chǎn)生負(fù)載,從而彌補(bǔ)單臺(tái)機(jī)器負(fù)載生成能力不足的問題。假設(shè)我們的測試計(jì)劃會(huì)產(chǎn)生100個(gè)threads,我們使用5臺(tái)機(jī)器進(jìn)行分布式測試的時(shí)候,一共會(huì)產(chǎn)生100 * 5 = 500的負(fù)載。

七、分布式測試的思想為:一臺(tái)master主機(jī)(調(diào)度機(jī)或者稱作控制機(jī))初始化測試并控制多個(gè)slave系統(tǒng)(執(zhí)行機(jī)或者稱作負(fù)載機(jī))。master,以GUI模式運(yùn)行,同時(shí)控制測試的運(yùn)行,就是client,啟動(dòng)腳本所在的那臺(tái)機(jī)器。master也可以參與腳本的運(yùn)行,master同時(shí)也是一臺(tái)負(fù)載機(jī)。slave,運(yùn)行客戶端程序(Agent:jmeter-server.bat),從master接收指令、向目標(biāo)服務(wù)器發(fā)送請(qǐng)求,就是server,真正執(zhí)行test plan的機(jī)器。

slave首先啟動(dòng)Agent程序,待master連接;

master連接上slave;

master發(fā)送指令(腳本及啟動(dòng)命令)啟動(dòng)線程;

slave運(yùn)行腳本,回傳狀態(tài)(包括測試結(jié)果);

master收集結(jié)果并顯示。

八、注意事項(xiàng):

1、關(guān)閉防火墻;

2、所有的客戶端都在同一個(gè)子網(wǎng)內(nèi);

3、如果使用192.x.x.x或者10.x.x.x這樣的IP地址,server也必須在同一子網(wǎng)內(nèi),如果server沒有使用192或者10這樣的IP地址,(server同client不在同一子網(wǎng)內(nèi))將不會(huì)有任何問題;

4、確保Jmeter可以訪問到server;

5、確保各系統(tǒng)的Jmeter版本保持一致,不同版本的Jmeter將不能很好的工作。

九、設(shè)置jmeter client & server

1、設(shè)置jmeter-server:用文本編輯器打開JMETER_HOME/bin目錄下的jmeter.properties文件,添加運(yùn)行jmeter-server的主機(jī)IP到remote-hosts,如果你不希望你的客戶端也作為jmeter-server運(yùn)行的話,把localhost從上面的配置中移除。

remote_hosts=10.0.0.158, 10.0.0.140,127.0.0.1

2、將配置在remote_hosts中的機(jī)器上的jmeter-server啟動(dòng)(Windows以管理員身份運(yùn)行JMETER_HOME/bin目錄下的jmeter-server.bat)。

十、分布式測試

1、方式一:在客戶端以GUI模式啟動(dòng)jmeter,然后打開或者創(chuàng)建一個(gè)測試腳本, 從GUI模式啟動(dòng)所有的遠(yuǎn)程server,點(diǎn)擊,運(yùn)行-遠(yuǎn)程全部啟動(dòng),也可以單獨(dú)啟動(dòng)某一個(gè)jmeter-server 。

圖3

2、方式二:以非GUI模式啟動(dòng)jmeter

2.1、新建一個(gè)文件夾,存放jmeter腳本,比如baidu.jmx;

2.2、在當(dāng)前文件夾下打開cmd窗口(shift+鼠標(biāo)右鍵選擇在此處打開命令窗口),輸入命令:

jmeter -n -t baidu.jmx -l res.jtl -e -o ./report

2.3、運(yùn)行結(jié)果,就是生成res.jtl文件,jmeter.log日志文件和report文件夾:

圖4
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容