Jmeter生成8位不重複的隨機數
要求:對註冊介面進行100000次壓測,手機號已126開頭,後面的8位數不限
前言:在進行測試中,我們需要對註冊介面進行壓測100000次,那麼就要求手機號碼每次填寫的不一致,否則手機號使用一次後會出現該手機號碼已註冊的情況,為了避免這種情況的發生,我們對手機號碼的填寫通常有2種方式,1、使用random函式隨機生成,2、手動在excel表中寫100個號碼,通過新增配置元件CSV data set config來獲取。顯然我們會選擇第一種實現方式較為方便。以下我們來看如何實現。
第一種方法:直接引用函式,採用函式時間戳+函式隨機數的方法,如下
直接使用函式助手,利用__random函式來生成8位數。可能存在的問題:生成的數可能會出現重複
jmeter自帶的函式__random()是會重複的,為了避免此情況,採用時間戳+隨機數的方法,如下:
long phone=${__time(/1000,)} + ${__Random(1,100000,)};
System.out.println(phone);
這裡,前半是取一個10位的時間戳,後面是取1個[1,100000]的隨機數字,可重複,這個隨機範圍越大,最後生成的隨機數越不容易重複,當大併發時,隨機數取的很快,所以還是有極低可能重複的。因此在許可範圍內,儘量拉大隨機數範圍。
${__time(,)}則是去當前毫秒時間,13位的數字,也可以用來取更精確的時間戳
第二種方法:BeanShell 裡面,採用時間戳+隨機數的方法來避免重複,並且生成不重複的8位數
1、新增取樣器 BeanShell Sampler,並在中填寫對應的操作,重點部分
//為了避免手機號後8位出現重複,因此採用時間戳+隨機數 phone=${__time(/100000,)} + ${__Random(1,100000,)}; String a = String.valueOf(phone); //將phone轉為字串,因為手機號的要求型別為char vars.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位不重複的隨機數
要求:對註冊介面進行100000次壓測,手機號已126開頭,後面的8位數不限 前言:在進行測試中,我們需要對註冊介面進行壓測100000次,那麼就要求手機號碼每次填寫的不一致,否則手機號使用一次後會出現該手機號碼已註冊的情況,為了避免這種情況的發生,我們對手機號碼的
生成N位不重複的隨機數
package com.jack.question.random; import java.util.Arrays; import java.util.Random; /** * @author lvh */ public class RandomArray { /* * 如題,定義一
如何生成8位無重複的隨機數(數字+字母)
using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System
tp5生成6位不重複驗證碼
/** * 獲取啟用碼 */ public function getnum() { $num = microtime(true); for ($i = $num; $i < ($num + 10); $i++) { //
java生成4位不重複字元(包含大寫字母、小寫字母、數字)
需要生成4位不重複的字元作為唯一引數,要求只能使用大寫字母、小寫字母和數字的組合。大寫字母26個、小寫字母26個、10個數字共62個字元。不重複排列個數:62*62*62*62=14776336個。 /** * * @author wzp * 2016-3-18
隨機生成Z-A0-9的6位不重複的隨機數(100000起)
public class InvertCodeGenerator { public static String generateRandomStr(int len) { String randomcode = ""; String
sql 生成8位字母數字組合不重複隨機碼
先設定code不可重複,自動忽略 如果生成的串包含0,O,跳過 SET NOCOUNT ON; declare @s varchar(8) declare @i int set @i=0 while(@i<1000000) begin set @
生成8位隨機不重複的數字編號
package com.jjinfo.common.util; import java.util.Arrays; import java.util.Random; /** * */
生成不重複隨機數序列(Java)
從1到n之間抽取出k個不重複的隨機數,用Math.random()實現的話,可參照下面的程式碼。 int r = (int) (Math.random() * n), 生成下標,據此下標,去到numbers數組裡拿到隨機數。然後將numbers[r]的值設定成
[js][技巧]生成指定範圍指定個數的不重複隨機數
今天偶然看到的 比如要生成 1-100範圍之內的10個不重複隨機數,程式碼就可以這麼寫 var arr = []; for (var i = 1; i <=100; i++) { arr.push(i); } arr.sort(
生成不重複隨機數,自己寫的,嘿嘿
package 基礎演算法; import java.util.Arrays; public class radomNums { public static void main(String[] args){ int[] array=new int[8]; i
Delphi 中生成指定範圍不重複的隨機數
剛開始學習Dephi,寫這個相當於學習筆記,有不正確的地方,請各位大神多多指教 生成指定範圍的不重複大的隨機數 指定隨機數的範圍,生成不重複的隨機數 while si < sum do //si 表示生成隨機數的個數
PHP高效生成一個不重複隨機數
PHP高效產生m個n範圍內的不重複隨機數(m<=n) 注:在《 Programming Pearls 》一書中也有提到,題目為“如何高效產生m個n範圍內的不重複隨機數(m<=n)” 該演算法非常巧妙的取隨機數的位置(陣列的下標),替代取隨機數本身,每次取到一個隨機數之後,就將其在取值範圍
mysql生成不重複隨機數(unique number generation)
問題來源 業務中有時會遇到要生成不重複隨機數的情況,例如,新生成一個商品編號、房間編號、或者其他物品編號等。不願意採用表的自增索引 id,同時又希望新生成的編號是不重複的。 這就需要考驗mysql的隨機數功能了。 Solution mysql的rand函
sql 生成隨機數 以及不重複隨機數
背景:想在表中隨機取10條記錄,讓取出來的資料不重複(表中必須是有個遞增列,且遞增從1開始間隔為1)。 資料表: CREATE TABLE testable ( id INT IDENTITY(1,1), myname NVARCHAR(1000), insertedTime DATETIME
生成N個不重複的隨機數
<?php /* * array unique_rand( int $min, int $max, int $num ) * 生成一定數量的不重複隨機數 * $min 和 $max: 指定隨機數
生成不重複隨機數的方法 --抽獎問題等
問題描述: 給定一個n,一個m 要求在1 ~ n這n個數字中,生成m個不重複的隨機數。 思路: 生成隨機數大家都知道,C++中也提供了相關的函式——rand()。 但是問題中要求生成的是無重複的隨機數,這裡就需要對生成的隨機數進行去重操作了。 首選最
[Asp.net] 隨機生成300個不重複的 純數字8位數
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= --隨機生成300個不重複的 純數字8位數 --注:具體多少是可自定義的
C# Random 生成不重複隨機數
名稱空間:System 表示偽隨機數生成器,一種能夠產生滿足某些隨機性統計要求的數字序列的裝置。 偽隨機數是以相同的概率從一組有限的數字中選取的。所選數字並不具有完全的隨機性,因為它們是用一種確定的數學演算法選擇的,但是從實用的角度而言,其隨機程度已足夠了。 偽隨機數的
ios 生成不重複隨機數
一、先講下ios三種取隨機數的方法: 1. srand((unsigned)time(0)); //不加這句每次產生的隨機數不變 int i = rand() % 5;