发博文
le4rnin9的小窝窝

learnin9.blog.chinaunix.net

心情日记+技术心得+乱七八糟的东西   
个人资料
  • 博客访问:450951
  • 博文数量:121
  • 博客积分:8274
  • 博客等级:中将
  • 关注人气: 3
  • 注册时间:2005-03-01 22:23:25
订阅我的博客
  • 订阅
  • 订阅到鲜果
  • 订阅到抓虾
  • 订阅到Google
字体大小: 博文
分类: SIPp研究日记


如何使用SIPp进行压力测试

1)      编辑好xml场景文件;

2)      编辑csv文件;

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

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]>

         这里的field0field1csv文件每个字段的内容。

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

3000;3001

 3001;3002

 3003;3004

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

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

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

  <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] (以此类推)

         说明:这里的field03000filed1[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后的界面显示:

 

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

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

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    每秒处理并发为14call

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

非常详细的记录

测试者可以按下12345按键来看更为详细的记录,下图为按键2后的图面

 

这里我们可以看到每秒处理的成功的call13.417个,总共处理成功的call412952个。Failed call为被丢弃失败的call15588个。

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

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

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

[发评论] 评论 重要提示:警惕虚假中奖信息!
  • ruanbanyong1 2009-10-10 17:39
    SIPP使用交流群,大家共同帮助共同进步40287286
  • chinaunix网友 2008-12-22 15:15
    ----------------------------- Statistics Screen ------- [1-9]: Change Screen -- Start Time | 2010-10-26 00:33:04:981 1288024384.981388 Last Reset Time | 2010-10-26 00:33:49:999 1288024429.999741 Current Time | 2010-10-26 00:33:50:138 1288024430.138601 -------------------------+---------------------------+-------------------------- Counter Name | Periodic value | Cumulative value -------------------------+---------------------------+-------------------------- Elapsed Time | 00:00:00:138 | 00:00:45:157 Call Rate | 0.000 cps | 2.214 cps -------------------------+---------------------------+-------------------------- Incoming call created | 0 | 0 OutGoing call created | 0 | 100 Total Call created | | 100 Current Call | 0 | -------------------------+---------------------------+-------------------------- Successful call | 4 | 100 Failed call | 0 | 0 -------------------------+---------------------------+-------------------------- Call Length | 00:00:05:264 | 00:00:08:240 ------------------------------ Test Terminated -------------------------------- 谁能帮我详细的解释下这里面每一项的意思?
  • chinaunix网友 2008-12-16 16:17
    哎!搞定了!!!!!!!!!!! NND原来是Invite的Content域填写的有问题!!! 哎!还是不能随便在网上抄来抄去!!!浪费我好多时间!!
  • chinaunix网友 2008-12-15 15:54
    像这样的问题一般是什么原因造成的?郁闷中!!!!!
  • chinaunix网友 2008-12-15 15:52
    Tring和200(Regester)为什么没有识别出来! 高手们帮我看看
  • chinaunix网友 2008-12-15 15:50
    上面是我的SIPP日志 但是在控制台上显示 Messages Retrans Timeout Unexpected-Msg [ NOP ] REGISTER ----------> 1 4 0 100 <---------- 0 0 0 0 200 <---------- 0 0 0 0 INVITE ----------> 0 0 0 100 <---------- 0 0 0 0 180 <---------- 0 0 0 0 403 <---------- 0 0 0 0 200 <---------- 0 0 0 0 ACK ----------> 0 0 BYE ----------> 0 0 0 200 <---------- 0 0 0 0
  • chinaunix网友 2008-12-15 15:47
    ----------------------------------------------- 2008-12-15 15:44:21:699.527 UDP message sent (533 bytes): REGISTER sip:192.168.0.141:5063 SIP/2.0 Via: SIP/2.0/UDP 192.168.141:7003;branch=z9hG4bK-20718-1-1;rport Max-Forwards: 70 To: From:;tag=1 Contact: Call-ID:111111-20718@192.168.141 CSeq: 1 REGISTER Expires: 3600 Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO Supported: eventlist User-Agent: eyeBeam release 3015c stamp 27107 Content-Length: 0 ----------------------------------------------- 2008-12-15 15:44:21:700.026 UDP message received [446] bytes : SIP/2.0 100 Trying Via: SIP/2.0/UDP 192.168.141:7003;branch=z9hG4bK-20718-1-1;received=192.168.0.141;rport=7003 From: ;tag=1 To: Call-ID: 111111-20718@192.168.141 CSeq: 1 REGISTER User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Contact: Content-Length: 0 ----------------------------------------------- 2008-12-15 15:44:21:705.661 UDP message received [486] bytes : SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.141:7003;branch=z9hG4bK-20718-1-1;received=192.168.0.141;rport=7003 From: ;tag=1 To: ;tag=as5754db00 Call-ID: 111111-20718@192.168.141 CSeq: 1 REGISTER User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Expires: 3600 Contact: <>;expires=3600 Date: Mon, 15 Dec 2008 20:44:21 GMT Content-Length: 0
  • chinaunix网友 2008-09-26 12:39
    请问INVITE 验证在csv 文件怎么写呢?
  • chinaunix网友 2008-09-26 10:35
    Only one [authentication] keyword is currently supported
  • chinaunix网友 2008-09-26 10:03
    Discarding message which can't be mapped to a known SIPp call
共 3 页
123
亲,您还没有登录,请[登录][注册]后再进行评论