java - 如何在Jmeter beanshell处理器中生成timeuuid?

标签 java cassandra jmeter load-testing

我想知道一种通过 Jmeter 中的预处理器或后处理器 beanshell 动态生成 timeUUID 的方法,以进行动态负载测试,以更好地适应现实生活场景。我尝试在 /lib 文件夹中添加 datastax cassandra 驱动程序,但它似乎提示缺少 com.google.common.base.charsets 依赖项。它可能不是独立的 cassandra 驱动程序。任何有关可以生成 timeUUID 的库的建议将不胜感激。

最佳答案

调查Maven Central Cassandra JDBC 驱动程序有一些依赖项,您也需要在 JMeter 的 CLASSPATH 中包含这些依赖项。

示例步骤(假设 Apache Maven )

  1. 在某处创建任意文件夹
  2. 在该文件夹中创建包含以下内容的 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>
    
  3. 2.1.10. 替换为您的 Cassandra 服务器的版本

  4. 在步骤 1 中创建的文件夹中执行以下命令:

    mvn dependency:copy-dependencies
    
  5. 将所有 .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
    
  6. 重新启动 JMeter 以拾取 jars
  7. 在 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/

相关文章:

java - 在 Java 8 中连接两个或多个 optional 字符串

c# - 将 DateTime 保存到 Cassandra Date 列

xml - 如何在jmeter中编辑响应

java - 获取 JSR223 中最后一个双斜杠后的字符串

database - Cassandra 中的一个节点可靠吗?

junit - Jmeter:使用带变量的 jmeter Junit 请求

java - Wicket,如何在单击时延迟加载 DropDown 选择?

java - 单一注销不适用于 Shibboleth IdP

Java REST 服务在 POST 上生成 405

cassandra - 墓碑与节点工具和修复