性能优化与压测引擎一:压测框架gatling
压测框架gatling
说到压测,我们最熟悉的可能就是ab命令和jmeter了,确实他们很方便,但是我最近都在用另外一个压测框架,叫gatling,为什么呢,因为他的报告很吸引我,而且写压测脚本很方便,功能也挺全的,他可以很好的去模拟一些场景,用的是scala语言,用到actor模型,很容易模拟大量并发的场景,并发真的很强,我觉得挺不错的,天生封装了http的协议,当然可以想办法实现GRPC或者DUBBO,网上其实有的,遗憾的可能就是需要用到scala,对于纯JAVA的可能不是那么友好把,不过仅仅是用压测那些脚本逻辑问题应该不大。这里我用他自带的demo说明下好了,为了给后面做铺垫,官网是https://gatling.io/,有兴趣的可以下个最新版玩玩,很方便,看看结果,也有大佬做的比较,有兴趣可以看看Gatling与Jmeter的比对。
简单使用介绍
下载完直接解压打开,去bin目录下:
然后在目录中打开cmd,输入gatling,他会启动,然后让你选择要模拟的脚本,有编号的,比如我输入了0,之后就等他跑,跑的时候会有信息:

就可以看到他会显示出请求名字,然后是成功和失败数目:

最终跑完后会生成报告:

报告在results目录内:

进去打开index.html:

报告页面:

可以看到这里有所有的接口的信息,包括总共调用多少次,成功和失败的比率,QPS,最大最小耗时,然后百分比区间耗时等,很全,而且你还可以点进去看详细的:


然后下面还有一些用户注入,响应时间,请求频率等信息:


然后我们来看下这个压测脚本,居然是java的(3.7.x好像有java的api,以前都是scala的),当然也可以用scala,其实内部核心是akka,用scala写的,都可以转换为字节码,在jvm上跑的,可以互相调用,也方便的,就是用scala不习惯:

看下脚本,其实很简单,就是跟普通写http请求差不多,只是这里需要创建场景,给用户并发这种,这个是框架自带的,可以直接用
package computerdatabase;
import static io.gatling.javaapi.core.CoreDsl.*;
import

本文介绍了Gatling作为一款强大的压测框架,以其直观的报告和便捷的脚本编写脱颖而出。Gatling使用Scala语言,支持模拟复杂并发场景,尤其适合HTTP协议的压测。其提供的报告详细全面,包括接口调用次数、成功率、QPS等关键指标。通过示例展示了简单的Gatling脚本,强调了它如何创建场景和注入用户。此外,文章提到Gatling的Java API(3.7.x版本)使得非Scala开发者也能轻松上手。最后,作者预告将基于Gatling开发一个Web版本的压测系统,并计划开源。
最低0.47元/天 解锁文章
902

被折叠的 条评论
为什么被折叠?



