简介

本篇文章翻译 gatling 官方快速入门文档,在本中将使用 Gatling 对一个简单的云托管 Web 服务器进行负载测试,并介绍 DSL 的基本要素。

安装

请检查安装部分以选择符合您需要的设置。建议非开发人员从捆绑软件设置开始。

编码

加特林的默认编码为 UTF-8。如果要使用另一种,则必须:

测试用例

该页面将指导您完成大多数 Gatling HTTP 功能。您将了解 simulations、scenarios、feeders、 recorder、loops 等。

测试下应用

在本教程中,我们将使用一个部署在 URL 上的名为 Computer-Database 的应用程序:
http://computer-database.gatling.io

该应用程序是用于管理计算机模型的简单 CRUD 应用程序,并且是 2.3 之前版本的 Play Framework 的示例。

场景

为了测试该应用程序的性能,我们将创建代表用户导航时实际发生情况的方案。
这是我们认为真正的用户将对应用程序执行的操作:

  1. 用户到达 web 应用
  2. 用户搜索 “ macbook”
  3. 用户打开相关模型之一
  4. 用户返回首页
  5. 用户遍历页面
  6. 用户创建一个新模型 # 基础 ## 使用记录 为了简化方案的创建,我们将使用 Recording,这是 Gatling 随附的工具,可让您在 Web 应用程序上记录您的操作并将其导出为 Gatling 方案。

该工具通过位于 bin 目录中的脚本启动:

在 Linux / Unix 上:

$GATLING_HOME/bin/recorder.sh

在 Windows 上:

%GATLING_HOME%\bin\recorder.bat

启动后,以下 GUI 可让您配置如何记录请求和响应。

使用以下选项进行设置:

尝试以实际用户的身份行事尝试阅读页面内容,不要立即从一页跳到另一页。这将使您的方案更接近真实用户的行为。

完成场景录制后,点击Stop按钮在 “记录器” 界面中单击。

模拟将在 user-files/simulations/computerdatabase 您的 Gatling 安装文件夹中的名称下生成 BasicSimulation.scala。

加特林情景说明

这是产生的输出:

package computerdatabase // 1

import io.gatling.core.Predef._ // 2
import io.gatling.http.Predef._
import scala.concurrent.duration._

class BasicSimulation extends Simulation { // 3

  val 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")

  val scn = scenario("BasicSimulation") // 7
    .exec(http("request_1") // 8
      .get("/")) // 9
    .pause(5) // 10

  setUp( // 11
    scn.inject(atOnceUsers(1)) // 12
  ).protocols(httpProtocol) // 13
}

这段代码是什么意思?

  1. 所在的软件包
  2. 所需要的依赖包
  3. 声明类,继承 Simulation 类
  4. 此脚本所有 HTTP 请求的通用配置
  5. 请求的 url 的基础域名
  6. 将与所有请求一起发送的通用 HTTP 请求头
  7. scenario 的定义与命名
  8. 定义一个 HTTP 请求,命名为request_1,此名称将显示在最终报告中
  9. 往指定的 URL 发送一个 GET 请求
  10. 增加思考时间或者等待时间
  11. 在这里面设置具体的压测场景
  12. 声明将一个单一用户注入到名为 scn 的方案中
  13. 附加上面声明的 HTTP 配置。

运行加特林

启动位于 bin 目录中的第二个脚本:

在 Linux / Unix 上:

$GATLING_HOME/bin/gatling.sh

在 Windows 上:

%GATLING_HOME%\bin\gatling.bat

当启动后应该看到带有场景信息的任务菜单:

Choose a simulation number:
[0] computerdatabase.BasicSimulation
模拟用户请求完成后,控制台将显示指向 HTML 报告的链接。


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