性能测试工具—jmeter的基础使用

发布于:2024-05-16 ⋅ 阅读:(83) ⋅ 点赞:(0)

1.Jmeter三个重要组件

1.1线程组的介绍: 

特点:

  1. 模拟用户,支持多用户操作
  2. 多个线程组可以串行执行,也可以并行执行

线程组的分类:

  1. setup线程组:前置处理,初始化
  2. 普通线程组:编写脚本
  3. teardown线程组:后置处理,环境恢复等

线程组的属性: 

参数介绍:

1.2HTTP请求:

参数介绍:

作用:向服务器发送http及https请求

参数:

1.3查看结果树:

案例1: 查看结果树中的HTTP请求中,有多个子的HTTP请求

2.Jmeter参数化

2.1本质:

使用参数的方式来替代脚本中的固定的测试数据

2.2实现方式:

  1. 定义变量(最基础)
  2. 文件定义的方式(所有测试数据都是固定的情况下)
  3. 数据库的方式(灵活,业务测试常用)
  4. 函数的方式(灵活,业务测试常用)

2.3用户定义的变量

2.4用户参数:

2.5CSV数据文件设置:

2.6函数:

3.Jmeter断言:

3.1定义:

检查实际的返回结果是否与预期结果保持一致

自动校验机制:自动判断响应状态码(2xx:成功,4xx/5xx:失败)

3.2分类:

  1. 响应断言:对任意格式的响应数据进行断言
  2. json断言:对json格式的响应数据进行断言
  3. 持续时间断言:对响应时间进行断言

3.3响应断言:

参数:

3.4JSON断言

参数:

3.5断言持续时间:

4.Jmeter关联:

4.1定义:

请求之间有依赖关系,一个请求的响应数据作为另一个的请求参数来传递

4.2分类:

  1. 正则表达式提取器:提取任意格式的响应数据
  2. Xpath提取器:提取HTML格式的响应数据
  3. JSON提取器: 提取JSON格式的响应数据

4.3正则表达式介绍:

正则表达式:就是一个公式,或者说一套规则,使用这套规则可以从任意字符串中提取出想要的数据内容

结论:

通过一个正则表达式可以提取出多组数据,每组数据设置对应的左边界和右边界即可

每一组数据都可以有一个或者多个值

正则表达式提取器:

4.4xpath提取器

参数:

4.5json提取器:

参数:

JMeter属性:

5.自动录制脚本

原理:

5.1jmeter脚本录制步骤

1.添加HTTP代理服务器,并进行配置

•加HTTP代理服务器:测试计划(右键)->非测试元件->HTTP代理服务器

•配置代理服务器的参数

2.开启windows操作系统的浏览器代理

3. 启动代理服务器,开始录制

4. 在浏览器页面中进行操作,成功后,就能在JMeter当中看到抓取到的接口请求了。

5.2当使用代理的过程中,发现抓不到包,几个可能的情况:

  1. 过滤规则设置有问题
  2. 重启Jmeter代理服务器或者重启Jmeter
  3. 换浏览器来使用(Chrome、IE)
  4. 检查PC机中的代理设置是否处于可用状态
  5. 拔掉网线,抓包

6.逻辑控制器:

6.1如果(if)控制器:

6.2循环控制器:

6.3ForEach控制器:

7.定时器:

7.1同步定时器:

7.1.1使用同步定时器的操作步骤?

1.添加线程组,设置线程数为n

2.添加HTTP请求

3.添加同步定时器

•设置并发线程数:同时发送请求的虚拟用户数

•设置超时时间:

Ø建议设置:不设置的话,若没有达到设置的线程数会一直死等

Ø不能设置太小:等待时间后还没达到设置的线程数,会释放已到达的线程

4.添加查看结果树

5.添加监听器-聚合报告

7.2常数吞吐量定时器:

案例:

(1)一个用户以 20QPS (20 次/s) 的频率访问百度首页,持续一段时间,统计运行情况

案例:1、模拟100个用户同时访问百度首页,统计各种高并发情况下运行情况(2)2个用户针对 (服务器的QPS要求:20QPS (20 次/s)) 的频率访问百度首页,持续一段时间,统 计运行情况

7.3固定定时器:

案例:

(1)IHRM系统登录错误3次后,锁定1分钟,等待1分钟后重新输入正确的用户名密码登录成功

请求方法:POST

请求URL:http://ihrm-test.itheima.net/api/sys/login

请求头:Content-Type: application/json;charset=UTF-8

请求体:{"mobile":"13800000002","password":"123456"}

步骤:

添加线程组

添加HTTP请求1 - 错误1次

添加HTTP请求2 - 错误2次

添加HTTP请求3 - 错误3次

添加HTTP请求4 - 正确用户名密码

在HTTP请求4下,添加固定定时器

添加查看结果树

8.jmeter分布式:

8.1应用场景:

当单个测试机无法模拟用户要求的业务场景时,可以使用多台测试机进行模拟,就是Jmeter的分布式测试 .

8.2原理:

8.3分布式相关注意事项:

  1. 关闭防火墙
  2. 所有的控制机、代理机、服务器都在同一个网络上
  3. 所有机器的Jmeter和JAVA版本必须一致
  4. 关闭RMI SSL开关

8.4分布式配置与运行:

9.jmeter报告:

9.1聚合报告:

补充:

正常情况下,响应时间的结果取平均值

当响应时间最大值特别高(超出平均水平特别多),导致平均值不能代表正常/大部分水平时,可以使用百分比时间

9.2HMTL报告:

10.并发数计算:

10.1普通方法: 

并发tps = 总请求数/总时间

只能满足最基本的要求,但是不能很好覆盖系统正常的使用情况

10.2二八原则

并发tps = 总请求数 * 80% / 总时间 * 20%

满足系统绝大多数情况下的应用场景的需要

根据业务运营数据的统计计算(通常用来做稳定性测试

并发TPS = 有效请求数 * 80% / 有效时间 * 20%

当运营数据统计越精确时,计算出的并发TPS与实际的越接近

根据用户峰值业务操作来计算(通常用来做压力测试

并发TPS = 峰值请求数 / 峰值时间 * 系数

满足峰值请求时间段内的负载量,系数取决于项目组对于未来业务量的评估