简体   繁体   English

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

[英]How to generate timeuuid in Jmeter beanshell processor?

I would like to know a way to dynamically generate timeUUID via pre-processor or post-processor beanshell in Jmeter for dynamic load testing to better fit real life scenario. 我想知道一种通过timeUUID预处理器或后处理器beanshell动态生成timeUUID的方法,以进行动态负载测试,以更好地适应现实生活中的情况。 I have tried to add datastax cassandra driver in /lib folder, but it seems to complain about missing com.google.common.base.charsets dependencies. 我试图在/lib文件夹中添加datastax cassandra驱动程序,但似乎抱怨缺少com.google.common.base.charsets依赖项。 It is probably not a standalone cassandra driver. 它可能不是独立的cassandra驱动程序。 Any suggestion for a library that can generate timeUUID would be appreciated. 对于可以生成timeUUID的库的任何建议将不胜感激。

Looking into Maven Central Cassandra JDBC Driver has some dependencies which you need to have in JMeter's CLASSPATH as well. 研究Maven Central Cassandra JDBC驱动程序还具有一些依赖关系,您还需要在JMeter的CLASSPATH中具有这些依赖关系。

Example steps (assume Apache Maven ) 示例步骤(假设Apache Maven

  1. Create an arbitrary folder somewhere 在某处创建一个任意文件夹
  2. Create pom.xml file in that folder with the following contents: 在该文件夹中创建具有以下内容的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. Replace 2.1.10. 替换2.1.10. with the version of your Cassandra server 与您的Cassandra服务器的版本

  4. In the folder created in step 1 execute the following command: 在步骤1中创建的文件夹中,执行以下命令:

     mvn dependency:copy-dependencies 
  5. Copy all the .jar files from target/dependency folder to JMeter's CLASSPATH (ie to "lib" folder of your JMeter installation). 将所有.jar文件从target/dependency文件夹复制到JMeter的CLASSPATH(即,复制到JMeter安装的“ lib”文件夹)。 My list looks like: 我的清单如下:

     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. Restart JMeter to pick the jars up 重新启动JMeter来拾取罐子
  7. In Beanshell Test Elements use the following code: 在Beanshell测试元素中,使用以下代码:

     import com.datastax.driver.core.utils.UUIDs; UUID timeUUID = UUIDs.timeBased(); String timeUUIDString = timeUUID.toString(); vars.put("timeUUID", timeUUIDString); //etc. 

See How to Use BeanShell: JMeter's Favorite Built-in Component for more information on using Beanshell in JMeter. 有关在JMeter中使用Beanshell的更多信息,请参见如何使用BeanShell:JMeter的最喜欢的内置组件

You'd probably need to put also the guava jar file into /lib 您可能还需要将番石榴jar文件放入/lib

Look at the source code of UUIDS class, it is importing com.google.common.base.charsets 查看UUIDS类的源代码,它正在导入com.google.common.base.charsets

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM