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

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 = 峰值请求数 / 峰值时间 * 系数

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/703268.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis:string类型

文章目录 string基本认识重谈set重谈getmset和mgetsetnx/setex/psetexincr系列命令字符串其他操作string的编码方式string的应用场景缓存功能session会话手机验证码 本篇开始总结的是Redis中的string类型 string基本认识 Redis中的string来说,所有的key都是字符串…

Java数据类型:基本数据类型

Java是一种强类型语言,定义变量时,必须指定数据类型。 // 变量必须指定数据类型 private String username;初学者不免有个疑问:在实际编写代码的过程中,该如何选择数据类型呢? 回答这个问题之前,先来解决…

构建智能制造时代的制造行业数据中台总体架构

随着数字化技术的快速发展和智能制造的兴起,制造行业正面临着前所未有的机遇和挑战。在这一背景下,构建制造行业数据中台成为推动制造业转型升级的重要战略举措。本文将深入探讨制造行业数据中台的总体架构,助力制造企业把握数字化转型的主动…

vsCode 设置上下级文件夹目录分离展示?

默认情况下,vsCode目录文件夹会使用/合并展示在一行,这样视觉上看着并不直观,设置目录文件分离展示方法如下: 1、点击左下角设置图标,点击setting; 2、搜索栏输入compact; 3、取消勾选第一个选…

MySQL存储引擎介绍

查看MySQL数据库中创建表的信息 如上图所示,当我们使用命令show create table server_info\G;可以显示我们所创建的表的信息,只显示两个字段,第一个字段是Table 即是创建的表的名称,第二个字段是Create Table即是创建的表的字段的…

Spring Boot集成activiti快速入门Demo

1.什么事activiti? Activiti是一个工作流引擎,可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN2.0进行定义,业务流程按照预先定义的流程进行执行,实现了系统的流程流activiti进行管理,减少业务系统由于流程变更进行系统升级改造的工作量,从而提高系…

东方伟大思想家和哲学家颜廷利:有形的财富越与无形的财富

在世界的广阔舞台上,财富常被看作衡量国家与民族成就的重要尺度。然而,在物质和精神的天平上,真正具有深远意义的,往往是后者的累积与扩散。正如东方哲学的现代诠释者、当代中国教育界的杰出教授颜廷利所阐述,“有形的…

【C语言每日题解】输入n(1~9),再输入n个长度不超过50的字符串,给这n个字符串排序并输出它们

🥰欢迎关注 轻松拿捏C语言系列,来和 小哇 一起进步!✊ 🌈感谢大家的阅读、点赞、收藏和关注 解题思路: 首先:使用一个二维字符数组来存储输入的字符串。由于n的范围是1到9,我们可以直接定义一…

实锤,阿里云盾会拦截百度云防护的IP!

今天凌晨,一位站长联系上云加速客服,反馈说,网站突然出现了502的情况。 在检查云防护子域名配置没有问题、本地强制回源没有问题的情况下,我们得出结论是要么服务器内防火墙拦截了云防护的IP段,要么服务器商拦截了云防…

使用make_blobs生成数据并使用KNN机器学习算法进行分类和预测以及可视化

生成数据 使用make_blobs生成数据并使用matplotlib进行可视化 完整代码: from sklearn.datasets import make_blobs # KNN 分类器 from sklearn.neighbors import KNeighborsClassifier # 画图工具 import matplotlib.pyplot as plt # 数据集拆分工具 from sklea…

【保姆级介绍自动化的讲解】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

泰盈科技IPO终止:客户集中度高,业绩未达目标,高管薪酬较高

近日,上海证券交易所披露的信息显示,泰盈科技集团股份有限公司(下称“泰盈科技”)及其保荐人中金公司撤回上市申请文件。因此,上海证券交易所决定终止对该公司首次公开发行股票并在主板上市的审核。 据贝多财经了解&am…