Gatling 官网:https://gatling.io
官方文档:https://gatling.io/docs/current/
快速开始:https://gatling.io/docs/current/quickstart

一、工具

IDE:IntelliJ IDEA
java:1.8

二、安装 Scala 插件

导航栏选择 Intellij Idea -> Preference... -> Plugins,选择 Install JetBrains plugin...,搜索 Scala,然后 install,最后 Restart IntelliJ IDEA。

三、通过 Maven 创建 Gatling 项目

1.安装 io.gatling.highcharts

步骤:File -> New -> Project... -> Maven -> 勾选 Create from archetype -> Add Archetype... 添加以下内容:
GroupId:io.gatling.highcharts
ArtifactId: gatling-highcharts-maven-archetype
Version: 3.3.1
点击这里可以查看当前最新的版本:查看 io.gatling.highcharts 版本

2.创建 Gatling 项目

1.如果是接着前面安装 io.gatling.highcharts,直接 next 后,输入你项目的 GroupId(包名) 和 ArtifactId(项目名) 来完成项目创建。
2.如果是再次打开 Intellij IDEA 创建 Maven 项目的话,勾选 Create from archetype 后,选择 io.gatling.highcharts:gatling-highcharts-maven-archetype,如图:

next 后,输入你项目的 GroupId(包名) 和 ArtifactId(项目名) 来完成项目创建。
3.项目创建完成后,右下角会提示 Import Changes,点击它

最后 Maven 会自动配置项目结构,对应的 pom.xml 如下:

项目目录如下:

四、创建 case

1、在 scala 目录下面,New -> Scala Class,新建命名 BaiduSimulation,然后添加以下代码:

package test.scala

import io.gatling.core.Predef._
import io.gatling.http.Predef._

class BaiduSimulation extends Simulation {
    // 设置请求的根路径
    val httpConf = http.baseUrl("https://www.baidu.com")
    /*
    运行10秒 during 默认单位秒,如果要用微秒 during(100 millisecond)
    */
    val scn = scenario("BaiduSimulation").during(10){
        exec(http("baidu_home").get("/"))
    }
    // 设置线程数
    setUp(scn.inject(atOnceUsers(10)).protocols(httpConf))
}

2、如何运行
方法一:选中 src/test/scala 下面的 Engine,右键,Run 'Engine',控制台显示如下:

这时候需要在控制台按一下 Enter 键才会继续执行,执行结束结果如下:

我们可以看到,最后一行提示我们在 target/gatling/目录下面可以找到对应结果报告打开它

双击打开 index.html,然后选择对应的浏览器打开报告


在图中我们可以看到,请求响应基本都在 800ms 以内,而 Total 的请求为 12491 个,OK 成功的 12489 个,KO 失败的 2 个,说明接口压测 10 个用户的结果是正常的。

五、其它问题

1、IDEA 无法 New Scala Class
解决办法:https://www.cnblogs.com/lingluo2017/p/8673243.html
2、scala sdk 安装失败,或安装不成功
解决办法:版本不对,可以换个版本再安装:https://blog.csdn.net/iamlihongwei/article/details/72783459
3、选中 Engine.scala 右键时,没有 run 选项
解决办法:选中 src 目录,右键,Mark Directory As → Source Root
4、选中 Engine.scala 右键 run 后,出现报错:Gatling 错误: 找不到或无法加载主类 Engine
解决办法:把 scala-sdk 删掉,重新添加,选择 File → Project Structure... → Global Libraries,选中 - 号,把 scala-sdk-x.x.x 删掉,然后选择 + 号,添加任意版本,建议使用低版本,高版本不够稳定可能会有新的问题,这里楼主选择 2.12.8 版本,最后 Apply 后,点 OK 保存。
5、选中 Engine.scala 右键 run 后,出现报错:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at Engine$.delayedEndpoint$Engine$1(Engine.scala:7)
    at Engine$delayedInit$body.apply(Engine.scala:4)
    at scala.Function0.apply$mcV$sp(Function0.scala:34)
    at scala.Function0.apply$mcV$sp$(Function0.scala:34)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App.$anonfun$main$1$adapted(App.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:389)
    at scala.App.main(App.scala:76)
    at scala.App.main$(App.scala:74)
    at Engine$.main(Engine.scala:4)
    at Engine.main(Engine.scala)
Caused by: java.lang.NullPointerException
    at io.gatling.commons.util.PathHelper$.url2path(PathHelper.scala:34)
    at IDEPathHelper$.<init>(IDEPathHelper.scala:7)
    at IDEPathHelper$.<clinit>(IDEPathHelper.scala)
    ... 11 more

解决办法:选中 src 目录右键,选择 Mark Directory as... → Unmark as Sources Root,然后再选中 scala 目录右键,选择 Mark Directory as... → Test Sources Root。再次 run 一下 Engine.scala 即可。


↙↙↙阅读原文可查看相关链接,并与作者交流