您好,登錄后才能下訂單哦!
這篇文章主要介紹“Jmerte分布式壓測及分布式壓測配置的方法”,在日常操作中,相信很多人在Jmerte分布式壓測及分布式壓測配置的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Jmerte分布式壓測及分布式壓測配置的方法”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
(1)pom中依賴jmeter包:
<dependency> <groupId>org.apache.jmeter</groupId> <artifactId>ApacheJMeter_java</artifactId> <version>5.2.1</version> </dependency>
(2)pom中增加打包方式
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <fork>true</fork> <verbose>true</verbose> <encoding>UTF-8</encoding> <compilerArguments> <extdirs>${project.basedir}/lib</extdirs> </compilerArguments> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <resource> <!--配置本地jar包在項(xiàng)目中的存放路徑--> <directory>${project.basedir}/lib</directory> <!--配置打包時(shí)jar包的存放路徑--> <targetPath>${project.basedir}/lib</targetPath> <includes> <include>**/*.jar</include> </includes> </resource> </webResources> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <!-- 忽略測試 --> <skip>false</skip> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifestEntries> <Rose>*</Rose> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>prepare-package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> <overWriteReleases>false</overWriteReleases> <overWriteSnapshots>false</overWriteSnapshots> <overWriteIfNewer>true</overWriteIfNewer> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>2.5.5</version> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build>
(3)編寫壓測腳本:
繼承AbstractJavaSamplerClient,并實(shí)現(xiàn)runTest方法。
public class StessTest extends AbstractJavaSamplerClient { @Override public void setupTest(JavaSamplerContext javaSamplerContext) { } @Override @SneakyThrows public SampleResult runTest(JavaSamplerContext javaSamplerContext) { SampleResult sampleResult = new SampleResult(); try { sampleResult.sampleStart(); String result= 請求接口; sampleResult.setResponseData(result, "UTF-8"); sampleResult.setSuccessful(false); TimeUnit.SECONDS.sleep(1L); } catch (Exception e) { e.printStackTrace(); sampleResult.setResponseData(e.getLocalizedMessage(), "UTF-8"); sampleResult.setResponseCode(e.getMessage()); sampleResult.setSuccessful(false); } finally { sampleResult.sampleEnd(); } return sampleResult; } @Override public void teardownTest(JavaSamplerContext javaSamplerContext) { super.teardownTest(javaSamplerContext); } @Override public Arguments getDefaultParameters() { return null; }
將本地maven測試項(xiàng)目打成jar包:
mvn -U clean insall package
打包完后,有兩個(gè)地方的包:target\lib、target下面的包
首先本地調(diào)試壓測腳本是否生效
(1)創(chuàng)建一個(gè)線程組:
這里可以配置線程組名稱,線程數(shù),準(zhǔn)備時(shí)長、循環(huán)次數(shù),調(diào)度器等參數(shù)
(2)創(chuàng)建java請求
選好測試的方法,本地執(zhí)行一下,看可以跑通后,去遠(yuǎn)程機(jī)器壓測。
確定好Master和Slave機(jī)器,及被壓測服務(wù)所在的機(jī)器。且master機(jī)器 及slave機(jī)器上都配置相同版本的jmeter。
將項(xiàng)目依賴的jar包都放到slave機(jī)器 jmeter\lib\ext路徑下面。
編輯$JMETER_HOME/bin/jmeter.properties文件
分別配置remote_hosts,和server.rmi.ssl.disable,端口號
server.rmi.ssl.disable=true server.rmi.localport=1099 server_port=1099 remote_hosts=ip1,ip2,ip3,ip4,ip5,ip6
(1)所有的slave機(jī)器上對應(yīng)修改 $JMETER_HOME/bin/jmeter.properties文件
server.rmi.ssl.disable=true
(2)所有的slave機(jī)器需要在$JMETER_HOME/lib/ext下放壓測腳本依賴的jar包
每臺slave機(jī)器上都啟動(dòng)jmeter
直接啟動(dòng)
$JMETER_HOME/bin/jmeter-server
或者指定機(jī)器的ip啟動(dòng)(建議指定ip啟動(dòng))
jmeter-server -Djava.rmi.server.hostname=xxx (機(jī)器的ip地址)
onlinePressTest.jmx是用界面版jmeter生成的一個(gè)線程組,保存下來,放到master機(jī)器上
運(yùn)行壓測腳本:
jmeter -n -r -t onlinePressTest.jmx -l stressTest.jtl -e -o webStressTest
stressTest.jtl 是壓測結(jié)果,可以導(dǎo)出到本地,使用jmeter打開,獲取報(bào)告
到此,關(guān)于“Jmerte分布式壓測及分布式壓測配置的方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。