简介:有时候我们可能需要拓展jmeter里面的功能,比如数据处理后jmeter请求发送。
签名、认证等场景都会使用到。
一、创建 java 项目,编写代码及打包jar
1、new project,选择maven
2、写个简单demo,批量生成UUID
package com.ppl;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
public class Common {
public static String uuid() {
// 生成单个 uuid
return UUID.randomUUID().toString();
}
public static List<String> uuid(int count) {
// 生成 uuids 列表
List<String> uuids = new ArrayList<>();
for (int i = 0; i < count; i++) {
uuids.add(uuid());
}
return uuids;
}
}
3、pom.xml 有依赖其它包的话则需要加上:
这样子maven打包会将所依赖的jar包打入。
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
4、maven 构建:package
构建后可以看到有两个jar包,一个是打入依赖(xxx-dependencies.jar),一个是没有。
二、Jmeter引用jar包及使用自定义jar类
1、将jar包粘贴至,jmeter 的 lib/ext 目录下即可
2、重启 jmeter 或直接打开新的 jmeter 客户端
3、Jmeter 请求中新增:BeanShell 预处理程序
并写入代码 (貌似 BeanShell 不能够使用泛型否则会报错警告)
这里可能会有疑问,BeanShell 咋写?其实就和 java 一样,比如我在IDEA下编写并测试,如下:
那么 BeanShell 也是一样是这样写。
4、变量存储及引用
- vars:线程内共享
- props:跨线程共享
vars.put("uuidList", uuids); 表示将 uuids 变量存储为线程内共享,并命名为:uuidList
这里只是做个简单的演示,至于数据要处理成什么样是根据当前需求需要来编写的,比如简介中说的加签、安全认证等。
End