2016-04-14 78 views
0

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

回答

1

展望Maven Central卡桑德拉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. 复制从target/dependency夹中的所有.jar文件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的挑罐子了
  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的详细信息,使用的BeanShell在JMeter。

+0

非常详细!谢谢。不知道你是怎么想出这个pom.xml的? – eriflame

+0

这只是一个最小的POM文件+ cassandra驱动程序依赖项。 –

0

你可能也需要把番石榴jar文件到/lib

UUIDS类的源代码,它是进口com.google.common.base.charsets

相关问题