我想知道一种通过Jmeter中的预处理器或后处理器beanhell动态生成timeUUID
的方法,用于动态负载测试,以更好地适应现实生活场景。我试图在/lib
文件夹中添加datastax cassandra驱动程序,但它似乎抱怨缺少com.google.common.base.charsets
依赖项。它可能不是一个独立的cassandra驱动程序。任何可以生成timeUUID的库的建议都将受到赞赏。
答案 0 :(得分:1)
调查Maven Central Cassandra JDBC Driver在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服务器版本
在步骤1中创建的文件夹中,执行以下命令:
mvn dependency:copy-dependencies
将所有.jar文件从target/dependency
文件夹复制到JMeter的CLASSPATH(即到JMeter安装的&#34; lib&#34;文件夹)。我的列表如下:
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
在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。
答案 1 :(得分:0)
您可能还需要将番石榴jar文件放入/lib
查看 UUIDS 类的源代码,它正在导入com.google.common.base.charsets