新一代服务器性能测试工具Gatling

发表于:2013-10-23 11:04

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:passionboyxie    来源:51Testing软件测试网采编

  21世纪是云的世纪, 大规模云网已经出现了,而且在未来几年内会得到高速发展,从而使得基于云的系统也会越来越多。如果要开发一款高性能的云系统,服务器性能测试是一个必不可少的环节。今天,就来介绍一款新一代服务器性能测试工具Gatling。
  一,什么是Gatling
  Gatling是一款基于Scala 开发的高性能服务器性能测试工具,它主要用于对服务器进行负载等测试,并分析和测量服务器的各种性能指标。Gatling主要用于测量基于HTTP的服务器,比如Web应用程序,RESTful服务等,除此之外它拥有以下特点:
  支持Akka Actors 和 Async IO,从而能达到很高的性能
  支持实时生成Html动态轻量报表,从而使报表更易阅读和进行数据分析
  支持DSL脚本,从而使测试脚本更易开发与维护
  支持录制并生成测试脚本,从而可以方便的生成测试脚本
  支持导入HAR(Http Archive)并生成测试脚本
  支持Maven,Eclipse,IntelliJ等,以便于开发
  支持Jenkins,以便于进行持续集成
  支持插件,从而可以扩展其功能,比如可以扩展对其他协议的支持
  开源免费
  Gatling适用的场景包括:测试需求经常改变,测试脚本需要经常维护;测试环境的客户机性能不强,但又希望发挥硬件的极限性能;能对测试脚本进行很好的版本管理,并通过CI进行持续的性能测试;希望测试结果轻量易读等。
  相关厂商内容
  QCon上海技术训练营:OSGi、GitHub、Scrum深度培训,10月29-31日与您相约,了解详情! 2013年10月26日QClub大连站:大连软件开发者大会 QCon上海2013“团队文化”专题:构建持续前进的团队文化、价值观,工具与体系 GitHub中国上海Drinkup活动,就在QCon上海2013前夜,贝尼酒吧 QCon上海2013“游戏服务器实践”专题:游戏服务器运维经验、架构分享、性能策略
  二,Gatling与JMeter
  JMeter是目前使用最为广泛的服务器性能测试工具之一,它最大的特点就是拥有一套简单易用的GUI,但它最大的缺点也是由于简单易用导致它某些方面的不足,比如测试脚本(XML)不容易维护等。Gatling正是针对JMeter的劣势做了大量改进,因此相较于 JMeter,Gatling拥有以下优势:
  在并发性能方面,Gatling使用了Akka Actors和Async IO, 而JMeter则采用了一个用户使用一个线程的方式 ,一旦并发线程过多,性能就急速下降,很难充分发挥硬件的能力。虽然两个工具都是基于JVM的,但是Actors模型的性能在高并发的情况下性能大大优于Threads,从而使得Gatling在更少的内存和CPU的情况下可以提供同样的测试能力,降低了测试成本。图1和图2分别展现了二者在并发性能方面的表现。
  图1,JMeter 2.8
  图2,Gatling 1.3.2
  图片,测试环境和测试脚本参见:https://github.com/excilys/gatling/wiki/Benchmarks
  其中图1和图2分别是JMeter和Gatling在300个用户并发下的测试结果。可以很明显的看出,JMeter的并发量在300上下波动,最高达到400,最低达到200,而Gatling几乎稳定在300。由此可见Gatling性能的稳定性。
  在测试脚本方面,Gatling是Scala代码,而JMeter主要是XML代码。Gatling基于一套开源的Gatling DSL API,所以它的功能很容易扩展,也不需要使用者精通Scala语言。DSL的使用也更容易编写出简明,易读性和维护性高的代码,而且还可以使用版本工具进行更有效的管理。因为性能测试应该属于系统发布流程中必不可少的一个步骤,所以测试脚本应该和系统代码一样使用版本工具进行统一管理。
  在报表系统上,Gatling提供了一套轻量并且十分友好的Html报表系统,使得用户可以更为快速而方便地查看和分析数据,相反,JMeter的报表系统却十分笨重,且使用也不方便。
41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号