Gatling实用技术高性能轻量级压力测试工具.docxVIP

Gatling实用技术高性能轻量级压力测试工具.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Gatling实用技术高性能轻量级压力测试工具

Gatling实用技术----高性能轻量级压力测试工具项目背景开发部门需要压力测试,但依赖QA的压力测试组不够便捷,因为其行动周期较长(业务讲解,计划制定,脚本匹配,文档撰写....),另外QA组使用的工具也比较专业,如果让开发部门自己用也不那么轻便。否能找到一种方法,让开发人员跑一跑压力测试呢(在专业的QA压力测试组介入以前)?本文档适用对象有一定编程基础的开发人员对应用性能有很高要求的开发团队本文不适合的对象希望所有功能均由图形界面完成的使用者本文阅读时间1~2小时,建议分部阅读,中间安排充足的时间实验。1 Gatling简介Gatling的Scala基础封装是基于Akka编程的,它是非阻塞异步编程模型,可以高效执行并有极高的容错率。专用web测试。像LR那样录制脚本,不用从零开始。脚本使用scala语言,易懂,易修改,控制灵活。基于JVM,随拷随用。(对比LoadRunner的客户端安装以及JMeter需要XWindow组件,这个方便很多),操作接近apache的ab。原生支持NIO,并发性能很好,即使性能较差的电脑也能发起很大的负载压力。基于HTML的报表,简单易读。2 Gatling入门2.1 准备工作2.1.1 下载下载地址:/excilys/gatling/wiki/Downloadsjdk6对应1.5版本,jdk7以上对应2.0版本。本文档使用1.5.2版本进行演示。2.1.2配置环境变量???????????需要配置好JAVA_HOME和?GATLING_HOME环境变量,后者指向Gatling的根目录。2.1.3 Gatling目录结构2.1.4 Recorder.bat 和 gatling.bat?Recorder.bat和gatling.bat一个用来录脚本,一个用来执行脚本。它们也提供了linux版本.sh。Recorder是个桥接在浏览器和web服务器之间的代理,如果浏览器通过它访问网络时,它能记下浏览器的访问轨迹。?Reocrder提供了UI界面,让配置和执行变得简单。?同时,Recoder也是一个scala代码的生成器,它能把访问轨迹记录成scala代码。?Gatling.bat是一个包含了编译,执行scala代码的脚本,它提供了一些参数供使用者指定执行的细节(比如JVM_OPTS),运行它可以选择需要执行的scala代码,创建非阻塞的线程模型执行压力测试。?2.2 录制一个脚本2.2.1 启动Recorder?执行{Gatling目录}/bin/recorder.bat|.sh,会启动一个图形控制界面,同时在后台启动了一个代理服务器。配置浏览器,令浏览器通过这个代理服务器访问互联网,则一切操作都会被其记录。2.2.2 浏览器指向Recorder代理启动Recorder之后,已经在本机的8000和8001上启动了代理,接下来我们配置一下浏览器,让它通过Recorder的代理访问网络。配置好以后,当Recorder关闭时,浏览器无法访问任何网站,证明配置成功。当脚本记录工作结束之后,别忘了改回无代理的状态,否则只要recorder一关,浏览器就不能访问互联网了。笔者建议,如果经常录压力测试脚本,可以单独安装一个不常用的浏览器专用,比如chrom。2.2.3 录制脚本录制以前,启动待测试的应用服务器,本文用grails搭了一个简单的web应用程序,跑在localhost:8080/teset/,然后打开浏览器,切换到Recorder点击start,回到浏览器访问地址,切回Recorder点击stopsave,这样就完成了一次录制。2.2.4脚本保存位置录制完成的脚本放在了这里,路径根据Recorder的Output folder指定,重名情况下会覆盖旧文件。如果录制的文件多了,可以考虑将这个文件夹弄到svn上去,以防万一。2.3 编辑脚本2.3.1脚本内容分解我们打开刚才录好的RecordedSimulation.scala,看到内容定义,我们只关注httpConf,scn这两个对象就够了。观察相同颜色的箭头,其功能脚本内容一目了然“用httpConf当做访问协议,用scn描述访若干问地址和暂停时间,用scn.users描述并发个数,执行访问。”?当然,所举的例子很简单。而一个完整的操作流程至少包含“登陆验证,操作,退出”。?在实际的录制过程中,读者可能会发现录制完的脚本中有很多杂乱的请求,这是因为网页中的css,js等资源也是通过请求获取,凡是请求都会被记录到脚本,形成了像“杂音”一样的内容。我们可以在编辑脚本时,适当删除它们。因为很多这类请求消耗的是缓存服务器的性能,而大说数情况我们更关注应用服务器。2.3.2编程思路将用户的操作,分解成多个“get”和“post”请求。定义每个请求对应的参数变

文档评论(0)

xjj2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档