tsung

# tsung


## 安装


操作系统: centos 7.0


erlang:otp_17


tsung: 1.6.0


tsung 主要包含测试功能、报表生成工具、测试结果比较工具。tsung的[安装](http://blog.csdn.net/jimesum1/article/details/7847924)依赖于erlang的安装,更详细的[安装](http://blog.sina.com.cn/s/blog_13cc013b50102v5nw.html)。tsung安装的依赖项和简单使用在链接里面有说明。erlang的安装依赖项请参考erlang的对应安装文档。tsung 安装并配置完毕后,测试功能就可以正常使用了。报表生成工具和测试结构比较工具不能正常使用。


### tsung直接依赖库


Template-Toolkit:2.26 (前面的安装文档中使用的2.24)


gnuplot:使用yum -y install gnuplot安装即可


其他依赖使用 “yum -y install 模块名” 安装


### 报表生成工具依赖库(安装Template-Toolkit之前就应该安装)
yum install -y perl-Image*    
yum install -y perl-Pod*   
yum -y install perl-CGI*   
yum -y install perl-CPAN  
yum install python-devel   


### 测试结果比较工具(tsplot)依赖库


yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libpng-devel  harfbuzz-devel  
easy_install six  
easy_install python_dateutil   


tsplot 依赖库[安装](https://www.douban.com/note/432207495/),在centos7.0环境下验证可用。




## 源码分析


系列[博客](http://jzhihui.iteye.com/category/205905),对于理解websocket for Tsung、tsung启动过程、压力生成过程、服务器监控、数据统计等有帮助。博文结合代码看,理解起来更快。


## xml参数
tsung的压力过程分三个阶段:读取配置、开启监控、启动客户端进程。
tsung的配置是以[xml](http://blog.csdn.net/libing1991_/article/details/47684433)文件存在的。配置文件的结构: 顶级标签<tsung>、客户端标签<clients>、服务端标签<servers>、监控标签<monitor>、负载标签<load>、选项标签<options>、过程标签<sessions>.


## tsung 使用


### 测试工具使用


tsung start


### 报表生成工具
定位到 log目录下,执行/usr/local/tsung/lib/tsung/bin/tsung_stats.pl


### 比较工具


tsplot FirstTestName FirstTestDir  SecondTestName SecondTestDir -d Outputdir


不指定outputdir,输出到 /tmp/tsung/


## Tsung测试结果说明
tsung统计数据每十秒钟采样一次。
### 统计报表说明
1.主要统计数据


<table>
    <tr>
        <td>Name</td>       
        <td>highest 10sec mean</td>
        <td>lowest 10sec mean</td>
        <td>Highest Rate</td>
        <td>Mean Rate</td>
        <td>Mean</td>
        <td>Count</td>
    </tr>
    <tr>
<td >connect</td>
<td >64.51 msec </td>
<td >1.72 msec</td>
<td >1.6 / sec</td>
<td >0.96 / sec</td>
<td >12.03 msec </td>
<td >100 </td>
     </tr>
     <tr>
<td>page</td>
<td >0.31 sec </td>
<td >0.23 sec</td>
<td >1.5 / sec</td>
<td >0.96 / sec</td>
<td >0.25 sec </td>
<td >100 </td>
     </tr>
     <tr>
<td >request</td>
<td >0.31 sec </td>
<td >0.23 sec</td>
<td >1.5 / sec</td>
<td >0.96 / sec</td>
<td >0.25 sec </td>
<td >100 </td>
     </tr>
     <tr>
<td >session</td>
<td >0.30 sec </td>
<td >0.23 sec</td>
<td >1.6 / sec</td>
<td >0.96 / sec</td>
<td >0.25 sec </td>
<td >100 </td>
     </tr>      
</table> 




<table>
    <tr>
        <td>名字</td>       
        <td>10s内最高平均值</td>
        <td>10s内最低平均值</td>
        <td>最高速率</td>
        <td>最低速率</td>
        <td>平均值</td>
        <td>最大值</td>
    </tr>
    <tr>
<td >connect每个连接建立的消耗时间</td>
<td >10s 内每个连接建立的最大平均耗时 64.51 msec </td>
<td > 10s 内每个连接建立的最小平均耗时 1.72 msec</td>
<td >每秒最高建立连接速率1.6 / sec</td>
<td >每秒平局建立连接速率0.96 / sec</td>
<td >平均每个连接建立耗时12.03 msec </td>
<td >最后一次写日志的之前的连接总数100 </td>
     </tr>
     <tr>
<td>page每个请求集合的响应时间(一个页面表示一组没有被thinktime 间隔的请求)</td>
<td >一个页面请求的最长响应时间0.31 sec </td>
<td >一个页面请求的最短响应时间0.23 sec</td>
<td >请求的最大速率 1.5 / sec</td>
<td >请求的平均速率0.96 / sec</td>
<td >平均每个请求的响应时间0.25 sec </td>
<td >请求总数100 </td>
     </tr>
     <tr>
<td >request 每个请求的响应时间</td>
<td >每个请求的最长响应时间0.31 sec </td>
<td >每个请求的最短响应时间0.23 sec</td>
<td >请求的最大速率1.5 / sec</td>
<td >请求的平均速率0.96 / sec</td>
<td >平均每个请求的响应时间0.25 sec </td>
<td >请求总数100 </td>
     </tr>
     <tr>
<td >session 每个session的持续时间</td>
<td > 每个session的最大持续时间0.30 sec </td>
<td >每个session的最小持续时间0.23 sec</td>
<td >session 最大响应速率1.6 / sec</td>
<td >session 的最平均响应速率0.96 / sec</td>
<td >session的平均持续时间0.25 sec </td>
<td >session总数100 </td>
     </tr>      
</table> 


每个采用时间段内尚未完成的connect、page、request、session 计入到下一个采样时间段。


2.事务统计数据
transaction 仅作为 自定义的统计项 和具体业务无关。事务名称必须以"tr_" 为前缀。


<table>
    <tr>
        <td>Name</td>       
        <td>highest 10sec mean</td>
        <td>lowest 10sec mean</td>
        <td>Highest Rate</td>
        <td>Mean Rate</td>
        <td>Mean</td>
        <td>Count</td>
    </tr>
    <tr>
    <td >tr_test1</td>
<td >0.22 sec </td>
<td >0.21 sec </td>
<td >0.3 / sec</td>
<td >0.11 / sec</td>
<td >0.22 sec </td>
<td >12 </td>
     </tr>
</table>


<table>
    <tr>
        <td>事务名称</td>       
        <td>10s 内最大平均值</td>
        <td>10s 内最小平均值</td>
        <td>最大速率</td>
        <td>平均速率</td>
        <td>平均响应时间</td>
        <td>事务执行次数</td>
    </tr>
    <tr>
    <td >事务名tr_test1</td>
<td >10内响应时间平均最大值0.22 sec </td>
<td >10内响应时间平均最小值0.21 sec </td>
<td >最大响应速率0.3 / sec</td>
<td >平均响应速率0.11 / sec</td>
<td >平均响应时间0.22 sec </td>
<td >事务名为tr_test1的事务执行12次</td>
     </tr>
</table>


3.网络吞吐统计
<table>
    <tr>
        <td> Name </td>
        <td> Highest Rate </td>
        <td> Total </td>
    </tr>
    <tr>
<td >size_rcv</td>
<td >6.28 Kbits/sec</td>
<td >52.35 KB</td>
     </tr>
     <tr>
<td >size_sent</td>
<td >1.59 Kbits/sec</td>
<td >13.29 KB</td>
     </tr>
</table>


<table>
    <tr>
        <td> 名称</td>
        <td> 最大速率 </td>
        <td> 流量总计</td>
    </tr>
    <tr>
<td >接收流量</td>
<td >接收速率</td>
<td >接收数据总量</td>
     </tr>
     <tr>
<td >发送流量</td>
<td >发送速率</td>
<td >发送数据总量</td>
     </tr>
</table>




4.计数统计
<table>
    <tr>
       <td> Name </td>
        <td> Highest Rate </td>
        <td> Mean Rate </td>
        <td> Total number</td>
   </tr>
   <tr>
<td >match</td>
<td >1.5 / sec</td>
<td >0.96 / sec</td>
<td >100 </td>
   </tr>
 </table>


<table>
    <tr>
       <td> 名称</td>
        <td> 最大速率 </td>
        <td> 平均速率 </td>
        <td> 总数</td>
   </tr>
   <tr>
<td >匹配match</td>
<td >最大匹配速率1.5 / sec</td>
<td >平均匹配速率 0.96 / sec</td>
<td >匹配总数100 </td>
   </tr>
 </table>


<table>
  <tr><th >Name</th> <th>Max</th> </tr>
     <tr>
<td >connected</td>
<td >1 </td>
     </tr>
     <tr>
<td >finish_users_count</td>
<td >100 </td>
     </tr>
     <tr>
<td >users</td>
<td >3 </td>
     </tr>
     <tr>
<td >users_count</td>
<td >100 </td>
     </tr>
 </table>


<table>
  <tr><th >Name</th> <th>Max</th> </tr>
     <tr>
<td >connected 表示并发最大websocket连接数 </td>
<td >最大并发连接数为1</td>
     </tr>
     <tr>
<td >finish_users_count 表示已经完成会话的最大用户数</td>
<td >最大用户数为100 </td>
     </tr>
     <tr>
<td >users 表示会话开始且尚未结束的最大用户数(同时存在的ts_client进程数)</td>
<td >最大用户数为3 </td>
     </tr>
     <tr>
<td >users_count 表示tsung 总共生成的用户总数</td>
<td >tsung 生成的用户总数为 100 </td>
     </tr>
 </table>


5.服务器(运行压测工具的服务器)监控  
cpu cpu消耗    
highest 10sec mean CPU最大消耗  
lowest 10sec mean  CPU最小消耗  
freemem: 空闲内存  
highest 10sec mean 最大空闲内存  
lowest 10sec mean 最小空闲内存  
load 负载  
highest 10sec mean 最大负载  
lowest 10sec mean 最小负载  


### 测试结果比较说明  
connected 会话开始尚未结束,已经连接的最大连接数  
finish   已经完成会话的最大连接数  
http 每秒http请求数  
page_count 每秒请求集合数  
page_mean 请求集合的平均持续时长  
request_count 每秒请求次数  
request_mean 请求平均持续时长  
size_rcv 网络吞吐(接收)  
size_sent 网络吞吐(发送)  
users 会话开始尚未结束的最大连接数


### 分布式测试
多台 centos 7 虚拟机,erlang、tsung的版本、安装路径需要保持一致。集群配置[参考](http://wenku.baidu.com/link?url=o-WRWQQ3YLoHascA5Ez53FnVgZYscuZArtp8VfesCi7APFWbN4jC5IcL6bN6WISOPWP4c8B1cNkWjRlyxpkW4HU44ByB8duEMs7bU5vsoF7)。关闭selinuxenabled、防火墙服务。测试代码需要在集群内的每一台机器上保存一份。
  







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值