SIP压力测试最好的工具,SIPp的安装与使用 (第三章)

如何使用SIPp进行压力测试

1)      编辑好xml场景文件;

2)      编辑csv文件;

a)       Csv文件为sipp要压力测试的读取的变量文件,也就是说从csv文件一个个去读取,然后填写到xml的field变量中,从而实现压力测试。举例说明:

b)       Xml文件的分析;

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

      Via: SIP/2.0/[transport] [local_ip]:[local_port]

      From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]

      To: [field1] <sip:[field1]@[remote_ip]:[remote_port]>

         这里的field0,field1为csv文件每个字段的内容。

c)       再来看csv文件的分析;

3000;3001

 3001;3002

 3003;3004

 这里的filed0,field1所指的就是3000,3001,以此类推,因此你可以建立自己大批量内容的csv文件。

d)       如何编写401 407的验证的csv文件;

 当AST发回要求验证的401或407验证的时候,SIPp只要发回验证密码的请求内容即可。注意401是register请求验证消息,407是invite请求验证消息,这点不能搞混。举例说明:

  <recv response="401" auth="true" next="1">

  </recv>

  <send retrans="500">

  <![CDATA[

 

      REGISTER sip:[field0]@[remote_ip]:[remote_port] SIP/2.0

      Via: SIP/2.0/[transport] [local_ip]:[local_port]

      From: [field0] <sip:[field0]@[local_ip]:[local_port]>;tag=[call_number]

      To: [field0] <sip:[field0]@[remote_ip]:[remote_port]>

      Call-ID: [call_id]

      CSeq: 2 REGISTER

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

      [field1]   这里就是发送的验证消息,【field1

      Content-Length: [len]

      Expires: 3600

    ]]>

  </send>

         那么我们如何编写csv文件呢?如下:

         3000;[authentication username=3000 password=3000]

         3001;[authentication username=3001 password=3001] (以此类推)

         说明:这里的field0为3000,filed1为[authentication username=3000 password=3000]

3)      使用方法:

     ./sipp -sf reg.xml -inf reg.csv -p 6077 -i <local-ip> -m 4 <ip address of registrar>:5060

     -sf  读取场景文件

     -inf 读取csv文件

     -p  本机采用端口

     -i  本机IP

     -m  要进行压力测试的次数

     Ip address of registrar  要进行压力测试的IP地址

4)      使用Sipp后的界面显示:

 

这里是启动后的界面,可以看到运行的整个过程。简单介绍下:

[+-*/],简单来讲就是加减乘除,是指运行同一秒中要处理的并发数。*是之前的并发数成倍的增长,+是指并发数从10-30个逐步增加。-与/同理。

【q】:Soft exit 软件退出

【p】:Pause traffic 软件暂停运行

这里我们可以观察到

Call rate(length)      port     Total-time   Total-calls       Remote host

14.0(0 ms)/1.000s      6077      307179.49s     4120556      192.168.0.194:5060

14 new calls during 1.002 s period    每秒处理并发为14个call

374 calls (limit 420)                 374个call等待处理,最多420个call

非常详细的记录

测试者可以按下1、2、3、4、5按键来看更为详细的记录,下图为按键2后的图面

 

这里我们可以看到每秒处理的成功的call为13.417个,总共处理成功的call为412952个。Failed call为被丢弃失败的call为15588个。

5)       如何编写csv文件,这里有个bash小脚本程序,可以帮助实现:

#!/bin/bash

i=3000

while [ $i != 3100 ]

do

  i=$(($i+1))

#  j=$(($i+1))

echo “” >test.csv

echo "$i;[authentication username=$i password=$i]" >>test.csv

done

这里生成文件csv文件为

3000;[authentication username=3000 password=3000]

3001;[authentication username=3001 password=3001]

           .

           .

           .

3100;[authentication username=3100 password=3100]

6)       要从3000到3100都要注册,因此在AST系统要实现建立好3000到3100号码分配,而且密码必须要与号码一致。譬如3000的号码密码必须为3000,这样才能与csv文件配置一致。这里就不在烦述了。

7)       灵活的配置xml、csv文件可以实现各种消息的混合一起实现,譬如可以实现register、invite带407、最后发送bye消息,也可以实现共同invite到一个meeting,然后发送rtp方式,滞留10分钟后,发送bye退出meeting等等。

当然必须要有扎实的对SIP精通的消息流程,这里介绍的方法为通过eyebeam软终端注册后将整个包抓下来分析,然后根据分析的包内容修改模版即可实现模拟过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值