4)操作简单

  5)分布式

  6)意义非凡

  Chris评论:这个工具的特别之处在于,它针对线上系统,采用"copy tcp packet"的方式,让你明确地知道线上系统是否可以承受两倍于目前的负载!

  5 LoadUI/soapUI http://www.loadui.org/About-loadUI/gallery.html

  loadUI. The art of Load Testing.

  loadUI is a open source Load Testing solution that is free and cross-platform. With a visual, drag-and-drop interface, it allows you to create, configure and redistribute your Load Tests interactively and in real-time. In a single test environment, loadUI provides complete test coverage and supports all the standard protocols and technologies. And it’s so powerful, it generates scalable, high-volume and real-world load from any number of local and remote computers. Meet loadUI, the future of Load Testing.

  Chris评论:LoadUI那牛X的拖拽和华丽的外表,非常吸引人,人家还用了JavaFX呢!!! 当然功能也非常强大,但我个人的使用经验还很少,不能有更深入评论。

  6 后是的 Tsung http://tsung.erlang-projects.org/

  Tsung is an open-source multi-protocol distributed load testing tool

  It can be used to stress HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and Jabber/XMPP servers. Tsung is a free software released under the GPLv2 license.

  The purpose of Tsung is to simulate users in order to test the scalability and performance of IP based client/server applications. You can use it to do load and stress testing of your servers. Many protocols have been implemented and tested, and it can be easily extended.

  It can be distributed on several client machines and is able to simulate hundreds of thousands of virtual users concurrently (or even millions if you have enough hardware ...).

  Tsung is developed in Erlang, an open-source language made by Ericsson for building robust fault-tolerant distributed applications.

  Chris评论:Tsung 算是分布式施压的流行工具之一,使用erlang等开发,基本安装步骤如下:

  1 erlang

  2 perl5

  - Template Toolkit

  3 gnuplot

  - libpng

  - libgd

  - fonts:http://www.my-guides.net/en/images/stories/fedora12/msttcore-fonts-2.0-3.noarch.rpm

  4 python

  - numpy

  - matplotlib

  PS:

  tsung的结果数据通过一个自带的perl脚本格式化为html,并且调用gnuplot来绘制了图形,存放在log目录里;

  如果是在服务器上,或要在其他机器上查看,可以cd到log目录,然后直接执行"python -m simpleHttpServer" ,之后可以通过浏览器访问 ip:8000 来浏览了。

  总结:

  大多数测试工具上手都还算不难,无外乎 录制脚本或者手动编写脚本,设置controller和listener等,执行测试,结果分析/绘图等。

  越自动化的工具其定制性和灵活性也相对变弱,而越灵活的工具其自动化能力也相对变弱。

  性能测试涉及很多方面,尤其是在高并发的海量用户场景下,从前面的浏览器缓存、CDN到后面的内核修改,每个环节都有事可做;

  但在实际项目中,要根据系统发展的不同阶段选择不同的方式方法。首要任务都是找出目前瓶颈,在诸多目标中求平衡!