SIPp是一个免费的SIP压力测试比较好的工具。我们在部署SIP语音网络中可能需要测试不同的服务器端的兼容性或者其他终端的兼容性问题,处理能力等问题。笔者大概在2008年使用此工具进行了关于编码转换压力的测试,之后,使用SIPp也做过多种场景的测试。

但是,因为SIPp使用过程中,测试人员需要根据不同的场景来编写自己的XML文件,测试人员需要首先学习这些XML语法,所以,通常在测试过程中,编写XML文件耗费很多的精力。今天,我们帮助SIP软交换/媒体服务器开发和测试人员快速了解SIPp的压力测试,笔者推荐一个比较完整全面的网站,这个网站汇集了很多SIP的功能测试场景的XML和其语法。

说明:笔者不再这里进一步介绍关于SIPp的安装和使用语法,笔者不再这里介绍如何安装服务器端的应用和其呼叫规则。用户可以安装Asterisk/FreeSWITCH,添加相应的分机进行测试。具体安装文档,网络有很多资料。笔者这里仅分享官方使用场景,命令和其测试项目说明。
测试示例1- OPTIONS
对目的地地址发送5次 OPTIONS 消息-30@192.168.1.211。
sipp 192.168.1.211 -sf OPTIONS.xml -m 5 -s 30
Send OPTIONS message 30 times to 30@192.168.1.211 waiting 200 ms for 200/OK reply each time.

sipp 192.168.1.211 -sf OPTIONS_recv_200.xml -m 30 -s 30
From: sipp ;tag=[call_number] Call-ID: [call_id] CSeq: 1 OPTIONS Contact: Accept: application/sdp Content-Length: 0]]>
测试示例2-REGISTER
通过CVS的配置账号对服务器进行注册 192.168.1.106。用户可以在CVS文件中添加多个文件,通过 -I 选项增加呼叫限制.

命令:sipp 192.168.1.106 -sf REGISTER_client.xml-inf REGISTER_client.csv -m 1 -l 1 -trace_msg -trace_err
XML配置文件:
;tag=[call_number] To: Call-ID: [call_id] CSeq: [cseq] REGISTER Contact: sip:[field0]@[local_ip]:[local_port] Max-Forwards: 10 Expires: 120 User-Agent: SIPp/Win32 Content-Length: 0 ]]>;tag=[call_number] To: Call-ID: [call_id] CSeq: [cseq] REGISTER Contact: sip:[field0]@[local_ip]:[local_port] [field2] Max-Forwards: 10 Expires: 120 User-Agent: SIPp/Win32 Content-Length: 0 ]]>
CVS文件:

测试示例3- REGISTER + SUBSCRIBE application/dialog-info+xml (BLF)
注册到192.168.1.211地址,同时在CVS文件中的参数支持了dialog-info subscription (RFC4235)订阅。

XML配置文件:
;tag=[call_number] To: Call-ID: [call_id] CSeq: [cseq] REGISTER Contact: sip:[field0]@[local_ip]:[local_port] Max-Forwards: 10 Expires: 120 User-Agent: SIPp/Win32 Content-Length: 0 ]]>;tag=[call_number] To: Call-ID: [call_id] CSeq: [cseq] REGISTER Contact: sip:[field0]@[local_ip]:[local_port] [field2] Max-Forwards: 10 Expires: 120 User-Agent: SIPp/Win32 Content-Length: 0 ]]>;tag=[call_number] To: Call-ID: [call_id] CSeq: [cseq] SUBSCRIBE Contact: sip:[field0]@[local_ip]:[local_port] Max-Forwards: 10 Event: dialog Expires: 120 User-Agent: SIPp/Win32 Accept: application/dialog-info+xml, multipart/related, application/rlmi+xml Content-Length: 0 ]]>
CVS文件:

测试示