Jmeter生成8位不重复的随机数
jmeter的time函数
${__time(,)} : 默认该公式精确到毫秒级别, 13位数
${__time(/1000,)} : 该公式精确到秒级别, 10位数
${__time(yyyy-MM-dd,)} 如果参数需要为当前日期,那公式为:
${__time(YMDHMS,)}
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中打印查看取值
或者这样
long s = ${__time(/100000,)};
long y = ${__Random(1,100000,)};
long z = s+y;
vars.put("XXX_id",z.toString()); //类型转换成String
这里,前半是取一个10位的时间戳,后面是取1个[1,100000]的随机数字,可重复,这个随机范围越大,最后生成的随机数越不容易重复,当大并发时,随机数取的很快,所以还是有极低可能重复的。因此在许可范围内,尽量拉大随机数范围。
${__time(,)}则是去当前毫秒时间,13位的数字,也可以用来取更精确的时间戳
2、将设置的变量添加到请求中
3、添加“查看结果树”来查看运行结果,和添加“Bebug Sampler”来查看phone的取值
Jmeter生成8位不重复的随机数的更多相关文章
- 动态生成16位不重复随机数、随机创建2位ID
/** 1. * 动态生成16位不重复随机数 * * @return */ public synchronized static String generate16() { StringBuffer ...
- Java连载81-枚举类型,生成五个不重复的随机数,集合简介
一.枚举类型 1.枚举类型的格式就是enum+枚举类型的名称,可见下面的例子. package com.bjpowernode.java_learning; public class D81_1_ ...
- 在一定[min,max]区间,生成n个不重复的随机数的封装函数
引:生成一个[min,max]区间的一个随机数,随机数生成相关问题参考→链接 var ran=parseInt(Math.random()*(max-min+1)+min); //生成一个[min,m ...
- 生成N个不重复的随机数(转)
有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次.前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空.那么你会如何填补这个漏子? 当然向上级反映情况.但是 ...
- Java数组实现随机生成N-M之间不重复的随机数
接收一个整形数组,使用Math.Random每次在规定的数字范围内随机产生数字,然后嵌套for循环依次判断是否有重复值,如果有既外循环变量减一,直到把数组装满为止. /** * 随机生成 N--M的不 ...
- C# Random生成多个不重复的随机数万能接口
C#,Radom.Next()提供了在一定范围生成一个随机数的方法,我现在有个业务场景是给其他部门推送一些数据供他们做抽样检查处理,假设我的数据库里面有N条数据,现在要定期给其随机推送数据,我需要先拿 ...
- PHP函数:生成N个不重复的随机数
思路:将生成的随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数. 程序: <?php /* * array unique_rand( int $min, int $max, ...
- PHP CodeBase: 生成N个不重复的随机数
有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次.前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空.那么你会如何填补这个漏子? <?php /* ...
- php生成N个不重复的随机数实例
思路: 将随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数. /* * array unique_rand( int $min, int $max, int $num ) * 生 ...
随机推荐
- iOS VIPER架构(二)
第一篇文章对VIPER进行了简单的介绍,这篇文章将从VIPER的源头开始,比较现有的几种VIPER实现,对VIPER进行进一步的职责剖析,并对各种细节实现问题进行挖掘和探讨.最后给出两个完整的VIPE ...
- 【Python图像特征的音乐序列生成】图像特征在旋律生成中有什么用
jishude 首先援引一个资料网页:http://www.cosmosshadow.com/ml/%E5%BA%94%E7%94%A8/2016/03/01/%E9%9F%B3%E4%B9%90%E ...
- 会写网页 就会写手机APP #2-- 范例修正 , Hybrid Mobile Apps for ASP.NET Developers (Apache Cordova)
原文出处:会写网页 就会写手机APP #2-- 范例修正 , Hybrid Mobile Apps for ASP.NET Developers (Apache Cordova) 这是我的文章备份 ...
- 关于 NetBackup 应答文件(/tmp/NBInstallAnswer.conf)
关于 NetBackup 应答文件 在 UNIX 和 Linux 安装和升级期间使用 NetBackup 应答文件 (/tmp/NBInstallAnswer.conf),以便: 覆盖某些默认值. 避 ...
- FreeRTOS笔记
任务的创建和删除(静态方法) 任务创建后要开启调度器. FreeRTOSConfig.h 1. 改宏 使能静态创建函数. 会出现,有两个函数未定义. Cortex-M中断管理(上) NVIC:嵌套向量 ...
- 第011课_串口(UART)的使用
from: 第011课_串口(UART)的使用 第001节_辅线1_硬件知识_UART硬件介绍 1. 串口的硬件介绍 UART的全称是 Universal Asynchronous Receiver ...
- python_87_shelve模块
'shelve模块是一个简单的key,value将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式(只支持pickle)' #序列化,将数据写入文件 import ...
- python_94_类变量实例变量
class Role: n=123#类变量 name='我是类name' list=[] def __init__(self,name,role,weapon,life_value=100,money ...
- python_90_hashlib模块
#用于加密相关的操作,3.x里代替了2.x中的md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import hashlib ...
- java中栈、堆和方法区的关系
另外,常量池在方法区中