压测背景
单接口压测是为了可能在开发阶段对单个接口进行性能测试,疾速理解接口的承载能力、发现性能瓶颈,在开发晚期就能发现问题,打消性能危险。 作为一名优良的后端工程师,在交付线上环境前,对本人的每一个接口进行简略的性能检测,是一种良好的职业习惯。另外,当业务在生产环境遇到理论接口申请瓶颈时,通过模仿实在的并发环境,也是一种疾速寻找问题的形式。

压测后果的影响因素
高并发后果很容易受外界因素影响,压测时须要尽量减少外界因素影响。影响压测后果外界因素有本机句柄数限度,dns解析速度,网络品质,服务端连接数限度等等。例如应用1w并发,很容易呈现超过本机最大句柄数限度(个别最大限度1024),超过句柄数限度的申请会因为句柄数受限导致连贯失败。

因而抉择适合并发数对测试接口性能十分重要,并非并发数越大越好。理论实际中倡议并发数先在10,100,500,1000左右别离测试下,如果失败率小于1%,再思考逐渐减少并发数量。只有减少并发每秒申请数量能继续减少才是衰弱的应用形式。当并发数减少到肯定数量后,接口响应能力不再减少或者谬误数变高,这时候再减少并发量是有效的。

压测工具
1、Jmeter
Jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,性能全,反对http、https、websocket、grpc等协定的并发压测。但毛病在于比拟耗费单机性能,个别用于分布式压测或作为压测引擎应用。另外如果只想针对一个接口进行简略测试,须要较深的操作门路,应用起来较为繁琐。

2、ab
ab是apache自带的压力测试工具。ab十分实用,它不仅能够对apache服务器进行网站拜访压力测试,也能够对或其它类型的服务器进行压力测试。比方nginx、tomcat、IIS等。但惟一有余的是,ab根本是命令行执行,如果一个接口须要输出较简单的申请参数,操作起来会比拟繁琐。

3、Apipost
自7.0.12版本起,Apipost上线了单接口一键并发性能。该性能底层采纳自研的基于Golang语言的压测引擎(已开源:https://github.com/Apipost-Team/runnerGo),比拟较好的反对单机高并发压测。目前反对http/https协定,对websocket、grpc等协定尚未反对。
下载:https://www.apipost.cn/download/ver10017

本文简略介绍基于http/https协定的压测实际,出于便捷性思考,咱们采纳 Apipost 的压测模块。压测流程1、压测模块位于API调试模块下,在进行接口调试时能够看到,如图所示:

2、在输出被压测的URL后,在压测tab下,填写并发数和轮次;3、点击【开始压测】按钮,页面展现【压测中...】状态;

4、压测工作实现后,页面展现压测后果,实现压测。

压测后果计算形式