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 ...
随机推荐
- win10 永久激活 命令行方式
现在我们可以看下当前系统的激活状态,查看方法"WIN+R"打开运行对话框,输入命令slmgr.vbs -xpr,点击确定,这样可以查看到当前系统的激活信息.大家可以发现,虽然小编系 ...
- 让Win10显示系统中隐藏的文件夹
让Win10显示系统中隐藏的文件夹.. ------------------------- -----------------------
- 7.20.01 java格式化输出 printf 例子
java格式化输出 printf 例子 importjava.util.Date; publicclassPrintf { publicstaticvoidmain(String[] args) { ...
- [日推荐] 『闲聊助手』人工智能小程序,仅此一款!-极乐商店store.dreawer.com
肾phone的siri有用过吗?小编无聊时就撩一下她!但有个问题就是要是没有肾phone在身边怎么撩???现在有伙伴@wx_Volcano_Li76 开发一款小程序,可以等同于siri,想什么时候撩就 ...
- C# 实现模拟登录功能,实现公共类分享。
前言 最近在研究模拟登录的各种方法, 主要想要实现的两个功能是: 1.点击按钮可以直接跳转并登录到某一个系统中. 2.抓取某一个系统中某一个页面中的特定数据. 为此在网上查了许多的资料,首先了解到自身 ...
- java se之File类
遍历某个目录路径下的所有文件并打印输出: package com.led.file; import java.io.File; public class File_List { public stat ...
- 关于 Go 中 Map 类型和 Slice 类型的传递
关于 Go 中 Map 类型和 Slice 类型的传递 Map 类型 先看例子 m1: func main() { m := make(map[int]int) mdMap(m) fmt.Printl ...
- GeoServer初识与安装
学习过程中发现官网上的东西足够基础了,所以在这只做一下索引和补充. 官方网址:http://live.osgeo.org/zh/overview/geoserver_overview.html 安装: ...
- JavaScript实现全选和全不选
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- element ui datePicker 设置当前日期之前的日期不可选
pickerOptions0: { disabledDate(time) { return time.getTime() < Date.now() - 8.64e7 } },