Jmeter测试学习笔记

news2024/12/24 23:59:35

第一章 jmeter基础知识

一.Jmeter工具中的组件

1.测试计划:Jmeter测试的起点。容器。

2.线程组:代表一定的用户

3.取样器:发送请求的最小单元

4.逻辑控制器:处理请求逻辑

5.前置处理器:请求之前的操作

6.后置处理器:请求之后的操作,可以用来进行数据提取

7.断言:判断请求结果是否正确

8.定时器:延迟请求

9.配置元件:配置请求

10.监听器:收集测试结果

二.组件作用域

下面这三个在配置元件中是默认一般必须存在的。

结论1:组件能作用于同级组件

结论2:组件能作用于同级组件下的子组件

结论3:组件能作用于父组件

三.目前市面上的接口

1.基于webservice的协议接口,使用xml来传输数据

2.基于dubbo的协议接口,使用json来传输数据

3.基于http的协议接口,使用json来传输数据

四.Jmeter接口测试实战

接口关联

1.正则表达式提取器

 1)变量名:可以随意定义

2)正则表达式,要包括有左边界和右边界以及(.*?),而且必须唯一

3)$1$ 表示取第一个正则,$2$表示取第二个正则

4)匹配数字,表示取第一个匹配到的值

5)默认值,没有匹配到就使用默认值

2.Json提取器

jsonpath的语法规则:只适用于json数据

{"name":"11","code":"code11"}

$代表根目录

.代表子节点

$.name          $.code

$.*:代表将根目录下的所有子节点值的获取

3.取数组的值通过 [下标],下标从0开始

1.变量名

2.是json path表达式

3.匹配数字,表示取第一个匹配到的值

4.默认值,没有匹配到就使用默认值

四.接口断言

常用的断言有:响应断言,json断言,和beanshell断言

1.响应断言

如何校验数据库?

用beanshell来实现

第二章 性能测试

一.性能测试的目的

性能测试是通过性能测试工具(Jmeter,loadrunner)通过特定方式,对系统施加一定的压力;正常,异常负载以及峰值来对系统进行实施压力,得到各项性能指标,保证系统的性能需求。

价值和目的:

1.评估系统的能力

2.识别系统的弱点:瓶颈,弱点

3.检查系统隐藏的问题

4.检验系统的稳定性和可靠性

二.性能测试指标理解透彻以及测算

1.指标

【虚拟用户数】:可以理解成线程,一个线程=一个虚拟用户

【并发数】:指在某一时间,一定数量的虚拟用户同时对系统的某个功能进行交互。一般通过集合点来实现。

【事务】:一个接口,多个接口,或一个流程都可以是事务。事务代表一个完整的功能,有由测试人员决定。一般把一个流程作为一个事务。

【场景】:性能测试的用例,

【响应时间RT】response time,

          平均响应时间:

           中位数:

           90%:从小到大排序,第90位的时间

           95%

           99%

        基准测试:一般设定一个用户请求接口,为200-500ms.

        压力测试:N个用户并发请求接口,一般设置为2s.

【TPS】:是系统的重要性能指标,用于衡量系统在一定时间内能够处理的事务数

transaction

如果一个接口是一个事务的话,TPS的数量=吞吐量

计算公式:总的事务数/总的运行时间=每一秒能完成多少个事务

(1)没有更详细的数据:根据二八定律(80%的事务在20%的时间完成)计算

TPS=(总的事务数*80%)/(总的运行时间*20%)

(2)如果有更详细的数据:根据业务的增长等,分情况计算

【QPS】:每一秒的查询率

【HPS】:每一秒的点击率(客户端的)

【吞吐量】:用来衡量网络成功传输的数据量,单位Byte/s

【资源利用率】:服务器的资源:CPU,内存,磁盘,网络

三.性能测试流程

1.需求的分析以及需求确定(指标值,场景,环境,人员)

2.性能测试计划和方案制定

基准测试:怎么做

负载测试:

压力测试:

稳定性测试:

3.性能测试准备阶段

人力,硬件,软件,环境折算

干净,保持各个版本一致

4.测试执行阶段

脚本生成和增强

场景设计

指标监控

性能瓶颈定位和性能调试

5.测试报告和总结

四.性能脚本的生成以及完善和增强

1.通过jmeter代理服务器录制脚本

 1)设置客户端的代理,

控制面板-> internet选项->连接-> 局域网设置->勾上代理输入jmeter所在电脑的ip个端口8888,  端口一般默认8888,

2)录制脚本

2.完善脚本以及增强脚本

token:一般用于鉴权

jmeter的聚合报告中的吞吐量=TPS

1)逻辑控制器:事务控制器,仅一次控制器,吞吐量控制器

量=TPS

吞吐量控制器:

Based on:

             Percent...:默认,按百分比来分配流量

              Total..:代表总次

2)定时器:尽量少用

3)集合点:在jmeter中叫同步定时器,用于实现并发

4)使用线程组

如下图:

其中线程属性中

线程数:代表虚拟用户数

Ramp -up:代表多久加载完这些线程数

循环数:3,每个线程发送的总请求数:100*3=300个
 

五.Jmeter的插件安装以及监控使用

1.下载一个插件管理包jmter-plugins-manger版本的jar包,放到jmeter的lib/ext的目录下,重启jmeter

六.实际性能压测的场景设置

场景:性能测试用例

一般大部分公司的并发量很难超过500,京东淘宝除外。如果有5000以上,1万,十万,百万一定要做集群。

1.单接口的基准测试:使用一个用户测试接口5分钟

目的:在没有任何压力的情况下,查看各项性能指标。

第三章:压力测试

一.关注哪些参数:

1.响应时间

   135,258原则

2.TPS

每秒通过的事务数

3.错误率

90%的正确率就可以接受,如果是对应的银行,金融的不行,需要有对应的容错机制

4.CPU和内存的使用情况

CPU:占有率最好不超过80%,有20%的空闲

磁盘:读写操作频率不要过高

二.如何设置场景

负载测试:逐步增加并发数

稳定性测试:持续时间确定。查看该时间段内的性能情况

用聚合报告查看压力测试结果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker部署的nginx配置ssl证书https

申请ssl证书,已腾讯的免费证书为例 2.上传证书到linux服务器 2.1 映射ssql目录 首先确保容器命令已映射宿主机目录,不一定是ssl,也可以是其他路径。 2.2 上传文件到指定路径 以我映射的ssl路径为例,我上传到宿主机的 /usr/local…

字母加密(C语言)

一、题目; 为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。例如,可以按以下规律将电文变成密码:将字母A变成字母E,a变成e,即变成其后的第4个字母,W…

【Shell语言】linux中awk命令

linux中awk命令 看这里放声嘶吼谁也不舍得沉默 宽阔也抓不住我下一秒钟的echo ——《暂时失控》苏打绿 awk命令简介 AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫 AWK 是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 B…

密码学 | 数字签名 + 数字证书

🥑原文:数字签名和数字证书的原理解读 - 知乎 🥑声明:后文图中若未明确指明,默认是 Bob 的公钥或私钥。 Step1:Bob 有两把钥匙,一把是公钥,另一把是私钥。 Step2:Bob 把…

Redis中的BigKey

Redis中的BigKey 文章目录 Redis中的BigKey什么是BigKey?BigKey的危害找到Bigkey删除BigKey优化BigKeyBigKey对持久化的影响对AOF日志的影响对AOF重写和RDB的影响 什么是BigKey? 大 key 并不是指 key 的值很大,而是 key 对应的 value 很大。…

Docker操作容器打包(commit),压缩(save),挂载(load)

文章目录 前言一、容器打包二、将镜像压缩成tar包三、将tar包挂载为镜像结束 前言 将容器打包成镜像时,你正在将应用程序及其所有依赖项、文件和配置文件捆绑到一个可移植的、独立的单元中。这样做可以确保您的应用程序在不同环境中具有一致的运行方式,…

使用自己训练好的模型YOLOv8进行X-AnyLabeling自动标注

目录 1. 下载项目2. 创建环境3. 运行程序3.1 自行下载和添加官方模型3.2 使用自己训练好的模型标注自己的数据集 本机环境:win 10, GPU 1. 下载项目 git clone https://github.com/CVHub520/X-AnyLabeling.git2. 创建环境 仔细查看项目的README文件 …

FastGPT+ChatGLM3本地部署

FastGPTChatGLM本地部署 本地部署硬性要求:显存13g以上 关于环境的安装就不多赘述,conda pip 可以解决大部分问题 ChatGLM本地运行 m3e-basechatglm3-6b 在huggingface上可以下载上述模型,如果没有梯子可以使用huggingface镜像 从git…

Linux shell 脚本基础与部署SpringCloud实战

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

Java学习笔记零基础入门1

目录 第一章 Java概述 1.1 什么是程序 1.2 Java 技术体系平台 1.3 Java 重要特点 1.4 Java 的开发工具 4.1 工具选择 1.5 Java 运行机制及运行过程 5.1 Java 语言的特点:跨平台性 5.2 Java 核心机制-Java 虚拟机 [JVMjavavirtual machine] 1.6 什么是JDK&…

C++ PTA 天梯赛 L1-003 个位数统计 L1-005 考试座位号 【范围for循环】【. 与 -> 访问成员】

L1-003 个位数统计 最后一个测试点考察的是当N特别大时,如果用整数存会数据溢出,改成字符串可以增大范围 知识点: 1.范围 for 循环,它对于遍历容器(比如字符串)中的元素非常方便。在这里,N 是…

JavaEE初阶Day 10:多线程(8)

目录 Day 10:多线程(8)单例模式阻塞队列1. 生产者消费者模型1.1 生产者消费者模型解耦合1.2 生产者消费者模型削峰填谷 2. 生产者消费者代码3. 阻塞队列实现 Day 10:多线程(8) 单例模式 单例模式&#xf…

2024经常用且免费的10个网盘对比,看看哪个比较好用!

网盘在我们的工作和学习中经常会用到,也是存储资料的必备工具,有了它,我们就不用走到哪都带着移动硬盘了,而目前市场上的主流网盘还有数十款,其中有免费的也有付费的,各家不一,今天小编就来为您…

嵌入式操作系统FreeRTOS(队列管理)

1.队列管理 (1)数据存储 队列可以保存有限个具有确定长度的数据单元。队列可以保存的最大单元数目被称为队列的“深度”。在队列创建时需要设定其深度和每个单元的大小。通常情况下,队列被作为FIFO (先进先出)使用,即数据由队列尾…

Win10安装DeepSpeed 实测成功

I. 完整流程 按照DeepSpeed要求步骤安装,即 Windows Windows support is partially supported with DeepSpeed. On Windows you can build wheel with following steps, currently only inference mode is supported. Install pytorch, such as pytorch 1.8 cu…

Tomcat和Spring Boot配置https

生成测试证书 生成证书前,先验证本地是否正确配置jdk环境变量,如果jdk环境变量配置正确,在命令行程序输入生成证书的命令。 keytool -genkey -alias tomcat -keyalg RSA -keystore "F:\job\apache-tomcat-8.5.29\key\freeHttps.keysto…

goland2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 Goland 是一款由 JetBrains 公司开发的集成开发环境(IDE),专门用于 Go 语言的开发。它提供了丰富的功能和工具,帮助开发者更高效地编写、调试和管理 Go 语言项目。 功能特点&#x…

OpenHarmony实战开发-如何实现进入页面,点击动画卡片,动画播放并且文本发生变化。

介绍 Lottie是一个适用于OpenHarmony的动画库,它可以解析Adobe After Effects软件通过Bodymovin插件导出的json格式的动画,并在移动设备上进行本地渲染, 可以在各种屏幕尺寸和分辨率上呈现,并且支持动画的交互性,通过…

设备基础命令,路由基础

直连路由 静态路由 动态路由 根据路由器学习路由信息、生成并维护路由表的方法包括直连路由(Direct)、静态路由(Static)和动态路由(Dynamic)。直连路由:路由器接口所连接的子网的路由方式称为直连路由;非直连路由:通过路由协议从别的路由器…

【机器学习300问】75、如何理解深度学习中Dropout正则化技术?

一、Dropout正则化的原理是什么? Dropout(随机失活)正则化是一种用于减少神经网络中过拟合现象的技术。Dropout正则化的做法是: 在训练过程中的每次迭代中,随机将网络中的一部分权重临时"丢弃"(即…