jmeter 压测最近的心得体会
笔者14年入坑测试,截止到17年年初一直在游戏公司,压测,我都没有怎么用过,特别是jmeter去压测,自己学习,可是先找到切入点,于是乎,
其实也算是我学习后,先找一个更大的平台吧,我聊了几个游戏公司,哎,没面上,可能是我也相不中,我换了现在的公司,教育公司。算是转行了,做在线教育公司的产品,
一开始我也是点点,每天面对不了的需求,期间也经历了部门的较大的人员离职,新领导就位,就到这个新老领导交替后,运行一段时间后,我们的产品可以说开始出来各种异常了,
其实我们一开始是认为功能的报错,或者服务器的错误,我们老大说让我盯着,我就和开发解决,一周左右吧,一直有,但是前期都紧急处理了,可是有一天,两个部门在外面分享我们成功呢,宣传呢应该,出问题了,用户也打电话反馈,CEO都开始关注了,我们紧急处理,紧急进行部分设备优化升级,部门老大紧急召开安全会议,让我们一定确保,可是加上开发几个不太熟悉系统吧,我们就排除错误,加上可能有服务器的问题,升级后,还是会出现,这可是我们要去解决的问题啊。
可是我们遇到了第一个难题,怎么去复现的问题,因为研发看日志,有几个 ,他也没有看到那个,这时候呢我说要不就模拟用户大量访问吧,这个时候运维说,看我可以搞吗,我就想到了我学过的的jmeter 我就说可以的,这样我们去复现问题,立马我就去找软件下载,可是问题来了,脚本,我没有脚本,其实研发那边没有文档一开始 ,没有给到我,我也不能一直卡在哪里,我能怎么办,短时间想办法解决问题,录制呗,简单粗暴,接着我就录制了登录的接口,有人会说你怎么都不录制,我也想,可是我现在要处理的就是登录时候的错误啊,我们只能先去紧急处理这个问题,我录制好脚本,就可以和运维来搞这个问题,我开始压测,我们先在测试环境去调试和测试, 可是我们没有复现出来这个问题,怎么办,但是我们发现了其他的问题,可是这个还不是我们想要的,但是我们公司有两套测试系统,我们想着用另一套去测试,但是虽然有问题,但是不是我们想要的,那么怎么办,没法,我们还是要做的,于是我就开始加压力,于是乎,我们复现了那个问题,但是我们也找到了一些其他的问题,我们怎么办呢,一就开始去和研发去定位的问题,排除了数据库的问题,我们数据库一直没有压力,看到有压力的就是我们的缓存服务器,
我们在想缓存服务器有问题,于是我们就来解决这个,可是这个时候我遇到了另外一个问题,我的电脑到700并发就开始异常了,windows的报错,那时候已经晚上了,加班的同事还很多,于是我就紧急的去培训了另外一个测试,也找了开发去配合,没法,时间紧迫,必须解决,我们只能这么几个人,1,2,3 点,一起看,这是最简单最有效的可以大规模并发的,我们找到了问题,就是在缓存上,紧急修改了这个错误,但是其实一个更大的坑,我们埋下来了,其实是因为当时处理问题的对系统的熟悉度不是特别高, 我们当晚在加班的时候,线上再次爆发,再次爆发,再次爆发,这是大事了, 我们都在加班,部门老大死命令,不解决这个问题我们今晚不收兵, 怎么办。解决,开始压测线上单台机器,那是凌晨,没法 我们必须这么做,只有这个点用户量小。 条件有限,我们必须去做,
这个时候来个小插曲,停电了园区,我们耽误了一段时间,后来我们在几个人用喊1,2,3一起点,我们解决了展示的问题,但是后来我们多加一个接口,新问题来了,尼玛,旧的临时能这么解决,新的就来了,我们的sql需要优化,300并发单台就能干死,怎么办,mql爆了,但是临时处理可以,第二天,没睡醒就去了公司,没法 压测,优化,我们这个时候呢,懂系统的来了,优化后sql快了,我们有开始去压测,去调试,突然有发现问题,我们昨天的处理会影响其他支付的相关功能,我擦,我们又紧急处理,我们两个接口 1500的并发,当天测试就完了,我们老大这个时候组织我们开了第二次的会议,明确接下来要搞的这个就是性能,保证线上啊,我们集体讨论,优化部分功能,调优啊,缓存那个调整后,接下来遇到了一个问题,怎么保证在现有的基础上保证我们的集群能够最大承受,我们开始调整链接池,去优化,单个机器晚上能够到2000并发,可是突然之间,我们遇到新问题,集群1500报错,接下来又是一场硬仗,分布调试就是不行,我们初步看看是否是负载均衡的地方有什么,可是用的第三方的云服务器,只能天亮解决了。
经过最近的加班来去优化,我发现其实很多问题一开始就可以避免到以后出现的大规模爆发问题:
1.程序进行合理化设计开发,功能开发前进行充分讨论设计,有个好的dba,有个好的架构
2.产品在给需求等,要开会听取研发等反馈,是否会产生新的问题
3.测试在测试中应该尽早去提出做性能,做压力,系统应该早点去发现。
4.就是线上出来了,那么紧急做,其实没办法,客官原因,这个时候,不要着急,先抓重点,及时开会,及时碰头,群里群策,
性能不是后来就对一个系统的考验,而是从一开始你设计这个系统的时候就要考虑到的。
可是有时候我们面临这很多问题,我们要做的,就是去弥补之前丢失的性能测试的工作,那么这个时候等待我们测试的就是大量的工作,批量的加班,没办法,保证线上,保证大量用户的系统的平稳运行,这个时候整体就要抽出来我们的一半的人员去为性能去优化。
性能不能不做,性能一定要做,不要等用户上来了才做性能,要从根上就要开始注意性能。牢固的地基才是建筑永远树立。
后续会继续吧我的经历分享给大家。
jmeter 压测最近的心得体会的更多相关文章
- jmeter压测app
使用代理的方式,录制app端脚本,之后用jmeter压测就没啥好说的了 1.电脑端谷歌设置本地代理(端口号为8888) 2.jmeter设置HTTP代理服务器(端口号为8888) 3.手机端wifi设 ...
- JMeter压测基础(三)——Mysql数据库
JMeter压测基础(三)——Mysql数据库 环境准备 mysql驱动 JMeter jdbc配置 JMeter jdbc请求 1.下载mysql驱动:mysql-connector-java.ja ...
- jmeter压测参数设定(转)
jmeter压测参数设定 一.基本公式 线程数 = QPS * time: 注:QPS--每秒完成请求的个数:time--每个请求响应完成平均需要时间: 故QPS * time就是所有请求完成响应所需 ...
- jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包
一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps: ...
- jmeter压测之添加负载机
jmeter压测基本介绍一般基准测试(基准测试时间一般为5分钟)后压测的时间是10-15分钟: 实施测试之前要拿到测试指标 例如:tps要达到多少响应时间要达到多少并发数要达到多少TPS :服务端每秒 ...
- jmeter 压测duobbo接口,施压客户端自己把自己压死了
jmeter 压测duobbo接口,jmeter代码不合理,导致每执行一次请求,会调用一次消耗内存的实例化.导致越压越慢,请求发不出去.这个时候需要考虑修改代码了. 截图中,tps越来越少. 原来初始 ...
- jmeter压测-负载配置
jmeter 压测 一般压测的时间是10-15分钟 TPS:服务端每秒钟处理的请求数 越大越好 响应时间 :越短越好 并发用户数 也就是多少并发 指标给你:tps要达到多少 响应时间要达到多少 并 ...
- JMeter压测“java.net.BindException: Address already in use: connect”解决方法
之前在windows机上用JMeter压测,50并发下出现大量接口报“java.net.BindException: Address already in use: connect”错误. 从字面的意 ...
- jmeter压测学习1-window环境准备与案例
前言 最近用jmeter做一些接口的压力测试,记录下使用过程中遇到的一些问题. 在使用window机器做并发压测的时候,发现并发数设置100的时候,会出现报错:java.net.SocketExcep ...
随机推荐
- spring boot 登录注册 demo (四) -- 体验小结
之前没有折腾过Spring,直接上来怼Spring Boot异常痛苦,参考着官网的guide(https://spring.io/guides)写了几个demo: spring boot 跑起来确是方 ...
- MySQL (八)
1 事务 需求:有一张银行账户表,A用户给B用户转账,A账户先减少,B账户增加,但是A操作完之后断电了. 解决方案:A减少钱,但是不要立即修改数据表,B收到钱之后,同时修改数据表. 事务:一系列要发生 ...
- HTML5-移动开发常用技巧与弹性布局的使用
一.移动开发常用技巧 Viewport基本知识 设置布局Viewport的各种信息 1.width=device-width: 设置Viewport视口宽度等于设备宽度 2.initial-scale ...
- 【整合】input标签JS改变Value事件处理方法
某人需要在时间控件给文本框赋值时,触发事件函数.实现的效果: 1.文本框支持手工输入,通过用户输入修改值,手工输入结束后触发事件.阻塞在于失去焦点后才触发(输入过程中不触发事件) 2.通过JS方法修改 ...
- 最长单词(一星级题目) 本来是很简单的,其实就是加个flag
随机了一个题目: 给一个词典,找出其中所有最长的单词. 这道题对于初学者还是很有用的,毕竟用的逻辑是比较复杂的 样例 在词典 { "dog", "google" ...
- 一个还算简单的微信消息SDK(基于.Net Standard 2.0)
虽然微信公众号出现了好久,不过在SDK这件事情上感觉并没有多少人把它当成一个有技术含量的事情来做,很多SDK做的事情就是一个代码的堆叠,当然也可能写的好的并没有开源出来.所以在某个翻遍Github而无 ...
- Java的类型转换
Java的类型转换 在适当的时候,我们会想要将一种数据类型自动转换成另一种,比如把int转化成float类型.Java有隐藏式的自动转换,可以自动转换成想要的类型,但是强制的自动转换的话,.需要将希望 ...
- Tomcat启动:Container StandardContext[] has not been started
Container StandardContext[] has not been started\root.xml 初始化失败,检查数据源配置
- 零基础如何一步一步开始搭建高性能直播平台?现以GitChat·架构来进行说明
前言 现在直播已经成为移动互联网时代一个新的重要流量入口,从YY.斗鱼到花椒直播,直播已经成为人们分享交流的新方式,应用场景众多,主要分为: 金融类直播:金融直播可应用于实时解盘,在线专家讲座,专家在 ...
- Linux的netstat查看端口是否开放见解(0.0.0.0与127.0.0.1的区别)
linux运维都需要对端口开放查看 netstat 就是对端口信息的查看 # netstat -nltp p 查看端口挂的程序 [root@iz2ze5is23zeo1ipvn65aiz ~]# n ...