jmeter-5.0 - Jmeter随机函数在java应用程序中不起作用
问题描述
我想(${__RandomString(10,0123456789,Value)})
在我的 java 应用程序中使用 Jmeter Random 函数进行负载测试。
下面是maven依赖
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_functions</artifactId>
<version>4.0</version>
</dependency>
如果我将 jar 添加到类路径,它可以正常工作ApacheJMeter_functions
,但如果我使用 Maven 依赖项,则同样无法正常工作。
注意:如果我将 jar 添加到没有版本名称的类路径中,效果很好。
pom:
<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>
<artifactId>performance-api</artifactId>
<version>0.1</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_core</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_http</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>org.apache.jmeter</groupId>
<artifactId>ApacheJMeter_functions</artifactId>
<version>4.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
解决方案
以下解决方案帮助我解决了问题
在 Java 代码中使用 Jmeter 函数时,Jmeter 会尝试将 java 类路径中的函数相关类与“search_path”中的 类(从 jar 中读取类)进行比较。所以 Jmeter 函数只有在两个路径中都存在所需的函数类时才起作用(Jmeter 对每个函数都有单独的类)。
这就是为什么我们需要确保在 pom 中添加的 'ApacheJMeter_functions' jar (将在类路径中添加)和 jmeter 函数 jar 的路径设置为'search_path' 。两者应该具有相同的版本。
但是在 Spring Boot 应用程序的情况下,除了向 pom 添加依赖项外,我们还需要将 jmeter 函数 jar 的路径显式附加到类路径中,如下所示
System.setProperty("java.class.path", System.getProperty("java.class.path") + PathToJmeterFunctionJars );
推荐阅读
- javascript - 将 React 17 与 webpack 5 和 babel-plugin-react-css-modules (带有样式名的 css 模块)集成
- python - 按日期和时间python对数据进行排序
- r - 在 Openair windRose 绘图面板之间添加空间
- python - 对 jupyter notebook 中的 tensorflow 安装感到失望
- reactjs - Chrome 开发者工具网络选项卡 - 删除不必要的请求并仅显示相关请求
- javascript - 反应从 S3 Bucket 中检索多个图像的正确方法
- firebase - Firebase 搜索查询 startAt endAt
- javascript - 路线变更问题
- java - jetbrains.exodus.ExodusException:不支持的可比较值类型
- python - 蟒蛇 | 熊猫 | CSV | 字典问题