Jmeter测试学习笔记

第一章 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.mzph.cn/diannao/771.shtml

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

相关文章

公网IP地址如何申请SSL证书?有免费的IP ssl吗?

如果用户没有域名或只有公网IP地址或者不方便使用域名,IP地址ssl证书这一特殊的证书可以为IP地址实现HTTPS的安全保护,提高网站数据传输的安全性。 IP地址申请SSL证书的基本步骤 IP ssl证书下载---注册填写230916https://www.joyssl.com/certificate/sel…

数据可视化(五):Pandas高级统计——函数映射、数据结构、分组聚合等问题解决,能否成为你的工作备用锦囊?

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

【不看后悔】AGI时代,这些工具真的能让你收入翻倍!

引言 在数字化浪潮中,AIGC已经成为不可或缺的一部分 无论你是一名内容创作者,还是简单的社交媒体用户,免费的AI工具都能在多个层面助你一臂之力。这些工具涵盖从文本创作到图像设计,再到视频制作等多个方面,不仅可以…

Amazon云计算AWS之[1]基础存储架构Dynamo

文章目录 Dynamo概况Dynamo架构的主要技术主要问题及解决方案Dynamo的存储节点数据均衡分布的问题一致性哈希算法改进一致性哈希算法 数据备份数据冲突问题成员资格及错误检测容错机制临时故障处理机制永久性故障处理机制 Dynamo概况 面向服务的Amazon平台基本架构为了保证其稳…

C语言学习/复习24---

一、指针的进阶 1.指针的类型 2.字符指针 注意事项1:数组名是首元素地址,指针变量存储地址 3.指针数组 4.数组指针 注意事项1:&数组名与数组名 案例1:数组地址与数组首元素地址 数组地址的使用: ​​​…

理解字符串常量池(JVM)

大纲 思考 如何查看字符串常量池(StringTable)? 使用 jclasslib 插件打开字节码,选择 常量池 -> 显示所选 -> CONSTANT_String_info,左侧过滤后的内容即为字符串常量池 字符串常量池、方法区、永久代和元空间的…

如何将你的iOS应用成功上架App Store(图文详解)

上架基本需求资料 1、苹果开发者账号(如还没账号先申请- 苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestFlight测试然后提交审核的完整流程! …

草稿 | word格式的网址索引

参考文献引用 参考文献上标设置:(改为上标的快捷键为ctrlshift“”) https://jingyan.baidu.com/article/cbcede07d786c743f50b4d47.html 多个参考文献一起引用: https://blog.csdn.net/neptune4751/article/details/119921187 交…

社交媒体数据恢复:与你科技

在数字时代,数据是我们生活中的重要组成部分。无论是个人照片、文档,还是企业的重要资料,数据在我们的生活中扮演着举足轻重的角色。然而,数据丢失的问题时常发生,给我们带来了很多麻烦。幸运的是,当下众多…

UE4 拍摄、保存并浏览相册

效果: 1.新建CameraActor类 2.修改截图保存路径 3.编写BP_Camera蓝图 注意路径 Save Image函数要在执行拍照和BeginPlay事件执行一次 按钮执行拍摄事件 3.编写UMG蓝图 技巧:让Index加1、减1循环赋值 4.把BP_Camera挂在玩家上

步步精科技获得发明型专利,提升Type-C连接器行业竞争力

在电子科技日新月异的时代,连接器作为电子设备中不可或缺的一部分,其安全性、稳定性和性能水平直接关系到设备的使用效果和用户体验。深圳市步步精科技有限公司(以下简称“步步精科技”)一直致力于连接器领域的技术创新和产品研发…

Ubuntu上阅读Android源码工具

由于Android源码过于庞杂,里面有多种语言源文件,想只用一IDE统一索引是不现实的。我个人便使用AS阅读JAVA代码,VS看C/C代码,在Ubuntu上不能使用SI,所以直接放弃。在framework开发这个层面上来讲,因为大部分…

vue中使用水印

1. 在utils下创建watermark.js const watermark {}/**** param {要设置的水印的内容} str* param {需要设置水印的容器} container* param {需要设置水印的每一块的宽度} canWidth* param {需要设置水印的每一块的高度} canHeight* param {需要设置水印的字体} canFont* para…

Qt - 窗口

目录 1. 前言 2. 菜单栏(QMenuBar) 2.1. 创建菜单栏 2.1.1. 方式一 2.1.2. 方式二 2.2. 在菜单栏中添加菜单和创建菜单项 2.3. 在菜单项之间添加分割线 2.4. 综合示例 3. 工具栏(QToolBar) 3.1. 创建工具栏 3.2. 设置停靠位置 3.2.1. 方式一 3.2.2. 方式二 3.3. 设…

桥接模式【结构型模式C++】

1.概述 桥接模式是一种结构型设计模式,是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 这种模式涉及到一个作为桥接的接口&am…

go语言并发实战——日志收集系统(四) 利用tail包实现对日志文件的实时监控

Linux中的tail命令 tail 命令是一个在 Unix/Linux 操作系统上用来显示文件末尾内容的命令。它可以显示文件的最后几行内容,默认情况下显示文件的最后 10 行。tail 命令 非常有用,特别是在我们查看日志文件或者监视文件变化时。 基本用法如下&#xff1a…

Flume在大数据集群下的配置以及监控工具Ganglia的部署安装

前提:需要有三台虚拟机(hadoop102,103,104)配置好相关基础环境 安装 将安装包上传到/opt/software中 tar -zxf /opt/software/apache-flume-1.9.0-bin.tar.gz -C /opt/module/修改 apache-flume-1.9.0-bin 的名称为 flume mv /opt/module/…

element table加减列

// 有个特别注意的地方,下面这行代码,key一定绑的是item,千万不要绑定index,不然就会出现异常 //<el-table-column v-for"(item,index) in titleList" :key"item" min-width"150" align"center"><el-table fit :data"d…

从智能家居到智能城市:物联网中的隐私和安全风险

随着科技的不断进步&#xff0c;智能设备和物联网&#xff08;IoT&#xff09;技术已经逐渐渗透到我们的生活中。从智能家居设备到智能城市的实现&#xff0c;这些设备和技术可以让我们的生活变得更加便捷和高效。但是&#xff0c;这些设备也带来了不可忽视的隐私和安全风险。 …

【QT进阶】Qt Web混合编程之html、 js的简单交互

往期回顾 【QT进阶】Qt Web混合编程之VS2019 CEF的编译与使用&#xff08;图文并茂超详细介绍&#xff09;-CSDN博客【QT进阶】Qt Web混合编程之QWebEngineView基本用法-CSDN博客【QT进阶】Qt Web混合编程之CMake VS2019编译并使用QCefView&#xff08;图文并茂超详细版本&…