溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Jmerte分布式壓測及分布式壓測配置的方法

發(fā)布時(shí)間:2022-05-05 10:54:26 來源:億速云 閱讀:164 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Jmerte分布式壓測及分布式壓測配置的方法”,在日常操作中,相信很多人在Jmerte分布式壓測及分布式壓測配置的方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Jmerte分布式壓測及分布式壓測配置的方法”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

1.本地基于jmeter創(chuàng)建壓測項(xiàng)目

(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;
    }

2.將項(xiàng)目打包

將本地maven測試項(xiàng)目打成jar包:

mvn -U clean insall package

打包完后,有兩個(gè)地方的包:target\lib、target下面的包

首先本地調(diào)試壓測腳本是否生效

(1)創(chuàng)建一個(gè)線程組:

Jmerte分布式壓測及分布式壓測配置的方法

 這里可以配置線程組名稱,線程數(shù),準(zhǔn)備時(shí)長、循環(huán)次數(shù),調(diào)度器等參數(shù)

(2)創(chuàng)建java請求

Jmerte分布式壓測及分布式壓測配置的方法

Jmerte分布式壓測及分布式壓測配置的方法

 選好測試的方法,本地執(zhí)行一下,看可以跑通后,去遠(yuǎn)程機(jī)器壓測。

確定好Master和Slave機(jī)器,及被壓測服務(wù)所在的機(jī)器。且master機(jī)器 及slave機(jī)器上都配置相同版本的jmeter。

將項(xiàng)目依賴的jar包都放到slave機(jī)器 jmeter\lib\ext路徑下面。

3.Master配置

編輯$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

4.Slave配置

(1)所有的slave機(jī)器上對應(yīng)修改 $JMETER_HOME/bin/jmeter.properties文件

server.rmi.ssl.disable=true

(2)所有的slave機(jī)器需要在$JMETER_HOME/lib/ext下放壓測腳本依賴的jar包

5.啟動(dòng)Slave

每臺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地址)

6.master啟動(dòng)壓測

onlinePressTest.jmx是用界面版jmeter生成的一個(gè)線程組,保存下來,放到master機(jī)器上

運(yùn)行壓測腳本:

jmeter -n -r -t onlinePressTest.jmx -l stressTest.jtl -e -o webStressTest

7查看報(bào)告

stressTest.jtl 是壓測結(jié)果,可以導(dǎo)出到本地,使用jmeter打開,獲取報(bào)告

Jmerte分布式壓測及分布式壓測配置的方法

到此,關(guān)于“Jmerte分布式壓測及分布式壓測配置的方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(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)容。

AI