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

时间:2016-04-14 18:17:28

标签: java cassandra jmeter load-testing

我想知道一种通过Jmeter中的预处理器或后处理器beanhell动态生成timeUUID的方法,用于动态负载测试,以更好地适应现实生活场景。我试图在/lib文件夹中添加datastax cassandra驱动程序,但它似乎抱怨缺少com.google.common.base.charsets依赖项。它可能不是一个独立的cassandra驱动程序。任何可以生成timeUUID的库的建议都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

调查Maven Central Cassandra JDBC Driver在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安装的&#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
    
  6. 重启JMeter以挑选罐子
  7. 在Beanshell测试元素中使用以下代码:

    import com.datastax.driver.core.utils.UUIDs;
    
    UUID timeUUID = UUIDs.timeBased();
    
    String timeUUIDString = timeUUID.toString();
    vars.put("timeUUID", timeUUIDString);
    //etc.
    
  8. 有关在JMeter中使用Beanshell的更多信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component

答案 1 :(得分:0)

您可能还需要将番石榴jar文件放入/lib

查看 UUIDS 类的源代码,它正在导入com.google.common.base.charsets