性能测试工具 通过 IDE 建立 Gatling 性能测试项目

陈恒捷 · 2016年03月17日 · 最后由 suihansongmao 回复于 2018年04月14日 · 4144 次阅读

前言

最近在做接口性能测试,预研时有预研到 Gatling 并最终使用了它作为测试工具。刚好看到 @jetWindows 下的 Gatling 学习笔记第一季 末尾提到:

如果有一个类似于 Eclipse 的 SCALA IDE,那将会非常便于性能测试脚本的开发和维护

刚好当时有看到一些外文详细说了怎么利用 gatling 的 maven archetype 建立 gatling 项目,参考它完成了 Gatling 测试脚本项目的建立。在此共享一下。

IDE 配置

此处以 IDEA + Scala Plugin 为例。

  1. 下载并安装 IDEA ,选择社区版: https://www.jetbrains.com/idea/#chooseYourEdition
  2. 打开 IDEA ,点击【IntelliJ IDEA】->【Preferences】->【Plugins】,搜索 “Scala” 。搜索到的插件描述应为:“Scala, SBT, SSP, HOCON and Play 2 support.”,然后点击底部的【Install JetBrains plugin...】安装。

至此,IDE 配置完成

根据 Maven Archetype 建立项目

继续使用上面的 IDEA

  1. 【File】->【New】->【Project】,打开新建项目窗口。项目类型选择【Maven】
  2. 勾选【Create from archetype】,点击【Add Archetype...】
  3. 输入:GroupId: io.gatling.highcharts,Artifactld: gatling-highcharts-maven-archetype, version: 2.1.7,点击【ok】。
  4. 选中刚才添加的 Archetype io.gatling.highcharts:gatling-highcharts-maven-archetype,点击【Next】。
  5. 填写自己项目的 GroupId, Artifactld 及 Version ,继续【Next】。如何填写可参考 Guide to naming conventions on groupId, artifactId and version
  6. 设置 Maven 的配置。一般情况下直接用默认值即可。继续【Next】。
  7. 设置项目名称,项目目录等。设置完毕后点击【Finish】,配置就完成啦!

补充:Gatling 的 Archetype 列表地址是:http://mvnrepository.com/artifact/io.gatling.highcharts ,大家可以根据自己需要选用。

使用

建立完成后项目结构如图所示:

目录说明:

  • data 用于存放你的数据
  • request-bodies 用于存放你的 request body
  • simulations 放在 src/test/scala 目录下。

运行 Gatling:
右键点击 Engine -> Run ,即可运行。效果和 Windows 下的 Gatling 学习笔记第一季 中运行 bin\gatling.bat 一致。报告会放在 target 文件夹下(这个文件夹首次运行时会自动生成,运行结果也会提示报告文件路径)

运行 Recorder:
右键点击 Recorder -> Run,即可运行。效果和 Windows 下的 Gatling 学习笔记第一季 中运行 bin\recorder.bat 一致。录制的文件默认放在 src/test/scala 下。

参考文章

Gatling’s Maven Archetype allows you to integrate Gatling and run it into your preferred IDE.
Step by step guide to setting up IDEA to write gatling simulations

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 9 条回复 时间 点赞

gatling 如果可以支持在测试用例里面直接使用就方便多了. 比如跟 junit 结合. 目前他用的技术还不太好分拆.

先 mark 一下,后面抽时间看看!

补充下,新建项目必须选择为 Maven,一开始以为是选择 Scala 项目。

#3 楼 @caikaibai 好,已补充到正文中~

使用 STB 可以构建,我试过了但是效果并没有预想的那样好,运行后仍然需要在控制台启动。

#5 楼 @aizaimenghuangu 想问下 STB 是啥?google 没找到。。。求科普。。。

另外,不是很明白你说的

运行后仍然需要在控制台启动

的意思。能详细说一下吗?

楼主,请问如何去掉烦人的选择具体运行类?
Select simulation id (default is 'usersloginsimulation'). Accepted characters are a-z, A-Z, 0-9, - and _
a
集成到 jenkins 不可能去选择执行那个类的,而是运行所有类

Exception in thread "main" java.lang.ClassNotFoundException: Engine
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:260)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:116)
楼主我按你的这样配置后报错找不到 Engine。请问你知道是那里的错误码》

更正。加入 gatling 插件后解决运行问题,但是报错 no suite driver for jdbc

有人用 Gatling 录制过 HTTPS 的网站吗?我用这个碰到证书无效的情况,

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册