【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>中
指定的每個屬性合併到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>