想要做性能测试,那必须得先从工具入手,针对目前市场上几款主流的压力工具,介绍介绍。
商业工具:
HP LoadRunner:这个工具放在第一个说,是因为早些年做性能测试的时候,基本市场上都是使用这个工具。LR工具功能齐全,对于复杂场景的处理能力和对结果数据的分析能力比较不错。但是呢,这个工具安装包就差不多1GB。光安装就要很久,在老的电脑上运行起来还不堪重负。因为是商业软件,是通过不同的协议的license 来购买,但除了一些银行,大型企业买,其余一些基本都是使用65536全协议的破解版本了。
开源工具:
Jmeter:随着互联网+的飞速发展,这个开源工具是互联网性能测试的最常用工具。基本上取代了loadrunner的地位,随着对JMeter使用的不断深入,我个人越来越倾向于在自己的工作中使用JMeter工具,并且也会不遗余力的向我认识的测试工程师推荐它。
1、它是开源的,安装及其简单,只需要提前安装JDK,把jmeter文件包解压就可使用。
2、可以通过各种逻辑控制器的组合来实现比较复杂的测试场景,但这里面也很多测试工程师踩过坑的,因为就算是相同的逻辑控制器,你顺序不一样,产生的场景也是不一样的。
3、它的脚本修改,对于基本的场景需求主要是通过各个组件来控制,不依赖于编程。对于复杂或者一些特定的场景,可以通过自己编写代码实现其逻辑,这当然也得需要一点代码功底。如果能用的好,基本没有解决不了的场景。
4、由于它的开源性,目前很多大的公司都是直接拿它的源码进行二次开发,最后整成适合自己公司的测试工具,甚至是测试平台。
tcpcopy : 它是一款具有复制在线server流量的工具。这款工具颠覆了以往的测试方法,在互联网+测试中比较火,因为互联网+测试迭代更新快,对于线上真实环境一些较为复杂的场景,在线下的测试场景中很难快速发现问题,或者很难重现问题,这个工具可以复制在线server流量到测试系统中,这样就引入在线的复杂场景到测试系统,从而可以在测试系统中充分暴露在线的问题,帮助用户提前解决在线问题,降低上线失误率或者实现零失误。做的好的,读写接口的都可以直接在线上回放,这也当然得需要成本的,还得架构支持,一般公司都是针对它进行二次开发后,加入个性化元素再使用。
Gatling:开源免费,它是一款基于Scala 开发的高性能服务器性能测试工具,它主要用于对服务器进行负载等测试,并分析和测量服务器的各种性能指标。Gatling主要用于测量基于HTTP的服务器,比如Web应用程序,RESTful服务等。Gatling适用的场景包括:测试需求经常改变,测试脚本需要经常维护;测试环境的客户机性能不强,但又希望发挥硬件的极限性能;能对测试脚本进行很好的版本管理,并通过CI进行持续的性能测试;希望测试结果轻量易读等;喜欢它的原因有好几个:
1、支持实时生成Html动态轻量报表,从而使报表更易阅读和进行数据分析,打开速度比较快。
2、 支持DSL脚本,从而使测试脚本更易开发与维护
3、 支持Maven,Eclipse,IntelliJ等,以便于开发
4、 支持Jenkins,以便于进行持续集成