我想知道一种通过 Jmeter 中的预处理器或后处理器 beanshell 动态生成 timeUUID
的方法,以进行动态负载测试,以更好地适应现实生活场景。我尝试在 /lib
文件夹中添加 datastax cassandra 驱动程序,但它似乎提示缺少 com.google.common.base.charsets
依赖项。它可能不是独立的 cassandra 驱动程序。任何有关可以生成 timeUUID 的库的建议将不胜感激。
最佳答案
调查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 服务器的版本在步骤 1 中创建的文件夹中执行以下命令:
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 以拾取 jars
在 Beanshell 测试元素中使用以下代码:
import com.datastax.driver.core.utils.UUIDs; UUID timeUUID = UUIDs.timeBased(); String timeUUIDString = timeUUID.toString(); vars.put("timeUUID", timeUUIDString); //etc.
参见How to Use BeanShell: JMeter's Favorite Built-in Component有关在 JMeter 中使用 Beanshell 的更多信息。
关于java - 如何在Jmeter beanshell处理器中生成timeuuid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36630925/