【测试功能篇 01】Jmeter 压测接口最大并发量、吞吐量、TPS

压力测试,我们针对比较关键的接口,可以进行相应的压力测试,主要还是测试看看接口能抗住多少的请求数,TPS稳定在多少,也就是吞吐量多少

 安装

  • Jmeter的安装很简单,官网下载地址 http://jmeter.apache.org/ ,解压软件包后运行bin目录下的jmeter.bat就可以了

 

配置中文编码

bin目录下的jmeter.properties

sampleresult.default.encoding=utf-8

配置代理 (方法二需要)

如果说公司内网有做代理,那么就需要配置公司的代理服务,这样才能访问网络,完成后面我们需要的安装jmeter插件实现梯式线程压测的线程与监听器(TPS压测图等,带jp@的监听器)的引用。如果网络不通,是无法安装好对应的插件的,完成下面方法二的梯式递增线程的压测方式

方法一:运行时配置 

jmeter.bat -H proxy.xxx.com -P 8080 -u 账号 -a 密码

方法二:配置文件配置

bin目录下的 system.properties文件

//具体格式看内网情况
http.proxyHost=proxy.xxx.com
https.proxyHost=proxy.xxx.com
http.proxyPort=8080
https.proxyPort=8080

配置证书(方法二需要)

     下载证书   

步骤1:使用chrome浏览器打开jmeter插件官网,链接:https://jmeter-plugins.org 。

步骤2:在地址栏点击锁图标,下拉菜单点击“连接是安全的”,次级菜单点击“证书有效”。

步骤3:在弹出的证书信息页面,点击“证书路径”,选择根证书“xxxCA”,点击“查看证书”。

步骤4:在弹出的证书信息页面,导出Base64编码文件,选择目录放好,用于后续导入D:\xxxCA.cer

    

       导入证书

步骤1以管理员身份运行windows命令行工具,然后切换到jdk安装目录下的jre\lib\sercurity目录。

例如  cd /D C:\Program Files\jdk1.8.0_272\jre\lib\security

注意:务必管理员身份运行,否则后续步骤导入证书到密钥库会失败,提示  “keytool 错误: java.io.FileNotFoundException: cacerts (拒绝访问。)”。

 

步骤2输入以下命令,导入证书。 证书路径就是前面下载的路径

keytool -import -alias CA -keystore cacerts -file D:\xxxCA.cer

输入密钥看库口令: changeit

是否信任次证书:y

步骤3输入以下命令,检查证书是否导入成功。

keytool -list -keystore cacerts -alias CA

压测操作 

操作:这里我有两种模式去压测

方法一:

是直接创建  线程组,然后把请求,请求头,报告,TPS压测图等都创建出来,用来可视化观察压测过程数据,吞吐量的值,可以在聚合报告看

这种方法,比较常用,在线程组中进行设置线程数,每秒执行,那么这个线程数一般就是业务要求的并发用户数,也就是同一时刻,能支持多少用户请求,基于的是系统的用户量,业务的要求,来指定的数值

方法二:

还是一种,就是不知道用户体谅,比如系统用户比较少,不太清楚并发情况,那么可以用插件,梯式增加线程数,直到我们的吞吐量稳定在一个区间,可以通过TPS压测图来看到,随着一开始线程从0增加,TPS(每秒事务数)在递增,达到一定的线程数时,也就来到了系统的瓶颈,TPS开始趋于稳定,然后线程数再增加,那么TPS可能就是下降了,说明在峰值稳定区间,就是系统能支撑住最佳的一个并发数值了。

这种方式适合寻求:如何找到系统的最大并发量。此时,需要我们先做负载测试(负载测试概念:简单来说:逐步增加并发用户数,找出被测系统的最大可接受的并发用户数,并考察系统性能的变化),通过逐步加压,来找到最大并发用户数。那么当我们找到一个区间,怎么找到具体的值呢?

在区间中逐步增加步长,出现以下任意现象时,即是最大并发用户数:

1.出现连续报错

2.平均响应时间超过1.5秒(1.5秒是行业标准)

3.tps出现下降趋势

安装相应jmeter 插件(前提)

1:安装jmeter 管理插件:
下载地址:https://jmeter-plugins.org/install/Install/,将下载下来的jar包放到jmeter文件夹下的lib/ext路径下,然后重启jmeter。

 2:接着打开 选项-Plugins Manager-在Available Plugins中找到Custom Thread Groups,jdbc - Standard Set 安装这两个插件,然后点击右下角图标进行安装重启,安装完成后就可以在Installer Plugins列表中看到,那么接下来就可以执行创建一个线程梯式增加组了

 

 

 

创建测试计划
1.右键”测试计划“》添加》线程

选择”jp@gc - Stepping Thread Group“,插件

默认设定值如下:

jp@gc - Stepping Thread Group填写数据,场景为在5秒内增加10个并发用户数,并运行30秒,再继续在5秒内增加10个并发用户数,重复循环,直至并发用户数达到100个后运行脚本60秒。然后在每1秒内减少5个并发用户数,直到减为0,结束脚本的运行

 

2.添加 取样器- HTTP请求 创建请求

 这里比较简单,类似Postman 

 

3.添加 配置元件- HTTP信息头管理器

注意点在于,我们测试接口的时候,接口一般都是需要认证用户登录,这里我比较简单的去添加一个请求头,放了一个Cookie,这里的Cookie是我在登录系统中,在浏览器控制台中的请求头找到的Cookie信息复制出来的,时间一久了会失效,就需要重新在系统上请求,重新获取,这里比较合理的做法应该是要先创建一个登录请求,然后关联我们用户信息放在一个CSV表格导入到Jmeter中,配置相关信息去获取,但是这种比较麻烦,先不去关注。

 

 

4.添加 监听器

察看结果树、汇总报告、聚合报告、汇总图、TPS(每秒事务数)、RT(响应时间)、AT(活动线程)

吞吐量可以在聚合报告看到,具体的测试图,可以看看TPS

5.分析压测结果 

TPS: 这里刚好出现的异常,当然具体要看是什么异常,我这里测试的时候是刚好cookie失效了。如果说是因为线程过大了,报异常,那么TPS就会下降,中间会有一段峰值趋于稳定,就是这个接口所能抗住的一个最佳的并发量了。然后我们可以接着再去调整最大线程数,重新反复压测,直到获得一个最佳的并发数。

2分多钟时,TPS达到峰值,大概就是60-75,可以接着把线程数从100调整到这个区间,重新进行压测,看看吞吐量会不会有变化

 

2分多钟时,接口的响应时间也是比较可观 每秒请求是800ms左右

汇总报告,吞吐量在51,这是一个平均值,整个测试下来的均值

6..结论

基于上面的测试过程,可以得出一个大致的结论,这个接口的并发量大概是60-75区间 

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

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

相关文章

笔记53:torch.nn.rnn() 函数详解

参数解释: (1)input_size():即输入信息 Xt 的每个序列的独热编码向量的长度,即 len(vocab) (2)hidden_size():即隐变量 h 的维度(维度是多少,就代表用几个数…

go语言学习之旅之Go语言数据类型

学无止境,今天学习Go 语言数据类型 Go(或Golang)是一种静态类型语言,这意味着变量的数据类型必须显式声明,并且在运行时不能更改。以下是Go中的一些基本数据类型: 这里仅介绍最常用的类型 数值类型: int: …

实在智能携手中国电信翼支付,全球首款Agent智能体亮相2023数字科技生态大会

11月10日-13日,中国电信与广东省人民政府联合主办的“2023数字科技生态大会”在广州隆重举行。本届大会以“数字科技焕新启航”为主题,邀请众多生态合作伙伴全方位展示数字科技新成果,包括数字新消费、产业数字化、智能电子、人工智能大模型等…

CentOS to 浪潮信息 KeyarchOS 迁移体验与优化建议

浪潮信息KeyarchOS简介 KeyarchOS即云峦操作系统(简称KOS), 是浪潮信息研发的一款面向政企、金融等企业级用户的 Linux 服务器操作系统。它基于Linux内核、龙蜥等开源技术,支持x86、ARM 等主流架构处理器,其稳定性、安全性、兼容性和性能等核心能力均已…

软件质量保护与测试(第2版)学习总结第十三章 集成测试

很多人都认为微软是一家软件开发公司,事实上我们是一家软件测试公司。 ---比尔盖茨 集成测试是在单元测试的基础上将多个模块组合在一起进行测试的过程。 13.1.1 区别 单元测试主要关注模块内部,系统测试则是在用户的角度来评价系统&#xff…

万宾科技智能井盖传感器,提升市政井盖健康

市政井盖就是城市里不可或缺的基础设施之一,关于它的监测工作可马虎不得。它承载着保护市民的交通安全以及城市正常运转的重要使命。虽然现在城市化的速度很快,但是传统的市政井盖管理方式变得有些力不从心了。井盖的覆盖范围很广,如果单单依…

飞熊领鲜参加「第十届中国产业数字化大会」获创新企业数字化百强

11月16日至17日,托比网“第十届中国(南京)产业数字化大会”在南京举行。作为“中国(南京)电子商务大会”的一部分,本次会议由江苏省商务厅、南京市人民政府指导,南京市商务局、南京市鼓楼区人民…

Android设计模式--原型模式

一,定义 原型模式就是用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象 也就是说用户从一个实例中复制出一个内部属性一致的对象,这个被复制的对象就是原型。 原型模式多用于创建复杂的或者构造耗时的实例,因为这…

Flutter的Widget, Element, RenderObject的关系

在Flutter中,Widget,Element和RenderObject是三个核心的概念,它们共同构成了Flutter的渲染流程和组件树的基础。下面简要介绍它们之间的关系: 1.Widget Widget是Flutter应用中的基础构建块,是一个配置的描述&#xf…

《向量数据库指南》——TruLens + Milvus Cloud构建RAG深入了解性能

深入了解性能 索引类型 本例中,索引类型对查询速度、token 用量或评估没有明显影响。这可能是因为数据量较小的关系。索引类型对较大语料库可能更重要。 Embedding 模型 text-embedding-ada-002 在准确性(0.72,平均 0.60)和答案相关度(0.82,平均0.62)上优于 MiniLM Embeddin…

数组两种初始化方法

1.数组的静态初始化 静态初始化即在初始化数组时即规定了数组的大小以及数组中每个元素的值 有三种静态初始化的方法: 以初始化一个int类型的数组为例: 1.数组类型[] 数组名 new 数组类型[]{元素1,元素2...元素n}; int[] a new int[]{1,3,5}; 2.数…

JavaEE初阶 01 计算机是如何工作的

前言 今天开始进行对JavaEE的一些基本总结,希望大家能在阅读中有所收获,如有错误还望多多指正. 1.冯诺依曼体系结构 这个体系结构相信学计算机的同学都不陌生,但是你真的知道这个体系结构说的是什么嘛?请听我娓娓道来.首先我先给出一张冯诺依曼体系结构的简图 你可以理解为当前…

ROS话题(Topic)通信:自定义msg - 例程与讲解

在 ROS 通信协议中,数据是以约定好的结构传输的,即数据类型,比如Topic使用的msg,Service使用的srv,ROS 中的 std_msgs 封装了一些原生的数据类型,比如:Bool、Char、Float32、Int64、String等&am…

轻地图+数据闭环加速落地,觉非科技获多家头部车企定点

‍作者 |张祥威 编辑 |德新 智能驾驶日益普及,「轻地图」和「数据闭环」成为各家能力比拼的关键,车企对此的需求也逐渐迫切。 11月16日,觉非科技宣布已与多家头部主机厂达成量产定点合作,围绕轻地图与数据闭环服务,支…

RabbitMQ-高级篇-黑马程序员

代码: 链接: https://pan.baidu.com/s/1nQBIgB_SbzoKu_XMWZ3JoA?pwdaeoe 提取码:aeoe 在昨天的练习作业中,我们改造了余额支付功能,在支付成功后利用RabbitMQ通知交易服务,更新业务订单状态为已支付。 但…

22款奔驰S450L升级钢琴内饰板 完美的融合进去

钢琴拉丝桃木面板装车让人眼前一亮,内饰的豪华度和高级感立马提升一个等级,带条纹的亮面烤漆,温润高端。 为什么升级更换桃木饰板?因为升级桃木饰板可以更换掉一些镀铬银色的装饰件,这样就可以让整车的豪华感大大的提升…

设计模式-代理模式-笔记

动机(Motivation) 在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要远程外的访问等),直接访问会给使用者、或者系统结构带来很多…

【Rust】快速教程——冻结表达式

前言 以前谁是魔我杀谁,现在我杀谁谁就是魔。——《拔魔》 \;\\\;\\\; 目录 前言Rust基本知识结构体元组结构体局部作用域冻结字面量Vec元素的类型由第一个push进的类型确定type别名from和intoTryFrom和TryInto 表达式 Rust基本知识 结构体 #[derive(Debug)] str…

React项目首页中用canvas实现星空

文章目录 前言代码使用后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:前端系列文章 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,感谢大家…

【ArcGIS Pro二次开发】:CC工具箱1.1.1更新_免费_安装即可用

CC工具箱1.1.1更新【2023.11.15】 使用环境要求:ArcGIS Pro 3.0 一、下载链接 工具安装文件及使用文档: https://pan.baidu.com/s/1OJmO6IPtMfX_vob3bMtvEg?pwduh5rhttps://pan.baidu.com/s/1OJmO6IPtMfX_vob3bMtvEg?pwduh5r 二、使用方法 1、在下…