• 0
  • 0
分享
  • JMeter 随机数生成技巧:Random 和 UUID 算法
  • Liam 2023-10-18 15:51:32 字数 1151 阅读 2960 收藏 0


在压力测试中,经常需要生成随机值来模拟用户行为。JMeter 提供了多种方式来生成随机值,本文来具体介绍一下。


随机数函数


JMeter 提供了多个用于生成随机数的函数,其中最常用的是__Random函数。该函数可以生成一个指定范围内的随机整数或浮点数。语法如下:


${__Random(min,max)}


其中,min 和 max 是生成随机数的范围,可以是整数或浮点数。例如,${__Random(1,100)} 会生成一个 1 到 100 之间的随机整数。以下是随机手机号最后 3 位数字的例子:


11111.png


查看传过去的数据:


22222.png


也可以用 BeanShell 来实现。添加前置处理器: BeanShell PreProcessor。


33333.png


生成代码:

import java.util.Random;
Random rand = new Random();
int num = rand.nextInt(900) + 100;
vars.put("random", String.valueOf(num));


然后在 body 中引用变量 random:${random}。


UUID 函数


UUID 用来生成一个随机 ID。UUID 和 Random 函数的区别是:Random 生成随机数,是可能会重复的。UUID 是一定不会重复的。语法如下:

${__UUID()}


随机字符串函数


JMeter 还提供了__RandomString函数,可以生成指定长度的随机字符串。该函数有多个参数,可以指定生成字符串的长度、字符集和前缀等。语法如下:

${__RandomString(length,charsToUse,prefix)}


其中,length是生成字符串的长度,charsToUse是可用字符集合,prefix是字符串的前缀。


例如,${__RandomString(10,abcdefghijklmnopqrstuvwxyz,TEST)}会生成一个以“TEST”为前缀、长度为 10、由小写字母组成的随机字符串。


随机变量函数


除了使用内置函数生成随机数外,JMeter 还支持使用随机变量生成随机数。随机变量可以通过 CSV 数据文件、用户定义的变量等方式进行定义。语法如下:

${__V(myVar_${__Random(1,5)})}


其中,myVar_是变量名的前缀,__Random(1,5)会生成一个 1 到 5 之间的随机整数,最终生成的随机变量名如myVar_3。


使用随机变量可以更加灵活地控制生成的随机数。


总结


JMeter 提供了多种方式来生成随机数,可以根据不同的需求选择合适的方法。在测试过程中,合理使用随机数可以提高测试的真实性和可信度。

知识扩展:




  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 我如何接触到的 Apifox今年三四月份的时候,公司已经上线的项目,发现有部分接口存在重复提交的情况,接口也没做好幂等,导致数据库落下了大量重复数据,于是我就开始优化接口,加了redis分布式锁和一些防重校验,好了,背景介绍完毕。锁是加上了,但是吧,要想测试就需要模拟压测环境,这个时候如果完全依赖测试同事,很显然不是我的风格,本着宁可麻烦自己也不麻烦别人的原则(减少扯皮,节省时间),于是想要自己做并发测试,看一看锁有没有效果。刚开始先想到了JMeter,毕竟也在测试那多多少少了解过,但是当我安装完准备使用的时候,发现配置很复杂,即使我叫来了测试同事,也很难讲的明白,于是乎我就在网上搜索的时候,...
            0 0 877
            分享
          •   今天采访了一个在游戏行业做测试的同学,他所在的游戏公司是做大型多人在线角色扮演类的游戏,类似传奇游戏。他所在的公司目前有1200多人,是上市公司,目前游戏产品在国内海外都有市场。  因为我是一个对游戏无感的人,所以我就问了一些大家可能会感兴趣的问题,提前帮大家探探路。  PS:以下问题不代表权威或专业发声,只是测试行业的同学的个人感受  1.你感觉游戏测试行业就业如何?  我目前在游戏测试行业做了4年了,软件测试行业太卷了,游戏行业很好找工作,只要做功能测试就可以。但是这个行业对于新人来说跨度挺大的,但是做久了就很好搞了,业务熟悉了,怎么样都可以做,如果你对游戏一些基础的业务都不清楚,公司...
            0 0 830
            分享
          •   在一般的面试环节过后,聊过自我介绍、业务问题、基本信息、简历信息这些,HR往往会跟你聊聊人(xian)生(liao)~  却有人好不容易过关斩将到了终面,在跟公司高管在轻松的氛围下“闲聊”后,与即将到手的offer失之交臂。  其实,面试官没有太多时间来“闲聊”,去了解你的私生活,问的每个话题都是想从侧面更多的了解你,每一句都是带有目的的,因为从应聘者进公司的那瞬间,面试可能就已经开始了。  在面试中,不存在脱口而出而没有用意的问题。  面试官会从见到面试者或是第一次电话起,直到确定是否录用为止,都是在评估应聘者的过程,有些面试官会用一些轻松的语句让气氛变得轻松活跃,让应聘者放松警惕,从而...
            0 0 932
            分享
          •   接口自动化测试中通常都有鉴权机制,就是判断是否在登录状态下,已登录方可调用接口,未登录则不可调用。本文将带领大家学习使用rest-assured框架实现基于cookies和token的鉴权关联,实现接口自动化测试。  基于cookies的鉴权关联  1. 业务接口熟悉  码同学全栈接口项目中有基于cookies的查询余额接口,必须先调用登录接口获取cookie并传递给查询余额接口,两个接口的信息如下:  2. 通过抓包查看cookies  在页面上登录银行系统,通过Chrome开发者工具抓包,可以看到登录成功以后接口返回中产生了cookie信息:  3. 使用rest-assured框架实...
            0 0 404
            分享
          •   一、写在前面  本文讨论的基础,是基于Robotframework(简称RF)+Selenium测试框架的Web前端自动化测试。针对Robotframework和Selenium的安装、使用等基础知识不做介绍,只讨论在进行自动化脚本编写过程中遇到的元素定位失败问题。  二、但是你不得不了解的事  RF框架在做前端自动化时,支持的元素定位方式有:css定位、id定位、name定位、xpath定位和js定位。在介绍如何使用这几种方法之前,你不得不认识并熟悉我们Web测试的基础工具(客户端)——浏览器。  以Chrome浏览器为例,Chrome的开发者工具栏的Elements面板,提供了用户捕捉...
            13 14 2116
            分享
      • 51testing软件测试圈微信