总是说细节、理论,会让人不胜其烦。我们使用Tsung来一次100万用户压测的吧,或许能够引起好多人的兴趣 :))
下面,我根据在公司分享的PPT《分布式百万用户压测你的业务》,贴出其中的关键部分,说明进行一次100W(即1M)用户压测的执行步骤。
假定面向小白用户,因此才有了下面可执行的10个步骤用于开展分布式百万用户。

看着步骤很多,一旦熟悉并掌握之后,中间可以省却若干。

建议大家在使用Tsung之前,花费一点时间阅读完整个用户手册,虽然是英文的,阅读起来也不复杂。读完之后,我们也就知道如何做测试了,遇到的大部分问题,也能够在里面找到答案。








因为Tsung依赖于Erlang,因此需要首先安装:
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
sudo yum install erlang
然后再是安装Tsung,建议直接使用Tsung 1.6.0修改版,主要提供IP只连支持(具体细节,可参考这里 http://www.blogjava.net/yongboy/archive/2016/07/28/431354.html ):
git clone https://github.com/weibomobile/tsung-1.6.0.git
./configure --prefix=/usr/local
make install
tsung—rsh

为什么要替换掉SSH,主要原因:
可进一步参考:Tsung笔记之分布式增强跳出SSH羁绊篇。



要把业务定义的所有会话内容完整的整理映射成Tsung的会话内容,因为用户行为很复杂,也需要我们想法设法去模拟。
其实,演示所使用的是私有协议,可以参考 Tsung笔记之插件编写篇 。
当完成压测会话内容之后,users_100w.xml
文件已经填写完毕,我们可以开始压测了。

我们启动了从节点,然后从节点被启动,开始执行具体压测任务了。

紧密关注服务器服务状态、资源占用等情况就对了,最好还要作为一个终端用户参与到产品体验中去。

Tsung压测结束之后,不会主动生成压测结果报表的,需要借助于 tsung_stats.pl
perl脚本生成,要查阅可借助python生成临Web站点,浏览器打开即可。

其实,一旦熟悉并掌握Tsung之后,步骤1-6都可以节省了,循环执行步骤7-10。
你若以为仅仅只是谈论Tsung如何做1M用户压测,那就错了,只要机器资源够,这个目标就很容易实现。我们更应该关注,我们压测的目的是什么,我们应该关注什么,这个应该形成一个完整可循环过程,驱动着系统架构健康先前发展。