问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

...未来迈向高级工程师绕不过的技能:JMeter压测

发布网友 发布时间:2024-09-28 12:59

我来回答

1个回答

热心网友 时间:2024-10-28 02:54

前言

因为工作需要,久违的从自己的有道云笔记中去寻找压测相关的内容,翻开之后发现还不错,温故一遍后顺便整理出来分享给大家。 题外话,工作8年多,有道云笔记不知不觉都6G多了,扫一眼下来尽是云烟过往,竟然还能发现Struts的东西,令人甚为感怀,挺好奇你们的云笔记长什么样子。 话说,我如果一直这么记下去,有朝一日能成为IT界的司马迁不哈哈?

为何JMeter

犹记得当年工作之初,压测根本不成为话题,当时的框架也相对复杂,和现在的SpringBoot用法简直云泥之别,在那种环境下,除了大公司,压测自然不是项目首要考虑的范畴。

但时过境迁,互联网井喷时代,信息爆炸式输出,大数据、云时代接踵而至,测试岗位的重要性逐步凸显,相应的压力测试、性能测试也成为项目绕不开的一环。

如果说一个Java程序员在迈向高级工程师必须要掌握主流的技能如SpringBoot、SpringCloud、MQ、k8S等等以外,还需要具备什么辅助技能,我可以很负责任的说,压测一定是未来挡在面前的一扇门。

为何这么讲,首先,并非所有的公司都有一定规模,都有自己的测试团队,或者测试人员都具备压测能力,反而有相当多的中小企业没有这些基础条件,但同时又承接了一定规模的项目,不要意外,这在关系网纵横交错的国内是很常见的事情。

我多年工作的经历告诉我,绝大部分程序员主要还是活跃在中小厂,这里面包含初级中级工程师,也包含因为各种原因从大厂下沉到中小厂的高级工程师,加上疫情造成市场下行压力变大的原因,我大胆判断未来的软件公司会走向碎片化,更小更精简的公司团队会承接更大更特殊的项目任务,这种现象会在之后一些年逐步显现。

那么,在这种团队中生存的程序员,如果未来要迈向高级工程师,压测就是必备的技能之一,只有测试阶段进行了反复的压测及优化,最终投入生产环境才会更安全可靠,这样的团队才会更被客户单位所认可。

这也是我专门出一篇JMeter压测相关文章的原因,尝试了好几个工具,还是觉得JMeter的实用性更强,压测结果也更可靠。

JMeter用法

安装其实挺简单,为了方便演示,我直接Windows上安装了,后面生产环境用法会讲Linux下安装,官网相关地址如下。

1)、官网:http://jmeter.apache.org/ ? 2)、下载:http://jmeter.apache.org/download_jmeter.cgi/3)、用户手册:http://jmeter.apache.org/usermanual/index.html

1、安装1)、下载2)、解压

解压后在bin目录双击jmeter.bat打开,界面如下。

2、使用1)、添加线程组

测试计划右键-添加-Threads(Users)-线程组

线程组配置看图片中红字说明

2)、HTTP请求默认值

线程组右键-添加-配置元件-HTTP请求默认值,设定一个默认的路径,之后就不用每个地方都重写一遍了。

3)、添加HTTP请求

线程组右键-添加-Sampler-HTTP请求,新建一个拿来压测的请求URL及参数。

这里参数给的是变量,变量名对应后面的配置文件,用${XXX}这样的形式写入。

目的是,模拟多个用户发出这个请求,即有多个user和多个token写入cookie,如:

userId1,userToken1

userId2,userToken2

userId3,userToken3

设置请求路径及变量如图所示

4)、模拟多用户请求

这里需要用到变量,线程组右键-添加-配置元件-CSV Data Set Config。

配置文件如下,自己设定一个id和token,在浏览器上F12查找一个拿来用。 或者使用程序生成几百几千个用户id,token,来模拟多用户访问。

5)、查看压测结果

执行压测后需要查看相关结果,线程组右键-添加-监听器-聚合报告,这里有很多包括表格、图表等等,一般就看聚合报告。

聚合报告如图所示,这里的Throughput属性就是指吞吐量,前面的Samples就是请求量。

含义:10000个请求的吞吐量是300-400之间,可以通俗理解为仅支持几百个并发(方便理解专业点一般不这么讲),很低,需要性能优化。

生产环境用法1、安装

1)、将apache-jmeter-3.3.zip上传到Linux服务器上;

2)、unzip xx.zip进行解压;

3)、如果报了找不到unzip命令,就执行yum install -y unzip zip安装上就可以了。

2、新建压测文件

1)、新建一个压测文件:如user_list.jmx,设定线程组中线程数为5000,循环次数为10,表示执行50000次;

2)、将这个文件上传到Linux服务器上;

3)、具体新建压测文件jmx的方法参照前面的讲解。

3、执行压测

1)、同级目录下,执行命令: ./apache-jmeter-3.3/bin/jmeter.sh -n -t user_list.jmx -l result.jtl

2)、启动jmeter进行压测,压测后的结果输出为result.jtl文件。

4、观测现象

在执行过程中,可以另开启一个窗口,执行top命令查看服务器承受的负载。(主要看红框这个,以及下面进程中的java相关的,会发现负载变得很大,CPU占用率也很高。)

5、导出结果

1)、将result.jtl下载到本地环境,然后在jmeter中的聚合报告那里,浏览打开,看结果;

2)、可以发现吞吐量很不理想,Linux服务器配置较低时,error很高,说明应用程序难以承受直接挂掉了。

6、压测建议

1)、压测不能依靠一次评判,一般第一次只是热身,以第二次第三次压测为准;

2)、不要在工作时间或运行高峰期时间进行压测,这是很危险的行为,最佳时期一定是测试阶段,少部分特殊情况只能在生产环境压测也一定要选择安全时段如凌晨;

3)、根据压测结果,进行性能优化后,可以再次像上述一样进行压测,然后导出聚合报告进行对比,直到达到理想结果。

总结

其实压测本身不难,压测的工具和方式也很多,比如redis有自己的压测工具redis-benchmark,还有Apache Benchmark简称ab,是Apache自带压测工具,这些用法都很简单。

压测是迈向高级工程师必会的技能之一,尤其是对核心业务接口的压测十分常用,正规的项目在测试阶段都需要压测,若公司有测试团队当然更好,但以java高级工程师为目标的话,压测技能你可以不会,但绝不能不了解。

分享

开篇说了,这是我8年多工作及学习过程中在云笔记中记录的内容之一,其实还有很多我闲暇之余都做了下整理,有感兴趣的朋友可以下载看看,什么时候用到了翻开说不定就能节省很多时间。

链接: https://pan.baidu.com/doc/share/flr0QYwZYPYxmWSRPbnJRw-1028798558141759

提取码: bxaa

本人原创文章纯手打,专注于分享主流技术及实际工作经验,觉得有一滴滴帮助的话就请点个赞和收藏吧!

原文:https://juejin.cn/post/7098531945021177870
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
神九返回后轨道舱分离去哪里了,是在轨道继续运行,还是不管了。天宫一... 空间站通常由对接舱、气闸舱、轨道舱、生活舱、服务舱、专用设备... 为什么不让神舟七号的轨道舱留在天上让神州八号去追? 洗衣机生产厂家 狗鱼好吃吗? 洪霞的爷爷知识很丰富,你能用哪些成语来形容他 用什么成语可以形容包罗各种各样的想法 什么万千的成语有哪些 重庆哪些考研大学 重庆师范大学考研好不好考 ...三个人我一个人当时觉得势单力薄,就选择了类似一个碰瓷的办_百度知... 大智慧右边框框红色顺序依次是:时间 、红字、有红有绿的、蓝字都代表... 吉林省专升本难吗 想报考15年吉林省考,自己在家在网校学习了几个月,现在纠结要不要报... 吉林省公务员报考儿媳可以报考公公的单位么? 魅族mx3修爆屏得多少钱,5都出了,3的应该不贵吧? 我今年是大三的学生,想报考吉林省公务员。所以伪造了信息说是今年的应届... ...省的公务员考试 我还想考2012年吉林省公务员考试 这两个省的考试那 ... 社保扣缴调整是什么意思 社保缴费比例 什么意思 为什么网页上不了右键 手机打电话靠近耳朵为什么会黑屏? OPPOa5打电话时自动接电话,本人不知道 NBA7号球星有谁 关于“童年的梦想,目前的状况,未来的希望.”的英语作文怎么写 美国买的iphone7plus怎么用电信卡。 九零年农历十二月初一属于什么星座? ...人类在生活和科技上带来影响的英语作文,300字左右,谢谢! What’s your understanding of “Love me, love my dog”? 求英语作文Love Is Understanding,150字、 Jmeter性能压测 —— 高并发思路 购宝钱包没人使用了吗? 请问快钱钱包现在还能使用吗?听说快钱已经被万达收购了。 洗碗机没有给水怎样处理 ...这张银行卡还能在支付宝钱包里更改别的银行卡吗?谢谢 我的手机支付宝添加银行卡后,想解除绑定,不过不行了,之前的支付宝版本好... Jmeter分布式压测 —— 易踩坑点 如何利用Jmeter从0到1做一次完整的压测 舌头经常发苦是怎么回事? 舌头发麻发苦是怎么了 怎样用手机在酷狗下载歌曲到手机 酷狗付费歌曲下载步骤是什么? 怎样在酷狗里面下歌词的歌曲。 手机接听免费是指全国吗,我是移动卡。接外地电话免费吗(有免费接听套餐... 舌头麻 哪个科 舌头和嘴唇发麻咋了 用什么打印机打印明信片效果最好 关于用A4打印机打印明信片,我想问明信片是先用A4打印,还是先拿裁纸刀... 海云庵历史沿革 ...里面还有很多乳白色的像米渣子的东西是什么