快速入门
学习 Gatling 的概念,使用录制器创建可运行的 Gatling 仿真。
介绍
在这一部分,我们将使用 Gatling 进行负载测试一个简单的云托管的 Web 服务器,并向您介绍 DSL(领域特定语言)的基本要素。
选择合适的语言
Gatling 提供了两种主要的 DSL:
在选择使用 Gatling 时,我们建议遵循以下规则:
Java 在计算机科学课程中被广泛教授,编译时需要较少的 CPU,并且在 Maven 或 Gradle 中更容易配置。
安装
请查看安装部分,选择符合您需求的设置。建议非开发人员从捆绑设置开始。在本教程中,我们将展示与捆绑设置一起使用的命令。
编码
Gatling 的默认编码是 UTF-8。如果您想使用其他编码,您需要:
测试用例
此页面将引导您了解大多数 Gatling HTTP 功能。您将了解有关仿真、场景、数据源、录制器、循环等的内容。
示例应用程序
在本教程中,我们将使用一个名为 “Computer-Database” 的应用程序,部署在以下 URL:http://computer-database.gatling.io。
场景
为了测试该应用程序的性能,我们将创建代表用户在导航应用程序时真正发生的场景。
这是我们认为真实用户在应用程序中可能会执行的操作:
基础知识
使用录制器
为了简化场景的创建,我们将使用 Recorder,这是 Gatling 提供的一种工具,允许您记录对 Web 应用程序的操作并将其导出为 Gatling 场景。
可以使用位于 bin 目录中的脚本启动此工具:
在 Linux/Unix 上:
$GATLING_HOME/bin/recorder.sh
在 Windows 上:
%GATLING_HOME%\bin\recorder.bat
一旦启动,以下 GUI 允许您配置如何记录请求和响应。
使用以下选项进行设置:
录制场景
现在,简单地浏览该应用程序:
尽量像真实用户一样行动,不要立即从一个页面跳转到另一个页面而不花时间阅读。这将使您的场景更接近真实用户的行为。
当完成场景演练时,在录制器界面上单击“Stop”。
生成的仿真将保存在 Gatling 安装的 user-files/simulations/computerdatabase 文件夹下,文件名为 BasicSimulation.java。
Gatling 场景解释
以下是生成的输出:
//package computerdatabase; // 1
// 2
import io.gatling.javaapi.core.*;
import io.gatling.javaapi.http.*;
import static io.gatling.javaapi.core.CoreDsl.*;
import static io.gatling.javaapi.http.HttpDsl.*;
public class BasicSimulationJava extends Simulation { // 3
HttpProtocolBuilder httpProtocol = http // 4
.baseUrl("http://computer-database.gatling.io") // 5
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") // 6
.doNotTrackHeader("1")
.acceptLanguageHeader("en-US,en;q=0.5")
.acceptEncodingHeader("gzip, deflate")
.userAgentHeader("Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0");
ScenarioBuilder scn = scenario("BasicSimulation") // 7
.exec(http("request_1") // 8
.get("/")) // 9
.pause(5); // 10
{
setUp( // 11
scn.injectOpen(atOnceUsers(1)) // 12
).protocols(httpProtocol); // 13
}
}
这段代码是 Gatling 生成的仿真场景的源代码,下面是它的主要部分的解释:
可选包:
所需导入:
类声明:
HTTP请求的通用配置:
baseUrl:
通用的 HTTP 头:
场景定义:
HTTP 请求:
暂停/思考时间:
pause
方法添加了一些暂停/思考时间。在 Gatling 中,时间的单位默认为秒。场景设置:
注入用户:
inject
方法声明将注入一个名为 “scn” 的场景中的单个用户。附加 HTTP 配置:
protocols
方法将上面声明的 HTTP 配置附加到场景中。这个代码片段定义了一个简单的 Gatling 场景,包括一个基本的 HTTP 请求和一些暂停时间。
整个场景将模拟用户在应用程序中的一些典型操作。详细了解 Gatling Simulation 结构的更多信息,请查阅 Simulation 参考页面。
运行 Gatling
启动位于 bin 目录中的第二个脚本:
在 Linux/Unix 上:
$GATLING_HOME/bin/gatling.sh
在 Windows 上:
%GATLING_HOME%\bin\gatling.bat
您应该看到一个带有以下选择的菜单:
Do you want to run the simulation locally, on Gatling Enterprise, or just package it?
Type the number corresponding to your choice and press enter
[0] <Quit>
[1] Run the Simulation locally
[2] Run the Simulation on Gatling Enterprise Cloud
[3] Package the Simulation for Gatling Enterprise
输入 1
然后按 Enter。
接下来,您将看到一个仿真示例的菜单:
Choose a simulation number:
[0] computerdatabase.BasicSimulation
[1] computerdatabase.advanced.AdvancedSimulationStep01
[2] computerdatabase.advanced.AdvancedSimulationStep02
[3] computerdatabase.advanced.AdvancedSimulationStep03
[4] computerdatabase.advanced.AdvancedSimulationStep04
[5] computerdatabase.advanced.AdvancedSimulationStep05
输入 0
然后按 Enter。在 Gatling 要求输入运行描述时,按 Enter。
当仿真完成时,控制台将显示指向 HTML 报告的链接。