1、随机变量介绍

随机变量应用场景:在一些数据要求不重复,或者对数据取值需要正态分布的时候,我们可以采用随机变量组件来满足需求。

随机变量用户自定义变量的区别:

  • 随机变量(random variable):在线程每个次循环执行时,取值都会重新生成。
  • 用户自定义变量(User defined variables):在同个线程中,用户自定义变量只会被引用一次,后面不管循环运行多少次,变量值都相同。

2、随机变量界面详解

添加随机变量组件的操作:选中“线程组”右键 —> 添加 —> 配置元件 —> 随机变量

随机变量界面如下:

随机变量组件的详细说明:

  • 名称:随机变量组件的自定义名称,见名知意最好。
  • 注释:即添加一些备注信息,对该随机变量组件的简短说明,以便后期回顾时查看。
  • 变量名称Variable Name):用于在其它元件中引用该值,形式:${variable_name}
  • 输出格式Output Format):比如设置为000,会格式化为001,002。假设Output Format设置为user_000,那么格式化后,第一个参数值为user_001,第二个参数值为user_002,以此类推。默认格式为Long.toString(),但是默认格式下,还是可以当作数字使用。
  • 最小值Minimum Value):生成的最小随机数。
  • 最大值Maximum Value):生成的最大随机数。
  • 随机种子Seed for Random function):随机函数的种子,供随机数生成器使用的seed构造器。如果为空,则使用默认的Random构造器。
  • 每线程(用户)?Per Thread(User)?):如果设置为True,那么每个线程独享各自的随机数生成器。如果设置为False,那么所有线程共享同一个随机数生成器。

提示:无特殊需求的情况下,建议Seed for Random function不填,Per Thread(User)?设置为False,也就是这两项全部默认。

说明:随机种子是什么?

随机种子是用于产生随机输出的值。

由于随机数函数实际上只是一个函数,输出的“随机”值总是基于种子。换句话说,如果您使用相同的种子值为随机输出生成器播种,您将得到相同的“随机”结果。这就是为什么大多数随机数发生器,使用系统时间来播种它们自己,因为这是高度可变的。

现在回到你的问题。如果你指定一个种子,你会得到固定的随机输出。这使您可以轻松地使用完全相同的随机值重复测试,只需传入相同的种子即可。

3、随机变量的使用

(1)测试计划内包含的元件

添加元件操作步骤

  1. 创建测试计划。
  2. 创建线程组:选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组
  3. 在线程组中添加配置元件"随机变量"组件:选中“线程组”右键 —> 添加 —> 配置元件 —> 随机变量
  4. 在线程组里面添加取样器“HTTP请求”组件:选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求
  5. 在线程组里面添加监听器“察看结果树”组件:查看结果,选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树

最终测试计划中的元件如下:

点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。

提示:如果有多个线程组,需要使用同一个随机变量组件,就把随机变量组件提到和线程组同一级。

(2)线程组界面内容

我们定义循环次数为3,也就是进行3次该请求。(可以修改线程数)

(3)随机变量界面内容

随机变量界面中,我们定义最小值为1,最大值为999,输出格式为000,。

随机变量的引用名称为randomVariables,之后我们使用${randomVariables}的方式,就能够引用该值了。

如下图所示:

(4)HTTP请求界面内容

我们在HTTP请求界面中可以引用随机变量的值,可以写在任何可输入的位置。

如下图所示:

(5)查看结果

我们可以看到下图中,每个请求中的随机变量都是不同的值,证明随机变量组件成功的生成了我们所需要的数值。

以上就是JMeter中随机变量组件的使用方法。

『动善时』JMeter基础 — 19、JMeter配置元件【随机变量】的更多相关文章

  1. 『动善时』JMeter基础 — 8、JMeter主要元件介绍

    目录 1.测试计划(Test Plan) 2.线程组 3.取样器(sampler) 4.逻辑控制器(Logic Controller) 5.配置元件(Config Element) 6.定时器(Tim ...

  2. 『动善时』JMeter基础 — 6、使用JMeter发送一个最基础的请求

    目录 步骤1:创建一个测试计划 步骤2:创建线程组 步骤3:创建取样器 步骤4:创建监听器 步骤5:完善信息 步骤6:保存测试计划 步骤7:查看结果 总结:JMeter测试计划要素 当我们第一次打开J ...

  3. 『动善时』JMeter基础 — 20、JMeter配置元件【HTTP Cookie管理器】详细介绍

    目录 1.HTTP Cookie管理器介绍 2.HTTP Cookie管理器界面详解 3.JMeter中对Cookie的管理 (1)Cookie的存储 (2)Cookie的管理策略 4.补充:Cook ...

  4. 『动善时』JMeter基础 — 37、将JMeter测试结果写入Excel

    目录 1.环境准备 (1)引入操作Excel文件的基础JAR包 (2)引入封装自定义操作Excel文件的JAR包 2.准备测试需要的数据 3.测试结果写入Excel演示 (1)测试计划内包含的元件 ( ...

  5. 『动善时』JMeter基础 — 41、使用JMeter连接数据库(MySQL)

    目录 1.为什么要使用JMeter连接数据库 2.JMeter连接数据库的前提 3.JDBC连接配置组件界面介绍 4.JMeter连接数据库演示 (1)测试计划内包含的元件 (2)测试计划中添加链接数 ...

  6. 『动善时』JMeter基础 — 44、JMeter对数据库的更新操作

    目录 1.执行一条insert语句 2.insert语句实现参数化 3.一次执行多条insert语句 4.使用Beanshell生成加密数据示例 (1)测试计划内包含的元件 (2)JDBC连接配置组件 ...

  7. 『动善时』JMeter基础 — 7、jmeter.properties文件常用配置

    目录 1.默认语言设置 2.配置默认编码格式 3.GUI图标放大比例设置 4.功能区工具栏图标大小设置 5.视图区目录树图标大小设置 6.内容区编辑字体设置 7.添加JMeter元素快捷键设置 8.捕 ...

  8. 『动善时』JMeter基础 — 14、使用JMeter发送Post请求

    目录 1.Post请求参数类型说明 2.用于演示的项目说明 3.发送Post请求示例 (1)测试计划内包含的元件 (2)请求参数类型为x-www-form-urlencoded 4.请求参数form- ...

  9. 『动善时』JMeter基础 — 16、JMeter配置元件【HTTP信息头管理器】

    目录 1.用于演示的项目说明 2.测试计划内包含的元件 3.HTTP请求界面内容 4.查看脚本执行结果 5.添加请求头信息(HTTP信息头管理器) 6.优先级说明 7.补充:常见请求头信息 JMete ...

随机推荐

  1. 【java框架】SpringBoot(3) -- SpringBoot集成Swagger2

    1.SpringBoot web项目集成Swagger2 1.1.认识Swagger2 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体 ...

  2. golang 性能调优分析工具 pprof(下)

    golang 性能调优分析工具 pprof(上)篇, 这是下篇. 四.net/http/pprof 4.1 代码例子 1 go version go1.13.9 把上面的程序例子稍微改动下,命名为 d ...

  3. Android Studio详解项目中的资源

    •目录结构 •作用 所有以 drawable 开头的文件都是用来放图片的: 所有以 mipmap 开头的文件都是用来放应用图标的: 所有以 value 开头的文件夹都是用来放字符串.样式.颜色等配置的 ...

  4. 开源一个比雪花算法更好用的ID生成算法(雪花漂移)

    比雪花算法更好用的ID生成算法(单机或分布式唯一ID) 转载及版权声明 本人从未在博客园之外的网站,发表过本算法长文,其它网站所现文章,均属他人拷贝之作. 所有拷贝之作,均须保留项目开源链接,否则禁止 ...

  5. 为什么数据库字段要使用NOT NULL?

    最近刚入职新公司,发现数据库设计有点小问题,数据库字段很多没有NOT NULL,对于强迫症晚期患者来说,简直难以忍受,因此有了这篇文章. 基于目前大部分的开发现状来说,我们都会把字段全部设置成NOT ...

  6. C++并发与多线程学习笔记--参数传递详解

    传递临时对象 陷阱 总结 临时对象作为线程参数 线程id的概念 临时对象构造时的抓捕 成员函数指针做线程函数 传递临时对象作为线程参数 创建的工作线程不止一个,线程根据编号来确定工作内容.每个线程都需 ...

  7. 第一个真正的 GUI 程序——Tkinter教程系列02

    第一个真正的 GUI 程序--Tkinter教程系列02 前言 欢迎光临我的个人博客 chens.life Tk 系列教程: Tkinter教程系列01--引言和安装Tk 我们将编写一个英尺和米的转换 ...

  8. WPF -- 使用当前进程打开自定义文件的一种方式

    问题描述 当双击打开自定义格式的文件时,希望使用当前正在运行的进程,而不是另起一个进程. 本文介绍一种方式解决如上问题,方案参考user3582780的解答 设置自定义文件格式的默认打开方式 参考链接 ...

  9. Vue3 封装第三方组件(一)做一个合格的传声筒

    各种UI库的功能都是非常强大的,尤其对于我这种不会 css 的人来说,就更是帮了大忙了. 只是嘛,如果再封装一下的话,那么用起来就会更方便了. 那么如何封装呢? 封装三要素 -- 属性.插槽.事件.方 ...

  10. Jenkins 自定义构建结果

    1. Jenkins 构建原理 2. 脚本执行失败立即停止执行 3. 脚本执行失败继续后面的执行但最终的结果是构建失败 1. Jenkins 构建原理 Jenkins 的构建成功和脚本执行成功是两个事 ...