接口测试 Gatling 文档翻译 (一)-QuickStart

zhangyang · 2015年11月14日 · 2493 次阅读
本帖已被设为精华帖!

英文文档地址:
http://gatling.io/docs/2.1.7/quickstart.html

Quickstart

简介

在本节中,我们将使用 Gatling 测试一个简单的云托管的 Web 服务器,并会向你介绍 DSL 的基本要素。

获取软件

你可以从这里获取 Gatling 软件包:

安装

解压下载包到你选择的文件夹

注意:
Windows 用户:我们建议不要将 gatling 放在 Programs 文件夹,因为这可能会引起权限问题。

为了运行 Gatling,你需要安装一个 JDK。Gatling 需要至少 JDK7u6,但我们建议使用最新版本。
关于安装和操作系统(OS)调试的所有细节,请参阅Operations部分。

注意:
Gatling 启动脚本和 Gatling maven 插件能识别 JAVA_HOME 环境变量。OS,比如 OSX,有自己的方式获取运行的 Java 的版本,所以你实际运行的 Java 版本可能和 Java -version 显示的 Java 版本不同。如果你得到奇怪的错误,如不支持 major.minor 版本 51.0,你应当运行 JDK7,并且可能需要明确设置 JAVA_HOME。

关于编码

Gatling 的默认编码是 UTF-8。如果你想使用其他编码,你必须:

  • 在使用 Recorder 时选择正确的编码
  • 在 gatling.conf 配置文件中设置正确的编码。它将用于编译 simulations,构建你的 requests 和 responses。
  • 确保正确设置了你的文本编辑器的编码。

关于 Scala

Gatling 的 simulation 脚本使用Scala语言编写。但是不要担心,在对 Scala 不是很了解的情况下你仍可以使用 Gatling 的所有基本功能。在大多数情况下,DSL 将满足大部分的需求,你可以使用 DSL 建立自己的 scenarios。
如果你有兴趣了解更多关于 Scala 的内容,我们建议你看看 Twitter 上的Scala 学校

备注:
在你阅读本文档时,我们也欢迎你加入我们的 Google Group 并在上面寻求帮助。

测试用例

下面的内容将使你了解大部分的 Gatling HTTP 特性。你将了解 simulations,scenarios,feeders,recorder,loops 等。

Application under Test

在本教程中,我们将使用一个部署在http://computer-database.gatling.io 上名叫 Computer-Database 的应用程序
此应用程序是用于管理计算机种类的一个简单的 CRUD 应用程序,并且是 2.3 版本之前的演示框架的实例。
你也可以在本地计算机上运行它:下载并使用它吧! 2.2.x 版的包

Scenario

为了测试这个应用程序的性能,我们将创建一些具有代表性的用户使用场景。
下面是一些我们认为的真是用户使用此应用程序的场景

  • 用户访问 Application.
  • 用户搜索'macbook'.
  • 用户打开搜索到的记录中的一个。
  • 用户回到主页。
  • 用户前后翻页。
  • 用户创建一条新记录。

基本使用

使用 Recorder

为了便于创建场景,我们将使用 Recorder,一个 Gatling 提供的可以用来录制操作步骤并导出为 Gatling scenario 的工具。
该工具通过存放于 bin 目录下的一个脚本启动:

  • On Linux/Unix:
    • $GATLING_HOME/bin/recorder.sh
  • On Windows:
    • %GATLING_HOME%\bin\recorder.bat

一旦启动,下图的 GUI 界面将使你能够配置 requests 和 responses 的录制方式。
使用以下可选项来启动 Recorder:

  • computerdatabase ----package 名
  • BasicSimulation ----name
  • Follow Redirects? ----选中
  • Automatic Referers? ----选中
  • Black list first filter strategy ----选中
  • Black list 中包含 ..css, ..js and .*.ico


配置 Recorder 后,你所要做的就是启动 Recorder 并配置你的浏览器使用 Gatling Recorder 的代理。

备注
有关 Recorder 和浏览器配置的详细信息,请查看Recorder 的参考页

录制 scenario

现在来简单的操作一下 application:
1.访问: http://computer-database.gatling.io
2.查找名字中包含 “macbook” 的记录.
3.选择 ‘Macbook pro’.
4.回到主页.
5.通过 “上一页”,“下一页” 来访问多个页面.
6.点击按钮 Add new computer.
7.填写表单.
8.点击 Create this computer.

尽量像一个真实用户那样去操作,不要立即从一个页面跳转到另一个页面,要留一些 thinking time 和 read time。
这样可以使你的场景更加贴近真实的用户行为。
当你完成场景操作时,在 Recorder 界面上点击 Stop 按钮
录制的 Simulation 将会存放在你 Gatling 安装目录下的 user-files/simulations/computerdatabase 目录下,文件名为 BasicSimulation.scala。
####Gatling scenario 详解
下面是生成的输出:

package computerdatabase // 1

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

class BasicSimulation extends Simulation { // 3

  val httpConf = 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(httpConf) // 13
}

What does it mean?

  1. 可选包.
  2. 必要的需要 import 的包.
  3. class 声明,继承自 Simulation.
  4. 所有 HTTP 请求的通用配置.
  5. 将被前置到所有相对 URL 的的 baseUrl.
  6. 通用 HTTP 头信息,它将会被用于所有的 requests 请求中.
  7. scenario 定义.
  8. 一个名叫 request_1 的 HTTP 请求,请求名字将会显示在最终的报告中.
  9. 以 GET 方法请求目标 url.
  10. 一些 pause/think time.
  11. 设置将要在这个 Simulation 中启动的 scenarios.
  12. 在名叫 scn 的 scenario 中注入一个用户.
  13. 应用上面声明的 HTTP 配置.

备注:
val 是定义一个常量的关键字。变量类型没有定义,由 Scala 编译器确定.
时间单位默认为 seconds(秒),如:pause(5) 等同于 pause(5 seconds).
关于 Simulation 结构的详细信息,请查看 Simulation 参考页面.

运行 Gatling

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

  • On Linux/Unix:
    • $GATLING_HOME/bin/gatling.sh
  • On Windows:
    • %GATLING_HOME%\bin\gatling.bat

你应当看到一个 simulation 示例的菜单 :
Choose a simulation number:

[0] computerdatabase.BasicSimulation

当 simulation 执行完成时,控制台会显示一个 HTML 报告的链接。
备注:
如果 Gatling 没有像预期的那样工作,请查看 FAQ 或者 在Google Group 上提问。

了解更多

如果你想要了解更多,请查看 Advanced Tutorial.

共收到 0 条回复 时间 点赞
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册