压力测试工具——Galting
为什么要写Gatling呢?网上已经有一些介绍Gatling的好文章了,比如两位TW同事的文章,可以看这里(我知道Gatling也是因为这位作者介绍的),还有这里。主要是因为最近在使用Gatling做压力测试,感觉这个工具非常好用,所以想结合自己的使用情况也推荐一下。Gatling是基于scala写的一个开源的压力测试工具,它的特点是简单易用,测试报告简洁漂亮,api通俗易懂。
JDK1.7
Gatling是基于jdk1.7开发的,所以还在用jdk1.6的同学需要先下载jdk1.7,才可以启动Gatling。顺便说一下,JDK1.7以后肯定是会替换JDK1.6的,但由于历史原因(主要是JDK1.6用的人实在太多了,我想也是由于JDK1.7升级的太晚了)大家都不想升级,我也这也是JAVA走下坡路的原因。
Scala
前面讲过Gatling是用scala写的,像scala、groovy和clojuer都是基于jvm开发的一种语言,不仅继承了java众多成熟的api和稳定的jvm,而且提供了更佳简洁易用的语法。基于某种语言的内核来重新设计一门新语言的这种做法,现在慢慢多了起来,这种做法的最大好处就是不用自己再重新设计编程语言底层相关的一些东西,而且可以使用原有语言大量的成熟api,让新语言就只专注地实现自己的功能,从而使新的语言性能稳定,易用性更高,甚至可以吸引一些原有语言的开发人员。
DSL
看过Galting的api的人就会发现,它的语法很像自然语言,比如测试一个get类型的http请求,它可能会这样写:
1 |
|
是不是很容易懂,这种就是基于DSL来写的代码,关于DSL可以看这本书,这本书我还没怎么看,等看完了以后再做分享,DSL不单单只是把代码写得像自然语言那样简单。
API
要想了解Gatling的各种api,这里推荐看Gatling源码里面的HttpCompileTest这个测试类,这里包含了http几乎所有的api使用示例。下面是截取的代码片段,全部代码可以看这里。
1 |
|
这里说下randomSwitch这个方法,这个方法可以模拟负载均衡,比如上面40d和50d的两行代码,会有40%的几率执行上面一行代码,50%的几率执行下面一行代码。
Question
如果看过上面的示例代码代码,还不知道具体的api怎么用,可以到google group上面的分组提问题,很快就有人回答你的问题。github上面的问题区是让开发提bug或者feature用的,所以尽量不要在上面提问题。
Report
下面是Gatling的报告截图,界面很漂亮,而且参数很齐全,包括全部的请求数,成功/失败的请求数,请求的最大/最小/平均响应时间等。
Http & JMS
目前Gatling支持的协议不多,毕竟是一个轻量级的测试工具,目前只支持Http和JMS(以前用的时候还只是支持HTTP),随着Gatling的发展,以后肯定会支持更多的协议。现在大部分的系统和应用都是提供http协议的api,所以基于http协议的测试也能满足大部分的测试场景了。
压力测试工具——Galting的更多相关文章
- linux压力测试工具stress
最近给PASS平台添加autoscaling的功能,根据服务器的负载情况autoscaling,为了测试这项功能用到了stress这个压力测试工具,这个工具相当好用了.具体安装方式就不说了.记录下这个 ...
- HTTP压力测试工具
HttpTest4Net是一款基于C#实现的和HTTP压力测试工具,通过工具可以简单地对HTTP服务进行一个压力测试.虽然VS.NET也集成了压力测试项目,但由于VS自身占用的资源导致了在配置不高的P ...
- 微软压力测试工具 web application stress
转自 http://www.cnblogs.com/tonykan/p/3514749.html lbimba 铜牌会员 这里给广大的煤油推荐一个web网站压力测试工具.它可以用来模拟多个用户操作网 ...
- Linux下四款Web服务器压力测试工具(http_load、webbench、ab、siege)介绍
一.http_load程序非常小,解压后也不到100Khttp_load以并行复用的方式运行,用以测试web服务器的吞吐量与负载.但是它不同于大多数压力测试工具,它可以以一个单一的进程运行,一般不会把 ...
- DNS压力测试工具dnsperf简介
dnsperf是我最近写的一个开源的DNS压力测试工具,用户可以用它来对DNS服务器或者Local DNS做压力测试.dnsperf目前的实现是单进程模式,通过epoll非阻塞地处理网络事件. dns ...
- sysbench压力测试工具简介和使用(二)
sysbench压力测试工具使用: 2.1 测试数据库服务器的硬件配置信息如下: CPU: 24核心线程数,Intel(R) Xeon(R) CPU E5-2620 0 @ 2.00G ...
- 网站压力测试工具webbench使用说明
一.webbench简介 Webbench是有名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发.它的帮助文件和文档请到:ww ...
- Http压力测试工具HttpTest4Net
HttpTest4Net是一款基于C#实现的和HTTP压力测试工具,通过工具可以简单地对HTTP服务进行一个压力测试.虽然VS.NET也集成了压力测试项目,但由于VS自身占用的资源导致了在配置不高的P ...
- 压力测试工具ab使用
ab全名是apache bench,是apache自带的一款压力测试工具.它通过创建多个线程来模拟并发,测试目标是基于URL的,因此不论是什么web服务器都可以支持. 使用ab非常简单,进入apach ...
随机推荐
- 工作流学习——Activiti流程定义管理三步曲 (zhuan)
http://blog.csdn.net/zwk626542417/article/details/46602419 ***************************************** ...
- SDL1.2到2.0的迁移指南(转)
里面有些单词不好翻译所以放在开头,以备查验. BLock Image Transfer, a computer graphics operation in which two bitmap patte ...
- linux套件安装过程中configure,make,make install的作用
./configure,make,make install都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤.其中: ./configure是检测程序文件,用来检测你的安装平 ...
- UTF-7编码
目录 1 编码 1 2 编码代码(C++) 2 3 解码代码(C++) 4 4 测试代码(VC++) 7 1 编码 UTF-7编码的规则及特点为: 1)UTF16小于等于 0x ...
- 能源项目xml文件标签释义--default-lazy-init
1.spring的default-lazy-init参数 spring在启动的时候,会默认加载会默认加载整个对象实例图,从初始化ACTION配置.到 service配置到dao配置.乃至到数据库连接. ...
- 使用委托(C# 编程指南)
原文地址:https://msdn.microsoft.com/zh-cn/library/ms173172.aspx 委托是安全封装方法的类型,类似于 C 和 C++ 中的函数指针. 与 C 函数 ...
- 101个MySQL 的调节和优化的提示
MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限.这里是101条调节和优化MySQL安装的技巧.一些技巧是针对特定的安装环境的,但这些思 ...
- kmeans算法原理以及实践操作(多种k值确定以及如何选取初始点方法)
kmeans一般在数据分析前期使用,选取适当的k,将数据聚类后,然后研究不同聚类下数据的特点. 算法原理: (1) 随机选取k个中心点: (2) 在第j次迭代中,对于每个样本点,选取最近的中心点,归为 ...
- (02)odoo自定义模块
* 官方建议模块骨架 -------------------------- addons/<my_module_name>/ │─ __init ...
- struts 标签库注解
在struts2中有着一套像html一样的标签,俗称struts2标签,大多数公司使用ssh都是使用html标签,但为了保持项目的统一性,有的公司还是使用的struts2的标签,下面是一些常用的str ...