背景介绍:性能测试过程中会出现一种场景,用户名或者某一个唯一索引不能重复,压测数据量是巨大的,所以我们就需要考虑如何生成随机的不重复的字符串处理,UUID就是其中一种。可能还会存在一种情况就是字符数量限制,比如最高只能输入8位,但是UUID远远超出,所以就想到了一种组合的方式来实现,去UUID的一段字符串然后加上随机的数字,这样可以尽量避免唯一索引的重复。
实现步骤:
1.打开jmeter,新建线程组,选择添加-前置处理器-BeanShell PreProcessor。
编辑如下代码:
import java.util.UUID;
UUID uuidValue = UUID.randomUUID();
vars.put("UUIDVALUE",uuidValue.toString()); #变量为UUIDVALUE,外部引用直接使用${UUIDVALUE}即可
2.上面的方式是直接使用UUID的情况,UUID中是带有"-",有的时候我们并不需要,所以可以这样操作去掉:
import java.util.UUID;
UUID uuid1 = UUID.randomUUID();
vars.put("UUIDS",(uuid1.toString()).replaceAll("-",""));
3.关于切片取值,并与数字组合的写法如下:
import java.util.UUID;
UUID uuid1 = UUID.randomUUID();
vars.put("UUIDS",uuid1.toString().substring(0,4)+${__Random(0000,9999)}); #切片为从第一个到第四个一共四位后面再加上0000~9999范围内的随机数字。
4.可以将UUID直接全部转换为大写:
import java.util.UUID;
UUID uuid1 = UUID.randomUUID();
vars.put("UUIDS",(uuid1.toString()).toUpperCase());
实际的使用中需要使用t0String将UUID转换为字符串使用,如果不转换,该方法所传入的变量无法直接使用。