jmeter脚本录制+编辑

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是压测请求相应数据的原始文件

### 使用 JMeter 录制脚本 #### 启动 JMeter 并创建测试计划 安装完成后,在命令行中运行 `jmeter` 或者通过图形界面启动。在 JMeter 中,测试计划是测试的最高层次。需要右键点击 **Test Plan**,然后选择 **Add -> Threads (Users) -> Thread Group** 创建一个线程组来定义并发用户行为[^2]。 #### 添加录制控制器 在线程组上右键单击并选择 **Add -> Logic Controller -> Recording Controller** 来创建一个录制控制器,该控制器用于存储录制下来的请求。 #### 设置 HTTP(S) 测试脚本记录器 在测试计划中添加 “HTTP(S) Test Script Recorder”,即 HTTP 代理服务器。此组件允许捕获浏览器发出的 HTTP 请求并将它们转换成 JMeter 可理解的形式。 ```bash # 如果遇到无法找到 "HTTP(S) Test Script Recorder" 的情况,请确保已启用插件支持。 ``` #### 配置浏览器代理 为了使浏览器能够发送流量给 JMeter 进行分析,需配置所使用的 Web 浏览器使其指向 JMeter 提供的服务端口作为其代理服务器。对于 Chrome 浏览器来说,默认情况下会自动检测系统级别的网络设置;也可以手动指定代理地址为 localhost 和默认监听端口号8888(具体取决于实际配置)[^5]。 #### 安装根 CA 证书解决 HTTPS 抓包问题 当尝试抓取 HTTPS 协议的数据流时可能会碰到警告页面提示连接不安全的问题——这是因为缺少必要的 SSL/TLS 认证机制的支持。解决方案是在目标机器以及参与交互的应用程序内部部署由 JMeter 自动生成的安全凭证: 1. 确认 JMeter 的 bin 文件夹内存在名为 ApacheJMeterTemporaryRootCA.crt 的文件; 2. 将上述提到的 .crt 文件导入至操作系统级的信任库之中; 3. 对于特定应用如现代版 Edge/Chrome/Firefox,则还需单独向这些应用程序提供相同的认证资料副本以便顺利完成握手过程[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值