背景介紹:性能測試過程中會出現(xiàn)一種場景,用戶名或者某一個唯一索引不能重復(fù),壓測數(shù)據(jù)量是巨大的,所以我們就需要考慮如何生成隨機的不重復(fù)的字符串處理,UUID就是其中一種。可能還會存在一種情況就是字符數(shù)量限制,比如最高只能輸入8位,但是UUID遠(yuǎn)遠(yuǎn)超出,所以就想到了一種組合的方式來實現(xiàn),去UUID的一段字符串然后加上隨機的數(shù)字,這樣可以盡量避免唯一索引的重復(fù)。
實現(xiàn)步驟:
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.關(guān)于切片取值,并與數(shù)字組合的寫法如下:
import java.util.UUID;
UUID uuid1 = UUID.randomUUID();
vars.put("UUIDS",uuid1.toString().substring(0,4)+${__Random(0000,9999)}); #切片為從第一個到第四個一共四位后面再加上0000~9999范圍內(nèi)的隨機數(shù)字。
4.可以將UUID直接全部轉(zhuǎn)換為大寫:
import java.util.UUID;
UUID uuid1 = UUID.randomUUID();
vars.put("UUIDS",(uuid1.toString()).toUpperCase());
實際的使用中需要使用t0String將UUID轉(zhuǎn)換為字符串使用,如果不轉(zhuǎn)換,該方法所傳入的變量無法直接使用。