SIPp是一个测试SIP协议性能的工具软件。它包含了一些基本的用户代理工作流程(UAC和UAS:UAC负责发起SIP呼叫请求,UAS接收UAC的请求并负责对其做出响应),并可使用INVITE和BYE建立和释放多个呼叫。
1.2功能可以读取XML的场景文件,即描述任何性能测试的配置文件,在场景定义文件中可以使用正则表达式;
能动态显示测试运行的统计数据(呼叫速率、消息统计等);
可以用来测试许多真实的SIP设备,也可以模仿上千个SIP代理呼叫你的SIP系统;
另外,SIPp可以用来模拟现场的SIP信令,以重现出现的故障;或者可以自定义SIP协议以测试终端对某些方面的容错或错误处理能力。
1.3.1 sipp在linux的安装——见上篇文章。
1.3.2sipp在windows的安装:直接双击即可
1)安装前:在SIPp安装目录的根目录(如C:)下安装cygwin或者直接在根目录下建立一个空的文件夹cygwin;
2)安装完成后:配置环境变量,在系统变量“Path”的最后添加“;SIPp的安装目录”并保存;
3)运行脚本时:脚本所在盘的根目录下必须包含usr文件夹,系统盘下一般都有,或者直接从其他机器上复制一份过来;
用SIPp做测试的时候需要准备五个文件:uac.xml,uas.xml,uac.sh,uas.sh,data.csv。(xml文件是必须的,后面三个根据情况可以使用命令或参数代替)
uac.xml(uas.xml):根据实际需要编写的uac(uas)侧的sip信号流程;
uac.sh(uas.sh):模拟主叫(被叫),调用sipp命令,并传入相应参数的批处理文件,也可不准备此文件直接输入sipp命令执行程序,但是写成文件执行更加方便可靠;
data.csv:用于uac.xml和uas.xml中需要引入的相应数据。
注:在Windows下运行时,通过usc.bat(uas.bat)代替.sh文件。
在编写xml脚本文件之前,需要先明确SIPp脚本模拟的对象、以及最终需要测试的对象,现以Volte彩铃业务为例说明,Volte彩铃业务框架如下图:
当需要测试业务平台,且不受核心网限制时,可以将主/被叫与核心网当成一个整体,通过抓取SIP前台服务器的包作为参考来编写uac.xml(uas.xml),而UAC(UAS)发送给SIP前台的消息应该是真实主(被)叫消息通过核心网后发给SIP前台的消息形式。
下面以Volte彩铃非Precondition流程为例:
将主/被叫与核心网当成一个整体,得出SIPp脚本编写所需的流程图为:
介绍一下如何创建自己的SIPp XML脚本。一个SIPp脚本总是以如下开头:
<?xml version="1.0" encoding="ISO-8859-1" ?><scenario name="Basic Sipstone UAC">而且总是以下面语句结束:
</scenario>
开头和结尾很简单,至于中间的写法规则其实也不难,在SIPp的脚本文件中,有许多用于操作SIP消息的命令,以下是使用率比较高的命令详细列表:
有些命令在书写时是成对出现的,如<send> </send>是一对,有些命令在书写时不用成对出现如<pause milliseconds="5000"/>。