性能测试学习三-脚本录制+编辑

JMeter的录制功能

jmeter(macOs)下安装证书可以参考这个:https://blog.csdn.net/u010013191/article/details/89844440

录制脚本步骤:

1.创建https test script recorder:

在这里插入图片描述

2.添加线程组

目的是录制器录制出来的http请求全部都存放在线程组里
在这里插入图片描述

3.添加录制控制器

在这里插入图片描述

4.配置

在这里插入图片描述

  • Target Controller:这里指定录制出的脚本要放到哪里去。如果你想把不同的脚本放到不同的线程组中去,在录制的时候就可以拆分开。
  • Grouping:分组

grouping的设置有如下几种:
在这里插入图片描述

  • 第一个选项是Do not group samples,也就是不分组,就没有事务的概念了,每个请求都会单独统计TPS和响应时间信息

  • 第二个选项是Add separators between groups,在组间添加分隔,作为就是为了好看
    在这里插入图片描述

  • 第三个选项是Put each group in a new controller,每个组放一个新的控制器,作用也就是为了好看

  • 第四个选项是Put each group in a new transaction controller,将每个组放一个新的事务控制器中,Transaction Controller 和 Simple Controller 的区别就是 Transaction Controller 会做为事务统计脚本执行的时间,而 Simple controller 不会

  • 第五个选项是Store 1st sampler for each group only,只存储每个组的第一个样本,资源也会下载,重定向也会开启

在这里插入图片描述
配置ca证书,点击start开始录制
在这里插入图片描述
prefix:请求名的前缀
create new transaction after requests(ms):一个请求完成之后,如果下一个请求超出这里设置的时间间隔,就会常见一个新的事物

5.添加结果树

校验正否正确
在这里插入图片描述

6.添加断言

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.添加聚合报告

在这里插入图片描述

性能脚本

在这里插入图片描述
TCP 脚本和 HTTP 脚本最大的区别就是,TCP 脚本中发送和接收的内容完全取决于 Socket server 是怎么处理的,并没有通用的规则
在这里插入图片描述

  • Number of Threads(users):指的是用户数(线程数),这个是产生tps,而一个线程产生多少tps,取决于系统的响应时间有多快,所以用tps这个概念来承载系统的负载能力,而不是用这里的线程数
  • Ramp-up Period(in seconds):递增时间,以秒为单位。指的就是上面配置的线程数将在多长时间内会全部递增完;如果配置了100线程,ramp-up配置了10秒,那么就是100/(10s*1000ms)=1线程/100ms;如果配置了10线程,ramp-up配置了1秒,那么就是10/1000=1线程/100ms
  • Loop Count:这个值指的是一个线程中脚本迭代的次数
  • Delay Thread creation until needed:JMeter 所有的线程是一开始就创建完成的,只是递增的时候会按照上面的规则递增。如果选择了这个选项,则不会在一开始创建所有线程,只有在需要时才会创建;如果不选择,在启动场景时,JMeter 会用更多的 CPU 来创建线程,它会影响前面的一些请求的响应时间,因为压力机的 CPU 在做其他事情嘛。如果选择了的话,就会在使用时再创建,CPU 消耗会平均一些,但是这时会有另一个隐患,就是会稍微影响正在跑的线程。这个选项,选择与否,取决于压力机在执行过程中,它能产生多大的影响。如果你的线程数很多,一旦启动,压力机的 CPU 都被消耗在创建线程上了,那就可以考虑选择它,否则,可以不选择。
  • Scheduler Configuration:这里有一句重要的话,If Loop Count is not -1 or Forever, duration will be min(Duration, Loop Count * iteration duration)。举例来说,如果设置了 Loop Count 为 100,而响应时间是 0.1 秒,那么 Loop Count * iteration duration(这个就是响应时间) = 100 * 0.1 = 10秒。即便设置了 Scheduler 的 Duration 为 100 秒,线程仍然会以 10 秒为结束点。
  • 如果没有设置 Scheduler 的 Duration,那么你会看到,在 JMeter 运行到 10 秒时,控制台中会出现如下信息:
  2019-11-26 10:39:20,521 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-10

性能报告参数解读

max:最大的请求响应时间
error%:错误率
throughput:吞吐量
received KB/sec:每秒从服务器端接收到的数据量
sent KB/sec:每秒从客户端发送的请求的数量

静默压测

命令格式:jmeter -n -t $jmx_file -l $jlt_file
jmx压测程序脚本文件,压测控制过程记录在jmx文件中
jtl是压测请求相应数据的原始文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值