1. 程式人生 > >Jmeter生成8位不重複的隨機數

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;