1. 程式人生 > >【jmeter-maven-plugin】五、修改屬性

【jmeter-maven-plugin】五、修改屬性

使用您自己的屬性檔案

使用此外掛配置JMeter的最簡單方法是提供自己的屬性檔案。啟動時,外掛將掃描${project.base.directory} / src / test / jmeter目錄下的以下檔案:

  • jmeter.properties
  • saveservice.properties
  • upgrade.properties
  • system.properties
  • user.properties
  • global.properties

向<propertiesJMeter>新增附加屬性

可以設定配置JMeter主庫的屬性。要設定這些屬性,您需要在配置元素<propertiesJmeter>中

指定pom.xml中的每個屬性(下面的示例顯示了一個名為log_level.jmeter的屬性設定)。

指定的每個屬性合併到JMeter屬性檔案jmeter.properties中,它將覆蓋檔案中的任何相同的屬性。

<project>
    [...]
        <build>
            <plugins>
                <plugin>
                    <groupId>com.lazerycode.jmeter</groupId>
                    <artifactId>jmeter-maven-plugin</artifactId>
                    <version>2.2.0</version>
                    <executions>
                        <execution>
                            <id>jmeter-tests</id>
                            <goals>
                                <goal>jmeter</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <propertiesJMeter>
                            <log_level.jmeter>DEBUG</log_level.jmeter>
                        </propertiesJMeter>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    [...]
</project>

向<propertiesSaveService>新增其他屬性

可以設定配置JMeter主庫的儲存服務的屬性。要設定這些屬性,您需要在config元素<propertiesSaveservice>中指定pom.xml中的每個屬性(下面的示例顯示了一個名為HTTPSampler2的屬性被設定)。

指定的每個屬性被合併到JMeter屬性檔案saveservice.properties中,它將覆蓋檔案中的任何相同的屬性。
<project>
    [...]
        <build>
            <plugins>
                <plugin>
                    <groupId>com.lazerycode.jmeter</groupId>
                    <artifactId>jmeter-maven-plugin</artifactId>
                    <version>2.2.0</version>
                    <executions>
                        <execution>
                            <id>jmeter-tests</id>
                            <goals>
                                <goal>jmeter</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <propertiesSaveService>
                            <HTTPSampler2>org.apache.jmeter.protocol.http.sampler.HTTPSampler2</HTTPSampler2>
                        </propertiesSaveService>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    [...]
</project>


向<propertiesUpgrade>新增其他屬性

可以將oldValue中使用的屬性設定為JMeter主庫的newValue升級對映。要設定這些屬性,您需要在config元素<propertiesUpgrade>中指定pom.xml中的每個屬性。(下面的示例顯示一個名為my.old.ClassName的屬性被設定)。

指定的每個屬性都會合併到JMeter屬性檔案upgrade.properties中,它將覆蓋檔案中的任何相同的屬性。

<project>
    [...]
        <build>
            <plugins>
                <plugin>
                    <groupId>com.lazerycode.jmeter</groupId>
                    <artifactId>jmeter-maven-plugin</artifactId>
                    <version>2.2.0</version>
                    <executions>
                        <execution>
                            <id>jmeter-tests</id>
                            <goals>
                                <goal>jmeter</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <propertiesUpgrade>
                            <my.old.ClassName>my.new.ClassName</my.old.ClassName>
                        </propertiesUpgrade>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    [...]
</project>

向<propertiesUser>新增附加屬性

JMeter使用者屬性是JMeter提供的可用於JMeter測試的屬性。要設定使用者屬性,您需要在config元素<propertiesUser>中指定pom.xml中的每個屬性(下面的示例顯示一個名為threads的屬性,並設定稱為testIterations的屬性)。

指定的每個屬性都被合併到JMeter屬性檔案user.properties中,它將覆蓋檔案中的任何相同的屬性。

<project>
    [...]
        <build>
            <plugins>
                <plugin>
                    <groupId>com.lazerycode.jmeter</groupId>
                    <artifactId>jmeter-maven-plugin</artifactId>
                    <version>2.2.0</version>
                    <executions>
                        <execution>
                            <id>jmeter-tests</id>
                            <goals>
                                <goal>jmeter</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <propertiesUser>
                            <threads>10</threads>
                            <testIterations>5</testIterations>
                        </propertiesUser>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    [...]
</project>

新增其他屬性到<propertiesGlobal>

全域性屬性是傳送到遠端計算機的屬性。要設定這些屬性,您需要在配置元素<propertiesGlobal >中指定pom.xml中的每個屬性(下面的示例顯示一個名為threads的屬性和一個名為testIterations的屬性)。

指定的每個屬性合併到JMeter屬性檔案global.properties中,它將覆蓋檔案中的任何相同的屬性
<project>
    [...]
        <build>
            <plugins>
                <plugin>
                    <groupId>com.lazerycode.jmeter</groupId>
                    <artifactId>jmeter-maven-plugin</artifactId>
                    <version>2.2.0</version>
                    <executions>
                        <execution>
                            <id>jmeter-tests</id>
                            <goals>
                                <goal>jmeter</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <propertiesGlobal>
                            <threads>10</threads>
                            <testIterations>5</testIterations>
                        </propertiesGlobal>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    [...]
</project>

向<propertiesSystem>新增其他屬性

JMeter可以設定系統屬性,這些屬性可以由執行在同一個JVM中的所有應用程式訪問的全域性環境屬性(它們在JVM之外不可訪問)。要設定系統屬性,您需要在config元素<propertiesSystem>中指定pom.xml中的每個屬性(下面的示例顯示一個名為my.system.property的屬性設定)。

指定的每個屬性都被合併到JMeter屬性檔案system.properties中,它將覆蓋檔案中的任何相同的屬性。

<project>
    [...]
        <build>
            <plugins>
                <plugin>
                    <groupId>com.lazerycode.jmeter</groupId>
                    <artifactId>jmeter-maven-plugin</artifactId>
                    <version>2.2.0</version>
                    <executions>
                        <execution>
                            <id>jmeter-tests</id>
                            <goals>
                                <goal>jmeter</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <propertiesSystem>
                            <my.system.property>my.system.property.value</my.system.property>
                        </propertiesSystem>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    [...]
</project>

設定<propertiesReplacedByCustomFiles>

預設情況下,上述設定中指定的所有屬性將與任何現有屬性合併。如果想要替換它們,可以通過將<propertiesReplacedByCustomFiles>設定為true(預設為false)來實現。在進行此操作之前請仔細考慮,我們預設合併屬性的原因是確保將所有屬性合併到JMeter提供的屬性檔案的最新有效版本中。如果您覆蓋屬性檔案,但是缺少JMeter所需的屬性將很可能中斷。

<project>
    [...]
        <build>
            <plugins>
                <plugin>
                    <groupId>com.lazerycode.jmeter</groupId>
                    <artifactId>jmeter-maven-plugin</artifactId>
                    <version>2.2.0</version>
                    <executions>
                        <execution>
                            <id>jmeter-tests</id>
                            <goals>
                                <goal>jmeter</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <propertiesReplacedByCustomFiles>${basedir}true</propertiesReplacedByCustomFiles>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    [...]
</project>

指定一個<customPropertiesFile>

這將允許您設定一個絕對路徑到JMeter自定義(測試依賴)屬性檔案。這相當於在命令列中設定“--addprop my.properties”。

<project>
    [...]
        <build>
            <plugins>
                <plugin>
                    <groupId>com.lazerycode.jmeter</groupId>
                    <artifactId>jmeter-maven-plugin</artifactId>
                    <version>2.2.0</version>
                    <executions>
                        <execution>
                            <id>jmeter-tests</id>
                            <goals>
                                <goal>jmeter</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <customPropertiesFiles>
                            <file>/user/home/myuser/myCustom.properties</file>
                        </customPropertiesFiles>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    [...]
</project>

指定<propertiesFilesDirectory>

您可以指定檔案系統中.properties檔案所在的目錄(預設情況下,外掛將假定它們位於${project.base.directory} / src / test / jmeter中

<project>
    [...]
        <build>
            <plugins>
                <plugin>
                    <groupId>com.lazerycode.jmeter</groupId>
                    <artifactId>jmeter-maven-plugin</artifactId>
                    <version>2.2.0</version>
                    <executions>
                        <execution>
                            <id>jmeter-tests</id>
                            <goals>
                                <goal>jmeter</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <propertiesFilesDirectory>/user/home/myuser/properties</propertiesFilesDirectory>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    [...]
</project>