標籤:時間戳記 value debug valueof 可重複 手機 存在 不重複 width
要求:對註冊介面進行100000次壓測,手機號已126開頭,後面的8位元不限
前言:在進行測試中,我們需要對註冊介面進行壓測100000次,那麼就要求手機號碼每次填寫的不一致,否則手機號使用一次後會出現該手機號碼登入的情況,為了避免這種情況的發生,我們對手機號碼的填寫通常有2種方式,1、使用random函數隨機產生,2、手動在excel表中寫100個號碼,通過添加配置元件CSV data set config來擷取。顯然我們會選擇第一種實現方式較為方便。以下我們來看如何?。
第一種方法:
直接使用函數助手,利用__random函數來產生8位元。可能存在的問題:產生的數可能會出現重複
第二種方法:
採用時間戳記+隨機數的方法來避免重複,並且產生不重複的8位元
1、添加採樣器 BeanShell Sampler,並在中填寫對應的操作,重點部分
//為了避免手機號後8位出現重複,因此採用時間戳記+隨機數phone=${__time(/100000,)} + ${__Random(1,100000,)};String a = String.valueOf(phone); //將phone轉為字串,因為手機號的要求類型為charvars.put("phone",a); //將字串a設定為變數vars.get("phone"); //在debug sample中查看phone的取值log.info("8888888888888哈哈哈:"+a); //在logview中列印查看取值
這裡,前半是取一個10位的時間戳記,後面是取1個[1,100000]的隨機數字,可重複,這個隨機範圍越大,最後產生的隨機數越不容易重複,當大並發時,隨機數取的很快,所以還是有極低可能重複的。因此在功能內,盡量拉大隨機數範圍。
${__time(,)}則是去當前毫秒時間,13位的數字,也可以用來取更精確的時間戳記
2、將設定的變數添加到請求中
3、添加“查看結果樹”來查看運行結果,和添加“Bebug Sampler”來查看phone的取值
Jmeter-----隨機產生手機號後8位並去重,來進行註冊手機號的壓測