Chinaunix首页 | 论坛 | 博客
  • 博客访问: 310442
  • 博文数量: 59
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 570
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-21 09:31
文章分类

全部博文(59)

文章存档

2011年(1)

2009年(58)

我的朋友

分类: 系统运维

2009-10-16 09:42:43

Sipp测试工具使用文档

                                              Author:阮班勇

                                              Date:2009.10.12

1.   Sipp软件简介

sipp是对sip协议进行性能测试的一款软件系统。sipp能够对远程系统发起一个或者多个呼叫。Sipp提供呼叫发起端(uac)和呼叫接收端(uas)的功能,通过呼叫完成对中间设备(TG等)的性能测试。

sipp会根据xxx.xml场景描述文件来进行sip呼叫的建立、处理和释放。

2.   使用前的准备(这里假设读者已经安装好了的sipp

考虑到测试时操作的方便性,因此写了几个批处理文件,封装内部细节,只须指定服务器的IP与端口即可进行测试。(约定 uac指定端口,uas占用5090端口,使用前请确定端口没占用)

呼叫前请注意是否配置好了所需文件,如果您是第一次使用请首先参考第4节和第5节相关内容修改

 

1)  关闭系统防火墙,杀毒软件,下载程序以及其他跟网络相关的应用程序以防干扰测试。

2)  添加ip 。有时候设备ip段和本机ip段不一样(本机ip段可能用于公网)那么只需要添加一个ip即可。

添加方法:

网上邻居->右键属性->本地连接->右键属性->选择Tcp/ip选择属性

点击高级

ip地址那个框内,选择添加即可。

3.   使用方法

考虑到测试时操作的方便性,因此写了几个批处理文件,封装内部细节,只须指定服务器的IP与端口即可进行测试。(约定 uac占用5070端口,uas占用

5090端口,使用前请确定这两个端口没占用)

3.1.    注册:

test.bat

直接在sip的安装目录下点击test.bat

3.2.    启动uas

在弹出的dos框中输入命令

uas

 

3.3.    启动uac

         在弹出的dos框中输入命令

Uac.bat hostip hostport 每秒呼叫个数 总呼叫个数

例如:

uac 172.16.55.201 5060 10 1000

上面表示呼叫目标(配置中使用的TG172.16.55.201,使用端口5060,每秒发起呼叫10,总呼叫数目为1000               

3.4.    程序启动后的常用操作

+  呼叫速率加1

-   呼叫速率减1

*   呼叫速率加10

/    呼叫速率减10

暂停呼叫:

按键盘上的p键来暂停呼叫,再次按p键则重新开始。

停止呼叫:

按键盘上的q键来停止呼叫。

注意千万不要用Ctrl+c来强行终止程序,应该使用q键来停止程序,用q键停止程序后程序会发送bye消息来释放呼叫。如果强行停止会导致呼叫被吊死在设备上。

 

 

 

高级进阶

4.   命令修改

4.1.    uas命令修改方法

在弹出的dos命令行中输入uas即可。这样就启动了uas

这是启动了uas.bat批处理文档

实际启动命令如下:

sipp -sn uas -p 5090 -sf uas.xml -inf call.csv -trace_err -trace_screen

rem -s 2000

可以看到监听端口为5090因此在TG的配置中对局端口应该填写为此端口如果用户需要修改端口则修改uas.bat文件即可。-sn指定sipp启动的是uas服务既服务器端。

-sf指定使用的场景文件为call.csv 这个主要是呼叫号码的文件,下文将会详细介绍。

-trace_err跟踪所有错误消息,并把错误消息保存到文件场景文件描述的__errors.log文件中

-trace_screen 当程序结束时候打印统计信息并弹出屏幕(如果在后台运行的话)

4.2.     uac命令修改方法

uac启动启动方式同uas

dos中输入uac hostip hostport 每秒呼叫个数 总呼叫个数

比如uac 172.16.55.204 5060 4 10000

表示呼叫的目标主机是172.16.55.204 对方端口是5060 每秒发起4个呼叫,总呼叫数目为10000

注:对本公司的TG测试中hostip就是指TG产品中配置的对局地址是本机IP地址的TG产品。

如下为TG1000配置sip中继的窗口

对局就是您现在所用电脑的ip地址。0如果作为呼出端也就是您启用uac这个命令,那么该TG配置端口为5060,或者5070都可以。但是如果您电脑作为呼叫接收端也就是启动uas命令,那么这里的ip地址填您自己的主机地址,端口需要填uas默认端口(5090),具体参考uas命令修改。

实际启动文件为uac.bat这个批处理文档(注:rem 后面内容表示注释)

实际启动命令为:

sipp %1:%2 -sf uac.xml -inf call.csv -p 5070   -r %3 -rp 1s -m %4 -trace_err -trace_screen

其中%1%2为传递命令行参数第一个和第二个即uac 172.16.55.204

-sf-inf,-p 同上

-r指定每秒发起呼叫数(如果指定参数-rp则即为-rp所指定的时间内发起的呼叫数)

–rp 表示频率周期,-r的周期。后面详述

上例指定-rp1s-r就表示1s内发起的呼叫数目

-m 指定测试的呼叫总数,当达到m指定的数目时候停止呼叫,程序结束

5.   配置文件修改

5.1.    被叫号码的修改

主被叫号码放在文件xxx.csv文件中,从3.1节我们看到实际启动时候指定了-inf参数都默认指向了call.csv文件因此需要修改call.csv文件。

call.csv文件第一行需要说明数据读取方式,SEQUENTIAL为顺序读取,RANDOM为随机读取,USER为用户习惯,#后面的内容为注释

例如下面是截取一个call.csv文件的内容

SEQUENTIAL

81000;9129;10000;

81001;9129;10001;

81011;9129;10011;

我们看到除了第一行,每一行都有三个字段。这就对应了场景文件中的field0,field1,field2

如下截取uac.xml场景文件,假如是第一个呼叫,使用第二行

 

      INVITE sip:[[MS1] ]@[remote_ip]:[remote_port] SIP/2.0

      Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]

      From: sipp[MS2] ]@[local_ip]:[local_port]>;tag=[call_number]

      To: sut

      Call-ID: [call_id]

      CSeq: 1 INVITE

      Contact: sip:sipp@[local_ip]:[local_port]

      Max-Forwards: 70

      Subject: Performance Test

      Content-Type: application/sdp

      Content-Length: [len]

     

      v=0

      o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]

      s=-

      c=IN IP[local_ip_type] [local_ip]

      t=0 0

      m=audio [[MS3] ] RTP/AVP 8

      a=rtpmap:8 PCMA/8000

      a=rtpmap:101 telephone-event/8000

      a=fmtp:101 0-11,16

 

    ]]>

 

从上可以看出,call.csv文件定义了sip协议中呼叫的号码和主叫号码,因此这个文件的配置相当重要,否则电话有可能拨不通,我们看field1字段,是填充在to中的,是要拨出去的电话号码,因此TG上的字冠设置应该与此字段项匹配。

使用多个.csv文件

如果你想使用几个文件配合使用,比如你想让field0的名字是顺序的,而field1得名字是随机的。使用两个文件就可以,你可能需要一个文件caller.csv使用SEQUENTIAL作为第一行,还需要一个callee.csv使用RANDOM作为第一行。在场景文件中用file=xxx.csv来指定所使用的文件

如:

INVITE sip:[field0 file="callee.csv"] SIP/2.0
From: sipp user <[field0 file="caller.csv"]>;tag=[pid]SIPpTag00[call_number]
To: sut user <[field0 file="callee.csv"]>
...

这样就从callee中选取目标用户,而从caller中选取发送用户。

5.2.    呼叫过程使用RTP

uac.xml: (不传rtp流就注释下面这段)

       "pcap/g711u_30s.pcap"/>

其中g711u_30s.pcap保存在同目录下的pcap文件夹下,可以修改指定的rtp流文件。这个是一个30s时间的rtp流。

        注:xml的注释方法

5.3.    呼叫保持时间修改

Uac.xml

//单位为ms

5.4.    并发呼叫的最大次数修改

使用-l选项设定同时呼叫的最大次数,能够对sip中继产生脉冲式压力测试。

uac.bat文件中添加此选项如下:

未添加:sipp %1:%2 -sf uac.xml -inf call.csv -p 5070  -r %3 -rp 1s -m %4 -trace_err -trace_screen

添加后:sipp %1:%2 -sf uac.xml -inf call.csv -p 5070 -l 120  -r %3 -rp 1s -m %4 -trace_err -trace_screen

(可以添加在任何合适的位置)

限制同时呼叫最大次数为120,当呼叫次数达到120的时候,新的呼叫不会继续。只有当呼叫降下来后才会开始新的呼叫。因此如果需要产生强烈的脉冲信号,必须让呼叫保持时间足够,并且每秒呼叫次数要提高,这样才能“瞬间达到最大值”。

 

阅读(5448) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~