性能测试:入门级接口压测思路(个人见解,以jmeter为例)

背景介绍

  • 相信很多测试项目上,很多都是身兼多职(既要做功能、自动化、性能啥都要做);这次依据个人对压测这块的理解,分享一下压测的思路。因为个人以前对压测有很多误区,所以在此分享下避免继续入坑(不喜勿喷,如果还有理解误区求指点,我在来完善);
  • 下面就讲下入门级的愚见:1、压力测试重点关注点是什么?2、压力测试怎么做?

一、压力测试重点关注点是什么?

1.1、因为看我以前的同事或者现在测试朋友们get不到重点,都是按照各公司现有的demo去做,用jmeter配置线程数去压。最后都是说支持500并发、1000并发,把聚合报告的指标捞出来再给个结论;但其中的对应关系还是很茫然的。
1.2、先捋一下压测的目的是什么:压测主要目的是结合当前服务资源以及当前环境配置基础下,对应用接口在不同压力场景下得出各指标结果是否满足实际应用需求【所以要优化性能指标的话,除从应用接口的代码逻辑和设计链路去优化的话,还需要结合环境的配置(例:连接数、队列值、jvm配置等)以及本身的物理资源去出发;能调到最合理的、最充分的利用率那就是性能大咖了】;
1.3、对“并发”名词说明:并发这个词在项目中很容易混淆,所以在此先讲解下这个词;并发分为相对并发绝对并发;相对并发是指在一个时间段内发生的事务(可理解跟tps挂钩),绝对并发是指在同一时刻发生的事情(可理解为跟线程数挂钩,jmeter的“集合点”功能可以实现这种方式);以下讲的并发都是依据绝对并发来说。

✔所以首先列下重点关注点,根据如下四点去判断压测是否达标通过:
1)、TPS指标:
2)、响应时间:
3)、出错率:
4)、服务资源情况:

✔下述分享个样例:
【测试结果】:
1)、TPS拐点峰值:依据压测结果,在90并发时达到峰值(2277笔/s),而后续持续递增并发数后TPS呈平稳趋势,即保持峰值在2200左右;--【达到预期≥1557笔要求】
2)、接口响应时间指标((以负载并发截图为准):依据tps峰值下进行并发,平均响应时间为63.83ms,95%百分位响应时间为92ms;--【达到预期≤100ms要求】
3)、出错率:整个梯级压测过程中出现0.29%异常情况,经核查为环境XXXX问题受影响,非业务逻辑或资源问题,即忽略此错误率;--【达到预期99.9%成功率要求】
4)、服务资源消耗:整体服务资源利用正常,内存及CPU利用平稳无异常情况;TPS下降时cpu正常对等下降,压测结束后资源也可正常释放;--【符合预期,详见报告链接】

2.1、先说下TPS指标方面:
1)、TPS是主要是为了测出拐点峰值,得出当前服务环境下最大的事务处理量(例如上述得出2277笔/s);
2)、TPS峰值达标判断:需要结合本身实际要求(例如上述-结合实际生产要求得出不小于1557笔),那我峰值已经覆盖预期要求,那TPS指标就算满足达标了;
3)、TPS峰值不满足或者需要达到更佳情况下:就要考虑怎么去调优了,主要方向:从业务代码方面优化、服务配置的优化、再到物理资源的提升;
4)、额外说明:关于实际预期要求多少,这个是需要参考生产实际使用量有多少;目前普遍比较多的是有埋点功能,可以统计到调用量;再结合有一定参考价值的二八原则计算(指80%的业务量在20%的时间里完成,另此公式不一定适合所有项目,具体需要结合每个系统项目应用场景);

2.2、响应时间指标:
1)、需结合要求衡量取哪个响应时间,一般主要关注平均值和95%分位值;如果严谨一点的话可以以99%分位为准(这样情况下确保每个调用都能达标);
2)、响应时间达标判断:首先先知道指标要求是多少,一般可以从产品经理那给出或者下游调用方超时设置值为参考,这些都算指标要求;另这块一般都是和tps事务处理量 and 并行要求的(例如:上述相当于说在每秒tps不低于1557的时候,并且95%分位要小于100ms);

2.3、出错率:
1)、出错率也是一个重点关注项,如果都异常了肯定是不可接受的;另对整体的指标可能要考虑是否有价值了,但这块肯定需要结合异常情况去分析,在给出结论(如在压测过程报错,有些业务层面上认为是合理的。但往往比较容易忽略,其实可能隐藏很大的性能问题):
2)、注意点:当整体压测下出现小部分概率异常,这个需要自身衡量下指标是否有价值,因为那一小部分影响整体指标可能会很大(比如百分98都是在200毫秒左右,百分之二因为异常5毫秒就响应了,导致整体指标影响很大)

2.4、服务资源消耗:
1)、服务资源主要关注施压机(即请求方)和压力机(被请求方),施压机需要确保自身环境资源够满足(避免因自身请求方机器原因无法满足设置场景,导致未压出真实指标);
2)、服务资源利用情况常规的需要重点关注下cpu(例如是互联网产品cpu使用率应该不能超50%,内部使用的一般80%;保证预期最大tps下,服务器还是很健康的)、内存(需要关注应用内存,如jvm的内存变化,只关注服务器内存意义不大),磁盘读写、网络接收发送 -->>各资源消耗不合理的变化或者有较大的异常波动需要再结合分析;
3)、这块服务监听的工具还是很多的,jmeter插件的探针工具也有的,虽然不是很强大,勉强能用【插件下载1:jmeter-PerfMon服务监听;服务资源探针2:Stepping Thread Group--提取码:8888 】

二、压力测试怎么做?(以TPS为例)

常规的压测大家基本都会做,这里讲下另一种压测方式,既通过梯度增压方式去找出核心指标:TPS峰值

  • 在jmeter中,可以利用【插件下载:Stepping Thread Group】来做到递增压测,直接在一次线程组中找出TPS峰值(详解如下图)
    jmeter插件1.png

1.1、配置思路:
①、上述第一点-->最高并发值:可预估一个较高的并发值,确保在最高并发值内找出tps峰值(如果在此预估配置下未找到tps拐点,需设置更大值);
②、上述第二点-->持续增压(高度):递增的并发数值需要更准确一点的话,建议设置以最高并发值5-10%区间递增(此处主要避免在递增爬坡的时候出来了tps拐点峰值);
③、上述第三点-->恒定并发量时间(长度):此处的设置长度(即时长),如果确保要精确些可以设置时间久一点(这里的设置时长:确保tps是趋向平稳状态,如非平稳状态需设置更长或者可能需要考虑其他因素)

1.2、TPS效果参考图【插件下载:Transactions per Second

jmeter插件2.png

①、确保已经到tps峰值判别:即tps是曲线是横向状态(停止继续上升了)或者tps拐点往下走;
②、tps峰值横向一段时间的解释:到峰值时是在现状资源环境下,可最大处理事务量;横向是后续持续增加处于最大队列内,此时段响应时间相对而言增加会更大(每个服务系统不一样,具体需要对应分析);

1.3、附上-响应时间插件【插件下载:ResponseTimesOverTime

响应时间图

结尾语:
1)、未放更多实际已做的压测场景和图片(因为涉及信息安全,你懂的),就直接用jmeter截些图片做讲解了;
2)、后续会持续更新,在继续完善并且补充负载、稳定性方面的点.现先收收尾;
3)、此文章更多分享的是思路,主要对于入门级是怎么构思去做压测,而不至于直接茫然去压;
4)、压测还有一个核心点,除了给出性能指标外还要找出瓶颈点以及分析瓶颈问题。而对于这块需要对综合技术认知以及对业务整体架构、链路要有全面的了解来支撑的;所以需要真正做起性能测试,还任重道远,一步一个脚印来吧

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259

推荐阅读更多精彩内容