?? 視頻學(xué)習(xí):文末有免費(fèi)的配套視頻可觀看
???關(guān)注公眾號(hào)【互聯(lián)網(wǎng)雜貨鋪】,回復(fù) 1?,免費(fèi)獲取軟件測(cè)試全套資料,資料在手,漲薪更快
JMeter是Apache軟件基金會(huì)的開(kāi)源項(xiàng)目,主要來(lái)做功能和性能測(cè)試,用Java編寫(xiě)。
我們一般都會(huì)用JMeter在本地進(jìn)行測(cè)試,但是受到單個(gè)電腦的性能影響,往往達(dá)不到性能測(cè)試的要求,無(wú)法有效的模擬高并發(fā)的場(chǎng)景,那么這個(gè)時(shí)候,我們就可以借由JMeter提供的Romote Test來(lái)進(jìn)行遠(yuǎn)程的測(cè)試。
其工作方式入下圖:
我們可以在多臺(tái)電腦上,啟動(dòng)JMeter的Romote Testing模式,然后用某一臺(tái)服務(wù)器作為Master端通過(guò)RMI控制Slave端來(lái)執(zhí)行我們的測(cè)試腳本。當(dāng)JMeter Slave端執(zhí)行完測(cè)試腳本后,會(huì)將執(zhí)行結(jié)果發(fā)送回Master控制端進(jìn)行匯總,得出整體的測(cè)試報(bào)表。
JMeter的Romote Test模式的好處就是可以用一臺(tái)終端、一個(gè)測(cè)試計(jì)劃在多臺(tái)服務(wù)器端同時(shí)對(duì)目標(biāo)服務(wù)器進(jìn)行測(cè)試,并且將測(cè)試的結(jié)果回報(bào)給統(tǒng)一的控制終端進(jìn)行匯總,方便高并發(fā)的測(cè)試需求。
下面介紹下JMeter這種遠(yuǎn)程測(cè)試的使用方法。
Step 1: 在Slave端安裝JMeter
JMeter可以從官網(wǎng)下載,下載地址:Apache JMeter - Download Apache JMeter
由于JMeter的運(yùn)行需要Java環(huán)境,所以,服務(wù)器端也必須安裝Java。
注意:為了Remote Testing模式能正常工作,盡量保證Slave端和Master端的JMeter和Java版本一致。
Step 2: Slave端運(yùn)行JMeter
在JMeter的bin目錄下,執(zhí)行下面命令,就可以以服務(wù)的方式啟動(dòng)JMeter的Slave端:
jmeter-server
JMeter Slave端,默認(rèn)會(huì)啟動(dòng)RMI(Remote Method Invoke)機(jī)制,RMI的默認(rèn)端口為1029,可以在文件jmeter.properties中進(jìn)行修改。
另外,從JMeter 4.0開(kāi)始,RMI默認(rèn)會(huì)使用SSL連接,為了能讓Slave端和Master端正常通訊,我們需要生成對(duì)應(yīng)的keys和certificates。在JMeter的bin目錄下,自帶JKS(Java KeyStore)文件生成命令。
在JMeter的bin目錄下運(yùn)行如下的命令,并按照提示符輸入相應(yīng)的內(nèi)容:
>bin % ./create-rmi-keystore.sh
What is your first and last name?
[Unknown]: rmi
What is the name of your organizational unit?
[Unknown]: unit
What is the name of your organization?
[Unknown]: org
What is the name of your City or Locality?
[Unknown]: city
What is the name of your State or Province?
[Unknown]: prov
What is the two-letter country code for this unit?
[Unknown]: cn
Is CN=rmi, OU=unit, O=org, L=city, ST=prov, C=cn correct?
[no]: yes
Enter key password for <rmi>
(RETURN if same as keystore password):
Re-enter new password:
Copy the generated rmi_keystore.jks to jmeter/bin folder or reference it in property 'server.rmi.ssl.keystore.file'
注意:提示符里面的內(nèi)容,第一條的名字和最后的密碼需要記錄下來(lái),其他的內(nèi)容可以任意填寫(xiě)。
例如,我這里的第一條填寫(xiě)的name是rmi,最后的密碼設(shè)置為changeit,如果你這里填了其他的值,那么,你需要將你的值寫(xiě)到j(luò)meter.properties文件中,分別對(duì)應(yīng)兩個(gè)屬性:
server.rmi.ssl.keystore.alias
server.rmi.ssl.truststore.password
最后,我們還需要按照提示,將生成的rmi_keystore.jks文件復(fù)制到需要連接的JMeter的bin目錄下。如果放到其他目錄下,我們需要在jmeter.properties文件中通過(guò)server.rmi.ssl.keystore.file指定.jks文件的目錄。
Step 3: Master控制Slave執(zhí)行測(cè)試腳本
在Slave端啟動(dòng)成功后,我們就可以嘗試在Master端進(jìn)行連接控制。
首先,我們需要將遠(yuǎn)程JMeter服務(wù)器(Slave端)的IP:Port添加到本地JMeter中,方式是修改本地bin目錄下的jmeter.properties文件,在其中找到remote_hosts,將自己的遠(yuǎn)程JMeter的host和端口添加到這里,如果有多個(gè),使用,分隔。
remote_hosts=<server ip>:1199
配置完成后,我們就可以運(yùn)行命令來(lái)執(zhí)行我們的測(cè)試計(jì)劃:
./jmeter.sh -n -t test.jmx -r
-r: 會(huì)控制在remote_hosts中配置的所有Slave端來(lái)執(zhí)行我們的測(cè)試計(jì)劃test.jmx;
你也可以直接在命令行中來(lái)指定想要控制的遠(yuǎn)程JMeter的具體IP:Port,命令如下:
./jmeter.sh -n -t test.jmx -R<IP>:1099
問(wèn)題和解決方案
這里可能會(huì)出現(xiàn)很多問(wèn)題,下面列出一些我踩過(guò)的坑:
- Master報(bào)連接被拒絕,這個(gè)時(shí)候你需要檢查防火墻設(shè)置,是否屏蔽了端口;
- Slave端啟動(dòng)時(shí),你會(huì)發(fā)現(xiàn)每次的端口都是隨機(jī)的,這個(gè)可能會(huì)造成每次都需要去修改防火墻的端口策略,我們可以通過(guò)修改jmeter.properties中的server.rmi.localport來(lái)設(shè)置一個(gè)固定端口號(hào);
- 某些特殊情況,也會(huì)出現(xiàn)客戶端無(wú)法連接的問(wèn)題,比如,有些服務(wù)器是有雙網(wǎng)卡的,這個(gè)時(shí)候,我們可能就需要指定JMeter啟動(dòng)的服務(wù)器端的IP,配置的方式是修改bin/jmeter-server文件,將其中注釋的一行修改如下:
RMI_HOST_DEF=-Djava.rmi.server.hostname=1.2.3.4
這里的1.2.3.4為你要指定的網(wǎng)卡的IP。
同時(shí),在這我為大家準(zhǔn)備了一份軟件測(cè)試視頻教程(含面試、接口、自動(dòng)化、性能測(cè)試等),就在下方,需要的可以直接去觀看。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-858315.html
7天Python自動(dòng)化測(cè)試速成課,小白也能快速上手(項(xiàng)目實(shí)戰(zhàn))文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-858315.html
到了這里,關(guān)于Jmeter如何進(jìn)行多服務(wù)器遠(yuǎn)程測(cè)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!