如何在 Jmeter beanshell 处理器中生成 timeuuid?
How to generate timeuuid in Jmeter beanshell processor?
我想知道一种通过 Jmeter 中的预处理器或 post-处理器 beanshell 动态生成 timeUUID
的方法,以进行动态负载测试,以更好地适应现实生活场景。我试图在 /lib
文件夹中添加 datastax cassandra 驱动程序,但它似乎抱怨缺少 com.google.common.base.charsets
依赖项。它可能不是独立的 cassandra 驱动程序。对于可以生成 timeUUID 的库的任何建议,我们将不胜感激。
您可能还需要将番石榴 jar 文件放入 /lib
查看UUIDSclass的源码,是导入com.google.common.base.charsets
查看 Maven Central Cassandra JDBC 驱动程序有一些依赖项,您也需要在 JMeter 的 CLASSPATH 中拥有这些依赖项。
示例步骤(假设 Apache Maven)
- 在某处创建任意文件夹
在该文件夹中创建 pom.xml
文件,内容如下:
<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>gd.wa</groupId>
<artifactId>minimal-pom</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>minimal-pom</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.7</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>2.1.10.1</version>
</dependency>
</dependencies>
</project>
将 2.1.10.
替换为您的 Cassandra 服务器版本
在第一步创建的文件夹中执行以下命令:
mvn dependency:copy-dependencies
将所有 .jar 文件从 target/dependency
文件夹复制到 JMeter 的 CLASSPATH(即复制到 JMeter 安装的 "lib" 文件夹)。我的列表如下所示:
asm-5.0.3.jar
asm-analysis-5.0.3.jar
asm-commons-5.0.3.jar
asm-tree-5.0.3.jar
asm-util-5.0.3.jar
cassandra-driver-core-2.1.10.1.jar
guava-14.0.1.jar
jffi-1.2.10-native.jar
jffi-1.2.10.jar
jnr-constants-0.9.0.jar
jnr-ffi-2.0.7.jar
jnr-posix-3.0.27.jar
jnr-x86asm-1.0.2.jar
metrics-core-3.0.2.jar
netty-buffer-4.0.33.Final.jar
netty-codec-4.0.33.Final.jar
netty-common-4.0.33.Final.jar
netty-handler-4.0.33.Final.jar
netty-transport-4.0.33.Final.jar
slf4j-api-1.7.5.jar
- 重新启动 JMeter 以拾取 jar
在 Beanshell 测试元素中使用以下代码:
import com.datastax.driver.core.utils.UUIDs;
UUID timeUUID = UUIDs.timeBased();
String timeUUIDString = timeUUID.toString();
vars.put("timeUUID", timeUUIDString);
//etc.
有关在 JMeter 中使用 Beanshell 的更多信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component。
我想知道一种通过 Jmeter 中的预处理器或 post-处理器 beanshell 动态生成 timeUUID
的方法,以进行动态负载测试,以更好地适应现实生活场景。我试图在 /lib
文件夹中添加 datastax cassandra 驱动程序,但它似乎抱怨缺少 com.google.common.base.charsets
依赖项。它可能不是独立的 cassandra 驱动程序。对于可以生成 timeUUID 的库的任何建议,我们将不胜感激。
您可能还需要将番石榴 jar 文件放入 /lib
查看UUIDSclass的源码,是导入com.google.common.base.charsets
查看 Maven Central Cassandra JDBC 驱动程序有一些依赖项,您也需要在 JMeter 的 CLASSPATH 中拥有这些依赖项。
示例步骤(假设 Apache Maven)
- 在某处创建任意文件夹
在该文件夹中创建
pom.xml
文件,内容如下:<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>gd.wa</groupId> <artifactId>minimal-pom</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>minimal-pom</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.7</java.version> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>com.datastax.cassandra</groupId> <artifactId>cassandra-driver-core</artifactId> <version>2.1.10.1</version> </dependency> </dependencies> </project>
将
2.1.10.
替换为您的 Cassandra 服务器版本在第一步创建的文件夹中执行以下命令:
mvn dependency:copy-dependencies
将所有 .jar 文件从
target/dependency
文件夹复制到 JMeter 的 CLASSPATH(即复制到 JMeter 安装的 "lib" 文件夹)。我的列表如下所示:asm-5.0.3.jar asm-analysis-5.0.3.jar asm-commons-5.0.3.jar asm-tree-5.0.3.jar asm-util-5.0.3.jar cassandra-driver-core-2.1.10.1.jar guava-14.0.1.jar jffi-1.2.10-native.jar jffi-1.2.10.jar jnr-constants-0.9.0.jar jnr-ffi-2.0.7.jar jnr-posix-3.0.27.jar jnr-x86asm-1.0.2.jar metrics-core-3.0.2.jar netty-buffer-4.0.33.Final.jar netty-codec-4.0.33.Final.jar netty-common-4.0.33.Final.jar netty-handler-4.0.33.Final.jar netty-transport-4.0.33.Final.jar slf4j-api-1.7.5.jar
- 重新启动 JMeter 以拾取 jar
在 Beanshell 测试元素中使用以下代码:
import com.datastax.driver.core.utils.UUIDs; UUID timeUUID = UUIDs.timeBased(); String timeUUIDString = timeUUID.toString(); vars.put("timeUUID", timeUUIDString); //etc.
有关在 JMeter 中使用 Beanshell 的更多信息,请参阅 How to Use BeanShell: JMeter's Favorite Built-in Component。