Как настроить "pom.xml" для Jmeter - PullRequest
0 голосов
/ 20 декабря 2018

Мой файл POM.xml

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.idea.perf.test</groupId>
    <artifactId>jmeter-perf-tests</artifactId>
    <version>4.1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>jmeter-perf-tests</name>

    <properties>
        <jmeterScriptFile>Jmeter-Gemini-UI-RatePlanReport.jmx</jmeterScriptFile>
        <jmeterThreads>2</jmeterThreads>
        <jmeterRampUpTime>1</jmeterRampUpTime>
        <jmeterLoopCount>1</jmeterLoopCount>
        <Port>443</Port>
        <UrlProtocol>https</UrlProtocol>
        <UrlDomainName>stageg.com</urlDomainName>
        <PropertyList>..\..\..\src\test\properties\GeminiStressboxUI.csv</PropertyList>
        <BinaryDir>..\..\..\src\test\binaries</BinaryDir>
        <jmeterRunScriptFor>RPtHomePage,SelectRCRange,SelectDateRange,SelectMultiPropertyGroups</jmeterRunScriptFor>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.adobe.blazeds</groupId>
                <artifactId>blazeds-common</artifactId>
                <version>3.2.0.3978</version>
            </dependency>
            <dependency>
                <groupId>com.adobe.blazeds</groupId>
                <artifactId>blazeds-core</artifactId>
                <version>3.2.0.3978</version>
            </dependency>
            <dependency>
                <groupId>org.apache.jmeter</groupId>
                <artifactId>a</artifactId>
                <version>1.2</version>
                <classifier>id</classifier>
            </dependency>
            <dependency>
                <groupId>org.apache.jmeter</groupId>
                <artifactId>blazemeter</artifactId>
                <version>1.2</version>
                <classifier/>
            </dependency>
            <dependency>
                <groupId>org.apache.jmeter</groupId>
                <artifactId>a_newAmfProxyConverter</artifactId>
                <version>1.2</version>
                <classifier/>
            </dependency>
            <dependency>
                <groupId>serializeFlex</groupId>
                <artifactId>org.racso.jmeter</artifactId>
                <version>0.0.1</version>
                <classifier/>
            </dependency>
            <dependency>
                <groupId>org.apache.jmeter</groupId>
                <artifactId>amf_custom_plugin</artifactId>
                <version>1.0</version>
                <classifier>idea</classifier>
            </dependency>
            <dependency>
                <groupId>org.apache.jmeter</groupId>
                <artifactId>b</artifactId>
                <version>1.2</version>
                <classifier/>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-assets</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.outputDirectory}/../jmeter/lib/ext</outputDirectory>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.apache.jmeter</groupId>
                                    <artifactId>JMeter-AMF</artifactId>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>com.adobe.blazeds</groupId>
                                    <artifactId>blazeds-common</artifactId>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>com.adobe.blazeds</groupId>
                                    <artifactId>blazeds-core</artifactId>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.jmeter</groupId>
                                    <artifactId>a</artifactId>
                                    <classifier>idea</classifier>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.jmeter</groupId>
                                    <artifactId>a_newAmfProxyConverter</artifactId>
                                    <classifier/>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.jmeter</groupId>
                                    <artifactId>blazemeter</artifactId>
                                    <classifier/>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>serializeFlex</groupId>
                                    <artifactId>org.racso.jmeter</artifactId>
                                    <classifier/>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.jmeter</groupId>
                                    <artifactId>b</artifactId>
                                    <classifier/>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.jmeter</groupId>
                                    <artifactId>amf_custom_plugin</artifactId>
                                    <classifier>idea</classifier>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- Execute JMeter Script-->
            <plugin>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>1.9.0</version>
                <configuration>
                    <suppressJMeterOutput>false</suppressJMeterOutput>
                    <overrideRootLogLevel>debug</overrideRootLogLevel>
                    <jmeterLogLevel>DEBUG</jmeterLogLevel>
                    <testFilesIncluded>
                        <testFilesIncluded>${jmeterScriptFile}</testFilesIncluded>
                    </testFilesIncluded>
                    <jMeterProcessJVMSettings>
                        <xms>4096</xms>
                        <xmx>4096</xmx>
                        <arguments>
                            <argument>-Xprof</argument>
                            <argument>-Xfuture</argument>
                        </arguments>
                    </jMeterProcessJVMSettings>
                    <propertiesUser>
                        <jmeterThreads>${jmeterThreads}</jmeterThreads>
                        <jmeterRampUpTime>${jmeterRampUpTime}</jmeterRampUpTime>
                        <jmeterLoopCount>${jmeterLoopCount}</jmeterLoopCount>
                        <UrlProtocol>${UrlProtocol}</UrlProtocol>
                        <Port>${Port}</Port>
                        <UrlDomainName>${rlDomainName}</UrlDomainName>
                        <PropertyList>${PropertyList}</PropertyList>
                        <BinaryDir>${BinaryDir}</BinaryDir>
                        <jmeterRunScript>${jmeterRunScript}</jmeterRunScript>
                    </propertiesUser>
                </configuration>
                <executions>
                    <execution>
                        <id>test</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- Execute JMeter Reports-->
            <!--<plugin>-->
                <!--<groupId>com.lazerycode.jmeter</groupId>-->
                <!--<artifactId>jmeter-analysis-maven-plugin</artifactId>-->
                <!--<version>1.0.0</version>-->
                <!--<executions>-->
                    <!--<execution>-->
                        <!--<goals>-->
                            <!--<goal>analyze</goal>-->
                        <!--</goals>-->
                        <!--<phase>post-integration-test</phase>-->
                        <!--<configuration>-->
                            <!--<source>${project.build.directory}/jmeter/results/*</source>-->
                            <!--<targetDirectory>${project.build.directory}/reports</targetDirectory>-->
                            <!--<generateCSVs>true</generateCSVs>-->
                            <!--<generateCharts>true</generateCharts>-->
                        <!--</configuration>-->
                    <!--</execution>-->
                <!--</executions>-->
            <!--</plugin>-->
        </plugins>
    </build>
</project>

Подскажите, пожалуйста, куда мне поместить этот файл и как я могу прочитать значения из этого файла в JMeter?

Например:

<jmeterThreads>${jmeterThreads}</jmeterThreads> <- Как использовать эту переменную в скрипте JMeter? </p>

Другие переменные, которые я хотел бы использовать:

<jmeterRampUpTime>${jmeterRampUpTime}</jmeterRampUpTime>
<jmeterLoopCount>${jmeterLoopCount}</jmeterLoopCount>

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Расположение должно быть:

Project layout

Чтобы передать параметры, введите в pom.xml как дочерний элемент конфигурации :

    <propertiesJMeter>
         <BUILD_TAG>${project.version}</BUILD_TAG>
         <threads>7</threads>
         <duration>30</duration>
     </propertiesJMeter>

А в jmeter, например, для использования потоков, вы должны использовать функцию __P :

$ {__P (threads, 5)

Этот блог объясняет весь процесс.

0 голосов
/ 20 декабря 2018

Предполагая, что вы определили следующий блок:

<properties>
    <jmeterThreads>1</jmeterThreads>
</properties>

Вы сможете добавить следующий раздел в объявление JMeter Maven :

<configuration>
    <propertiesUser>
        <jmeterThreads>${jmeterThreads}</jmeterThreads>
    </propertiesUser>
</configuration>

и сослаться на значение, используя функцию __ P () в тесте JMeter, где это необходимо, как:

${__P(jmeterThreads)}

Кроме того, вы можете изменить значение, используя аргумент командной строки -D, например:

mvn -DjmeterThreads=100 clean verify

Другие свойства должны обрабатываться точно так же.

Ссылки:


Полный pom.xml файл на всякий случай:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.apache</groupId>
    <artifactId>jmeter-maven</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <jmeterThreads>1</jmeterThreads>
    </properties>

    <build>
        <plugins>
            <plugin>
                <configuration>
                    <propertiesUser>
                        <jmeterThreads>${jmeterThreads}</jmeterThreads>
                    </propertiesUser>
                </configuration>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>2.8.1</version>
                <executions>
                    <!-- Run JMeter tests -->
                    <execution>
                        <id>jmeter-tests</id>
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                    </execution>
                    <!-- Fail build on errors in test -->
                    <execution>
                        <id>jmeter-check-results</id>
                        <goals>
                            <goal>results</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...