Jmeter基础篇:配置元件详解

FTP请求默认值

Jmeter 支持对 FTP协议的程序进行性能测试,当多个 FTP 程序的场景具有相同的配置时,我们可以把这些相同点提取出来,只需要配置一次,这就是 FTP 请求默认值元件做的事情。类似我们程序开发中常说的抽象、封装。下面我们来认识一下参数。

在这里插入图片描述

  • 服务器名称或IP:上传或者用来下载的服务器地址(即被测对象)
  • 端口号:指定的FTP传输端口
  • Remote File:远程 FTP 服务器文件路径
  • Local File:本地文件路径
  • Local File Coutents:本地文件内容
  • Get(RETR):下载文件选项
  • Put(STOR): 上传文件选项
  • Use Binary mode?:是否以二进制方式传输
  • Save File in Response?:文件内容是否保存到响应中去,如果选择了,且运行FTP请求成功后,我们可以再“查看结果树----响应数据”中看到内容。

HTTP Authorization Manger

HTTP 认证是一种安全机制,在客户端、浏览器或者程序向服务器发起请求时需要提供用户名及密码且验证通过后(拿到凭证)才能继续发起交互。Jmeter Authorization Manager 即 Jmeter 对于 HTTP 认证的实现,我们只需要在测试计划中添加此配置元件,然后配置即可。
在这里插入图片描述

  • Clear auth on each iteration?:是否每次迭代清空凭证,如果清空则每次请求前都会进行验证。
  • 存储在授权管理器中的授权:可以在此处保存授授权信息,比如账号密码等信息。

HTTP Request Defaults

在实际测试计划中我们经常会碰到 Http Sampler 请求有较多参数与配置会重复,每一个Http Sampler 单独设置的话比较浪费时间,为了节省工作量,Jmeter 提供了 Http Request Defaults 元件,用来把这些重复的部分封装起来,一次设置多少次使用。

Http Request Defaults 的配置项与 Http request 基本一致,功能如下页面:
在这里插入图片描述

Java Request Defaults

通过 Java Request Defaults 来配置 Java Request 的请求默认值,Java 请求默认值可以设置的类有两个: JavaTest 与 SleepTest。

如图所示,我们对 SleepTest 的 SleepTime 进行了设置,在 Java请求时我们把SleepTime清空,那么当测试执行时两次迭代的时间间隔 5 秒;如在Java请求中在设置一个 SleepTime ,那么他会覆盖 Java请求默认值的设置。此元件没有实际作用,配合 Java请求(而Java请求在实际工作中并不用到,仅仅作为示例)
在这里插入图片描述

Random Varible

该元件能够生成随机数字,且可以指定输出格式,我们可以把它与字母组合来代替业务单据编号,比如我们想生成一个客户编号,格式如 CUST_XXXXXX,那么我们就介意用此元件来完成。

参数说明如下:

  • Variable Name:生成随机数保存到此变量中
  • Output Format:变量输出的格式
  • Minimun Value:随机数最小值
  • Maximum Value: 随机数最大值
  • Seed for Random function:随机数种子
  • Per Thread(User)?:生成随机变量是否在线程组中共享,True,共享;False:不共享
    上面客户编号的例子貌似可以用,但遗憾是的客户编号可能会有重复的几率,这往往在业务中是不允许的,其实我们还有另外一个配置元件能帮我们完成这个要求,下面我们看一下计数器
    在这里插入图片描述

Counter

计数器顾名思义也就是测试执行过程中会记录迭代次数,计数器界面参数如下:
在这里插入图片描述

  • 启动:记录数据起始值
  • 递增:记录迭代次数的步长,1后是2,步长就是1
  • 最大值:记录的最大值
  • 数字格式:计数器格式,可以是数字,如 000,000(6位长度,3位隔开);字符加数字,例如CUST_000000(字符加6位数字)
  • 引用名称:计数器记录的值可以存入引用名(变量),可提供其他元件调用
  • 与每个影虎独立的跟踪计数器:每个线程都有自己的计数器,相互不干扰
  • 在每个线程组迭代上重置计数器:每次迭代复原计数器。

Login Config Element

改元件用来配置默认用户名与密码,有些Sampler 要验证用户名与密码;如果在 Sampler 中没有配置用户名与密码,那么会自动用 Login Config Element 中的配置来填充。

在这里插入图片描述

定时器

Jmeter 中的定时器,一般被我们用来设置延迟与同步。定时器的执行优先高于 Sampler ,在同一作用域(比如控制器下)有多个定时器存在时,每一个定时器都会执行;如果想让某一定时器仅对某一 Sampler 有效,则可以把定时器加在此 Sampler 节点下。

Gaussian Random Timer

高斯定时器,生成一个呈高斯分布的时间间隔。

在这里插入图片描述
参数说明:

  • 偏差:设置的偏差值,是一个浮动范围,单位毫秒
  • 固定延迟偏移:固定延时时间
    我们可以用它来模拟用户思考时间(用户提交表单提前填写表单及思考的时间)

Constant Timer

看名称大家也知道是一个固定值的定时器,多用来模拟思考时间
在这里插入图片描述

Syncharonizing Timer

在性能测试中需要模拟多用户并发的场景,Jmeter 提供同步定时器来实现此需求,如图所示,我们设置了10个用户(线程)一起释放,即相当于10个用户并发。
在这里插入图片描述

Constant Throughput Timer

固定吞吐量定时器,翻译过来比较生硬;意思是尽量保持 Sampler 生产的吞吐量(吞吐量大家可以理解成TPS)在一个固定的范围内;JMeter 通过 目标吞吐量 来控制吞吐量。如果吞吐量大过固定值(如下图中的目标吞吐量 对象值),则增加迭代的间隔时间;反之减少。增大或者减少多少是由Jmeter 根据吞吐量、并发线程数来计算的。
在这里插入图片描述

下面我们来看看目标吞吐量的选项:

  • 只有此线程:针对当前线程,也就是每个线程之间不想不干扰,都分开计算需要延时多少时间
  • 所有活动线程:针对所有线程,把所有线程的吞吐量合在一起作为因子计算
  • 当前线程组中的所有活动线程:针对当前线程组中的所有线程
  • 所有活动线程(共享):线程延迟计算是基于任意一个线程上次运行的时间,也就是随便获取一个线程的运行时间来进行计算,即然是随机,结果就不一定准确,所以只能是努力控制吞吐量在某一个范围
  • 当前所有线程中的所有活动线程共享:在当前线程组中任取一个线程的上次运行时间来计算延时,与上面意思相近。

BeanShell Timer

Jmeter支持 BeanShell 脚本语言,BeanShell Timer 就用 Beanshell 来设置线程延迟间隔。

先看一个例子,如图所示,我们写了一段脚本,让线程暂停 sleeptime 的时间, sleeptime 又是在用户定义变量中定义的(设置为 3000 毫秒),Beanshell Timer 中直接可以再Parameters 中引用变量,当然也可以是常量。次脚本运行时,两次迭代间隔就是3000毫秒。

参数说明如下:

  • 重置解释器:是否每次迭代都设置重置解释器,默认Fasle。官方建议是在长时间运行的脚本中,设置True

  • 参数:Beanshell的入参,如上图所示中,sleeptime就是脚本的入参,入参可以是单个变量,也可以是数组

  • 文件名:Beanshell的脚本是可以从文件中读取的

  • Script:可以再下方直接编写脚本

  • 日志:直接可以调用 Log类来写日志。如图,调用 log.error()写日志
    在这里插入图片描述

  • Ctx:可以通过获取JmeterContent 实例来获取运行时信息,如下图所示,获取线程号 cxt.getThreadNum()。
    在这里插入图片描述

  • Vars:能够访问变量获取对应的值,也可以设置变量。如下图设置了一个变量company,然后用log.error()进行输出,同时这个变量company也可以由其他元件调用,图中Java请求的Lable设置为${company},运行后如图
    在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七月的小尾巴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值