jmeter使用

本文详细介绍了JMeter的使用,包括工具栏、测试计划、线程组的配置,如线程数、启动延迟等。还涵盖了http请求、http请求默认值、cookies管理、结果树查看、聚合报告的分析、断言、参数化、正则表达式提取器、循环控制器、计数器、Debug Sampler、同步定时器、仅一次控制器的使用方法。此外,还讲解了如何下载JMeter连接MySQL的jar包和如何连接数据库进行测试。最后,介绍了通过命令行模式运行JMeter脚本的步骤。
摘要由CSDN通过智能技术生成

Jmeter工具栏

红框中的内容显示线程情况,左边是活动线程数,右边是线程总数

20210627203237509.png

测试计划

测试计划页面默认情况下这样显示:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5dGltZXd5cA==,size_16,color_FFFFFF,t_70

独立运行每个线程组(例如在一个组运行结束后启动下一个):默认不勾选,默认各线程组并行、随机执行。勾选后,用于控制测试计划中的多个线程组的执行顺序,保证顺序执行各线程组

线程组

线程组界面默认如下图所示

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5dGltZXd5cA==,size_16,color_FFFFFF,t_70

线程数:Jmeter java进程下启动的线程,用来模拟真实用户数,1线程数 = 1用户数,记住线程是用户,要模拟100个用户登录,就要设置100个线程数。

Ramp-Up时间(秒):启动线程所需的时间

Ramp-up 设置注意事项:

1、Ramp-up需要设置足够长的时间来避免在测试刚开始时工作量过大

假如需要大量线程的话,不建议设置成0,0 属于瞬时加压,如果设置 0,Jmeter 将在测试开始时就启动全部线程并立即发送请求,这样很容易让服务器达到饱满状态,且瞬间会增加很大的负载量,容易让服务器超载,这样是不合理的;

不合理的原因并不是因为平均压力值过高,而是因为所有线程都在初始状态时一起并发访问,从而引起不正常的初始访问峰值,可以通过 Jmeter 的聚合报告看到这种情况

2、Ramp-up还必须足够短,保证最后一个线程在第一个线程完成之前开始运行

如果 Ramp-up 过大,则会降低访问峰值的负载,即没有达到预期的压力峰值,无法获取准确的服务器最大负载情况

具体的表现为,一些线程还没有启动,初期启动的部分线程已经结束了,导致实际并发量并会小于预期并发量

 

如何确定一个合理的ramp-up period?

首先,让初始点击率接近平均点击率,前提是确定合理的访问量

初始的 ramp-up period = 平均点击率= 总线程/点击率;假如线程数=100,点击率=10次/s,则ramp-up period = 100/10 = 10s

循环次数:每个线程循环执行的次数,如果设置为永远,就一直执行

线程属性值的简单例子

20210627203518593.png

上图:10s 内启动并运行 10 个线程,一共启动 10 个线程,循环次数是2,总共发送 20 个请求(10*2),每秒启动一个线程,然后运行两次

调度器的作用

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5dGltZXd5cA==,size_16,color_FFFFFF,t_70

调度器的作用:控制每个线程组运行的持续时间以及它在多少秒后再启动

持续时间:线程组运行的持续时间

启动延迟:测试计划开始后,线程组的线程将在多少秒后再启动运行

调度器和循环次数的关系

循环次数有固定值且 ≠ -1,持续时间不会生效,以循环次数为准

循环次数设置为永远或 -1 时,持续时间才会生效,所以想要调度器起作用,循环测试要勾选永远

启动jemter

找到你安装的文件夹,找到bin文件夹,运行jemter.bat.打开jemter

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5dGltZXd5cA==,size_16,color_FFFFFF,t_70

 

新建线程组

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5dGltZXd5cA==,size_16,color_FFFFFF,t_70

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5dGltZXd5cA==,size_16,color_FFFFFF,t_70

 

线程数:虚拟用户数。一个虚拟用户占用一个进程或线程,设置多少虚拟用户数在这里也就是设置多少个线程数。

准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为20,准备时长为10s,那么需要10秒钟启动20个线程,也就是每秒钟启动2个线程。

循环次数:每个线程发送请求的次数。如果线程数为20,循环次数为100,那么每个线程发送100次请求,总请求数为20*100=2000。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本。

添加http请求

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5dGltZXd5cA==,size_16,color_FFFFFF,t_70

要发送一个get方法的http,设置为

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5dGltZXd5cA==,size_16,color_FFFFFF,t_70

要发送一个post方法的http,设置为

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5dGltZXd5cA==,size_16,color_FFFFFF,t_70

对比一下就很容易看出区别了,get请求直接填就好了,post请求需要添加值

名称:用于标识取样器,建议使用一个有意义的名称。

注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。

服务器名称或IP:HTTP请求发送的目标服务器名称或IP地址。

端口号:目标服务器的端口号,默认值为80。

协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https,默认值为http

方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。(一般使用get和post)

Content encoding:内容的编码方式,默认值为iso8859

路径:目标URL路径(不包括服务器地址和端口)

自动重定向:如果选中该选项,当发送HTTP请求后得到的响应是302/301时,JMeter 自动重定向到新的页面。

Use keep Alive:当该选项被选中时,jmeter 和目标服务器之间使用Keep-Alive方式进行HTTP通信,默认选中。

Use multipart/from-data for HTTP POST:当发送HTTP POST 请求时,使用Use multipart/from-data方法发送,默认不选中。

http请求默认值

一般情况下,我们在一个项目中调用的接口中协议、域名、端口、编码等都是相同的。当我们创建多个HTTP请求时,由于这些数据是必填项,所以,我们就需要不停地填写相同的数据。如果项目进行过程中出现了更改域名、更改端口号等情况,我们又需要把每一个请求中的数据都做更改,这样就很麻烦。

下面我们就来介绍一种方法将这些相同的参数设置为默认的,每次创建 HTTP 请求时就不用再输入了,这就需要我们配置【HTTP 请求默认值】来实现了

添加方式:线程组->配置元件->HTTP请求默认值

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5dGltZXd5cA==,size_16,color_FFFFFF,t_70

将接口中相同的协议、域名、端口、编码填写在HTTP请求默认值元件中,在接口请求中就不用再填写该信息了,如下图所示

http cookies管理器使用

某些接口提交数据,需要带上登录cookie,才能访问,怎样提取登录cookie呢?

可以先新建一个http的登录请求,放在所有http请求的最前面,然后在线程组下增加一个http cookies管理器放在最上面,做为全局cookies,无需填写内容,http cookies管理器会自动将登录请求中的cookie抓取,给登录请求后面的接口

察看结果树

新建一个察看结果树,里面不需要填写信息

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hhcHB5dGltZXd5cA==,size_16,color_FFFFFF,t_70

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值