2019独角兽企业重金招聘Python工程师标准>>>

在本章,我们将使用gatling来加载测试一个云托管web服务器,并向你介绍DSL基本元素。

安装gatling:将gatling解压至指定文件夹即可

提示:Windows用户:我们建议您不要将Gatling放在程序文件夹中,因为可能存在权限问题。

为了运行Gatling,您需要安装JDK。 Gatling需要JDK8,但我们建议您使用最新版本。

有关操作系统(OS)的安装和调整的所有详细信息,请参阅操作部分。

提示:

Gatling launch scripts and Gatling maven plugin honor JAVA_HOME env var if it’s set. OS, like OSX, have their own tricky way of discovering which version of Java to run, so you might end up running a different version than the one java -version tells you. If you get strange errors such as Unsupported major.minor version 51.0 and you were expecting to run a JDK8, you might want to explicitly set JAVA_HOME.

编码:

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

在使用记录器时选择正确的编码
   在gatling.conf文件中配置正确的编码。
   它将用于编译您的模拟,构建您的请求和您的响应。
   确保您的文本编辑器编码已正确配置为匹配。

关于scala:

Gatling模拟脚本是用Scala编写的,但不要惊慌! 您可以使用Gatling的所有基本功能,而不必了解Scala。 在大多数情况下,DSL将覆盖您的大部分需求,您将能够构建您的方案。

如果您有兴趣了解Scala的更多信息,那么我们建议您看看Twitter的Scala School。

测试用例
    本页将引导您了解大部分Gatling HTTP功能。 您将了解模拟,情景,馈线,录音机,循环等。

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

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

脚本
    为了测试此应用程序的性能,我们将创建代表用户浏览时真正发生的情况。

这是我们认为真正的用户对应用程序的看法:
    用户到达应用程序。
    用户搜索“macbook”。
    用户打开相关型号之一。
    用户回到主页。
    用户遍历页面。
    用户创建一个新模型。

Basics
Using the Recorder
To ease the creation of the scenario, we will use the Recorder, a tool provided with Gatling that allows you to record your actions on a web application and export them as a Gatling scenario.

基本

使用录制器

为了简单的创建场景,我们使用录制器,Gatling提供的一个工具,可以在Web应用程序中记录您的操作,并将其作为Gatling场景导出。

This tool is launched with a script located in the bin directory:

  • On Linux/Unix:

    $GATLING_HOME/bin/recorder.sh
  • On Windows:

    %GATLING_HOME%\bin\recorder.bat

Once launched, the following GUI lets you configure how requests and responses will be recorded.

设置以下选项:
存储位置
BasicSimulation名称
关注重定向?检查
自动参考检查
黑名单首选过滤策略
黑色列表过滤器中的*。css,。* \。js和。* \ ico

配置录制器后,您只需启动录制器并配置浏览器即可使用Gatling Recorder的代理。

有关录制器和浏览器配置的更多信息,请查看录制器参考页面。

录制场景

输入“搜索”标签。
   访问网站:http://computer-database.gatling.io
   搜索名为“macbook”的模型。
   选择'Macbook pro'。
   输入“浏览”标签。
   回到主页。
   通过单击下一步按钮迭代模型页面几次。
   输入“编辑”标签。
   单击添加新计算机。
   填表格。
   单击创建此计算机。

尝试充当真正的用户,不要立即从一个页面跳到另一个页面,而不用花时间阅读。 这将使您的场景更贴近实际用户的行为。

完成播放场景后,单击记录器界面中的停止。

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

Gatling场景解释
这里是生产的产出:

package computerdatabase // 1import io.gatling.core.Predef._ // 2
import io.gatling.http.Predef._
import scala.concurrent.duration._class BasicSimulation extends Simulation { // 3val 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) // 10setUp( // 11scn.inject(atOnceUsers(1)) // 12).protocols(httpConf) // 13
}

What does it mean?

  1. The optional package.
  2. The required imports.
  3. The class declaration. Note that it extends Simulation.
  4. The common configuration to all HTTP requests.

val是用于定义常量值的关键字。 类型未定义,并由Scala编译器推断。

  1. The baseURL that will be prepended to all relative urls.
  2. Common HTTP headers that will be sent with all the requests.
  3. The scenario definition.
  4. A HTTP request, named request_1. This name will be displayed in the final reports.
  5. The url this request targets with the GET method.
  6. Some pause/think time.

持续时间单位默认为秒,例如 pause(5)相当于暂停(5秒)。

  1. Where one sets up the scenarios that will be launched in this Simulation.
  2. Declaring to inject into scenario named scn one single user.
  3. Attaching the HTTP configuration declared above.
  4. Note

    For more details regarding Simulation structure, please check out Simulation reference page.

    Running Gatling

    Launch the second script located in the bin directory:

  5. On Linux/Unix:

    $GATLING_HOME/bin/gatling.sh
  6. On Windows:

    %GATLING_HOME%\bin\gatling.bat
  7. You should see a menu with the simulation examples:

    Choose a simulation number:[0] computerdatabase.BasicSimulation

    When the simulation is done, the console will display a link to the HTML reports.

    Note

    If Gatling doesn’t work as expected, see our FAQ or ask on our Google Group.

    Going Further

    When you’re ready to go further, please check out the Advanced Tutorial.

转载于:https://my.oschina.net/u/3613710/blog/1554797

gatling系列教程(翻译)-第三节(快速开始)相关推荐

  1. JavaBeginnersTutorial 中文系列教程·翻译完成

    原文:JavaBeginnersTutorial 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 学习资源 目录 ...

  2. python网页填表教程_PythonSpot 中文系列教程 · 翻译完成

    原文:PythonSpot Python Tutorials 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 学 ...

  3. JavaTutorialNetwork 中文系列教程 · 翻译完成

    原文:JavaTutorialNetwork 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 学习资源 目录 J ...

  4. PythonSpot 中文系列教程 · 翻译完成

    原文:PythonSpot Python Tutorials 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 学 ...

  5. PythonBasics 中文系列教程 · 翻译完成

    原文:PythonBasics Python Tutorial 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN ...

  6. 正则翻译工具_PythonBasics 中文系列教程 · 翻译完成

    原文:PythonBasics Python Tutorial 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN ...

  7. 全景丨VR全景制作全流程系列教程,第三节认识单反相机和鱼眼镜头

    一.相机 单反和微单 这里说的相机是指可更换镜头的单反/微单数码相机.那两者有何差异呢? 1)取景结构差异 两者最直观的区别在于,微单相机为减轻重量.缩小体积,取消了传统单反相机里反光镜.五棱镜这些光 ...

  8. PythonGuru 中文系列教程·翻译完成

    原文:PythonGuru 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 学习资源 目录 初级 Python ...

  9. (李兴华)【FANUC FOCAS1/2 Library 开发系列教程】-10分钟快速入门

    准备工作 1.下载Focas开发包并解压 2.下载Visual Studio2015 社区版并安装 以上具体的实现这里不做具体说明,我相信你完成这些非常容易~~ 确保网络及硬件没问题 我是一枚苦逼的程 ...

最新文章

  1. Spring MVC 过时了吗?
  2. Spring MVC与JAX-RS比较与分析
  3. [LGP4859,...] 一类奇怪的容斥套DP
  4. SAP HANA企业级培训系列课程第一部分
  5. c语言定义数组变量初始化为0,c语言数组初始化——int a[N] = {0};
  6. 字符(串)输入输出函数
  7. 圆周卷积(circular convolution)
  8. Resumable.js - 基于HTML5 File API的可断点续传的文件上传插件
  9. 解决引用flexible.js使第三方ui样式缩小的方法
  10. spring中的BeanFactory和FactoryBean的区别与联系
  11. python爬取美女_Python制作爬虫抓取美女图
  12. 免费计算机网络基础ppt,计算机网络基础概念课件.ppt
  13. php 缩略图黑图,一睡万年_119 黑图(上) - 小说者
  14. 【Web技术】1395- Esbuild Bundler HMR
  15. 一个30岁转行IT行业从小兵到主管的崎岖成长之路
  16. 微信小程序开屏动画组件封装以及使用示例
  17. MFC 视图-OpenGL场景-CDialogBar三个界面保存为图片
  18. 计算机病毒 两大传播途径,计算机病毒的传播途径
  19. VLC -- 使用VLC串流播放视频
  20. 在计算机中数据编码的最小单位是( ),计算机中数据编码最小单位是

热门文章

  1. Visual Studio 2008 集成SP1补丁
  2. 关于架设流媒体服务器与DRM加密问题
  3. 互联网下一个热点:服务业电子商务
  4. vuejs切换导航条高亮路由高亮做法
  5. 2018年系列之设计模式汇总贴
  6. Promise 的四种常用方法。
  7. 获取文件绝对路径最后的文件夹名称
  8. quot;数据结构翻转课堂quot;答疑实录——链表
  9. Script To Monitor RDBMS Session UGA and PGA Current And Maximum Usage Over Time
  10. 一个中产阶级丈夫给坚持买房妻子的一封信