Gatling 介绍
1. 概述
Gatling 是一个**负载测试工具,**它对HTTP协议有很好的支持——这使得它成为负载测试任何HTTP服务器的一个非常好的选择。
本快速指南将向您展示如何设置一个简单的场景来对HTTP服务器进行负载测试。
Gatling**模拟脚本是用Scala编写的,**但不用担心——该工具会通过 GUI 帮助我们记录场景。一旦我们完成了场景的记录,GUI 就会创建代表模拟的Scala脚本。
运行模拟后,我们就有了一个随时可用的HTML报告。
最后但同样重要的是,Gatling 的架构是异步的。这种架构让我们可以将虚拟用户实现为消息而不是专用线程,从而使它们的资源非常便宜。因此,运行数千个并发虚拟用户不是问题。
同样值得注意的是,核心引擎实际上与协议无关,因此完全有可能实现对其他协议的支持。例如,Gatling 目前还提供JMS支持。
2. 使用原型创建项目
虽然我们可以将Gatling 捆绑包作为*.zip* 文件,但我们选择使用 Gatling 的Maven Archetype。这使我们能够集成 Gatling 并将其运行到IDE中,并使在版本控制系统中维护项目变得容易。小心 Gatling需要 JDK8。
在命令行中,键入:
mvn archetype:generate
然后,当出现提示时:
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains):
类型:
gatling
然后你应该看到:
Choose archetype:
1: remote ->
io.gatling.highcharts:gatling-highcharts-maven-archetype (gatling-highcharts-maven-archetype)
类型:
1
选择原型,然后选择要使用的版本(选择最新版本)。
在确认原型创建之前,选择类的groupId、artifactId、version和package名称。
最后将原型导入 IDE——例如导入Scala IDE (基于 Eclipse)或IntelliJ IDEA 。
3. 定义场景
在启动记录器之前,我们需要定义一个场景。它将代表用户浏览 Web 应用程序时实际发生的情况。 在本教程中,我们将使用 Gatling 团队提供的应用程序作为示例,并托管在 URL http://computer-database.gatling.io 上。
我们的简单场景可能是:
- 用户到达应用程序。
- 用户搜索“amstrad”。
- 用户打开相关模型之一。
- 用户返回主页。
- 用户遍历页面。
4. 配置记录器
首先从 IDE启动*Recorder类。*启动后,GUI 允许您配置如何记录请求和响应。选择以下选项:
- 8000作为监听端口
- com.blogdemo.simulation包
- RecordedSimulation类名
- *关注重定向?*检查
- *自动推荐人?*检查
- 选择黑名单优先过滤策略
- 黑名单过滤器中的 .*.css、.*.js 和 .*.ico
现在我们必须配置我们的浏览器以使用在配置过程中选择的定义端口(8000)。这是我们的浏览器必须连接的端口,以便记录器能够捕获我们的导航。
这是使用 Firefox 的方法,打开浏览器高级设置,然后转到网络面板并更新连接设置:
5. 记录场景
现在一切都配置好了,我们可以记录我们上面定义的场景。步骤如下:
- 单击“开始”按钮开始录制
- 访问网站:http://computer-database.gatling.io
- 搜索名称中带有“amstrad”的模特
- 选择“Amstrad CPC 6128”
- 返回首页
- 通过单击下一步按钮在模型页面中迭代几次
- 点击“停止并保存”按钮 模拟将在配置期间定义的包com.blogdemo中生成,名称为RecordedSimulation.scala
6. 使用 Maven 运行模拟
要运行我们录制的模拟,我们需要更新我们的pom.xml:
<plugin>
<groupId>io.gatling</groupId>
<artifactId>gatling-maven-plugin</artifactId>
<version>2.2.4</version>
<executions>
<execution>
<phase>test</phase>
<goals><goal>execute</goal></goals>
<configuration>
<disableCompiler>true</disableCompiler>
</configuration>
</execution>
</executions>
</plugin>
这让我们在测试阶段执行模拟。要开始测试,只需运行:
mvn test
模拟完成后,控制台将显示 HTML 报告的路径。
注意:使用配置<disableCompiler>true</disableCompiler>是因为我们将使用带有 maven 的 Scala,此标志将确保我们不会最终编译我们的模拟两次。Gatling 文档 提供了更多详细信息。
7. 审查结果
如果我们在建议的位置打开index.html,报告如下所示: