使用SIPP来进行SIP压力测试

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

http://www.blogjava.net/amigoxie/archive/2009/09/11/294717.html

1.   SIPp概述

1.1 介绍

 SIPp是一个测试SIP协议性能的工具软件。这是一个GPL的开放源码软件。 
     它包含了一些基本的SipStone用户代理工作流程(UACUAS),并可使用INVITEB YE建立和释放多个呼叫。它也可以读XML的场景文件,即描述任何性能测试的配置文件。它能动态显示测试运行的统计数据(呼叫速率、信号来回的延迟,以及 消息统计)。周期性地把CSV统计数据转储,在多个套接字上的TCPUDP,利用重新传输管理的多路复用。在场景定义文件中可以使用正规表达式,动态调 整呼叫速率。
    SIPp可以用来测试许多真实的SIP设备,如SIP代理,B2BUAs,SIP媒体服务器,SIP/x网关,SIP PBX,等等,它也可以模仿上千个SIP代理呼叫你的SIP系统。

    关于SIPpgoogle上搜索到很多,可是关于SIPp的中文说明资料较少,或者很多都是不齐全的安装使用说明。

SIPp的网址:http://sipp.sourceforge.net/

1.2 用途

SIPp一般来进行AS的压力测试,图示如下:

UAC(发起端,主叫)--------------------AS---------------------UAS(接收端,被叫)

其中UACUAS都有SIPp来担任。因此可以由它来控制每秒有多少个caps,也可由它来控制一个呼叫持续多长时间等。

2. 安装

2.1 Windows版安装

很简单,省略。

3. SIPp的使用

3.1 运行SIPp

       选择“程序”->”Sipp_3.1”->Start sipp”,运行界面如下所示:
  

       在命令行运行:sipp,出现帮助信息,如下所示:

                 the scenarios.

                      First line of this file say whether the data is to be

                      read in sequence (SEQUENTIAL), random (RANDOM), or user

                      (USER) order.

                      Each line corresponds to one call and has one or more

                      ';' delimited data fields. Those fields can be referred

                      as [field0], [field1],  in the xml scenario file.

                      Several CSV files can be used simultaneously (syntax:

                      -inf f1.csv -inf f2.csv )

   -infindex        : file field

                      Create an index of file using field. For example -inf

                      users.csv -infindex users.csv 0 creates an index on the

                      first key.

   -ip_field        : Set which field from the injection file contains the IP

                      address from which the client will send its messages.

                      If this option is omitted and the '-t ui' option is

                      present, then field 0 is assumed.

                      Use this option together with '-t ui'

   -l               : Set the maximum number of simultaneous calls. Once this

                      limit is reached, traffic is decreased until the number

                      of open calls goes down. Default:

                        (3 * call_duration (s) * rate).

   -lost            : Set the number of packets to lose by default (scenario

                      specifications override this value).

   -m               : Stop the test and exit when 'calls' calls are processed

   -mi              : Set the local media IP address (default: local primary

                      host IP address)

   -master          : 3pcc extended mode: indicates the master number

   -max_recv_loops : Set the maximum number of messages received read per

                      cycle. Increase this value for high traffic level. The

                      default value is 1000.

   -max_sched_loops : Set the maximum number of calsl run per event loop.

                      Increase this value for high traffic level. The default

                      value is 1000.

   -max_reconnect   : Set the the maximum number of reconnection.

 

   -max_retrans     : Maximum number of UDP retransmissions before call ends on

                      timeout. Default is 5 for INVITE transactions and 7 for

                      others.

   -max_invite_retrans: Maximum number of UDP retransmissions for invite

                      transactions before call ends on timeout.

   -max_non_invite_retrans: Maximum number of UDP retransmissions for non-invite

                      transactions before call ends on timeout.

   -max_log_size    : What is the limit for error and message log file sizes.

 

   -max_socket      : Set the max number of sockets to open simultaneously.

                      This option is significant if you use one socket per

                      call. Once this limit is reached, traffic is distributed

                      over the sockets already opened. Default value is 50000

  -mb              : Set the RTP echo buffer size (default: 2048).

   -mp              : Set the local RTP echo port number. Default is 6000.

   -nd              : No Default. Disable all default behavior of SIPp which

                      are the following:

                      - On UDP retransmission timeout, abort the call by

                        sending a BYE or a CANCEL

                      - On receive timeout with no ontimeout attribute, abort

                        the call by sending a BYE or a CANCEL

                      - On unexpected BYE send a 200 OK and close the call

                      - On unexpected CANCEL send a 200 OK and close the call

                      - On unexpected PING send a 200 OK and continue the call

                      - On any other unexpected message, abort the call by

                        sending a BYE or a CANCEL

   -nr              : Disable retransmission in UDP mode.

   -nostdin         : Disable stdin.

   -p               : Set the local port number.  Default is a random free port

                      chosen by the system.

   -pause_msg_ign   : Ignore the messages received during a pause defined in

                      the scenario

   -periodic_rtd    : Reset response time partition counters each logging

                      interval.

   -r               : Set the call rate (in calls per seconds). This value can

                      bechanged during test by pressing '+','_','*' or '/'.

                      Default is 10.

                      pressing '+' key to increase call rate by 1 *

                      rate_scale,

                      pressing '-' key to decrease call rate by 1 *

                      rate_scale,

                      pressing '*' key to increase call rate by 10 *

                      rate_scale,

                      pressing '/' key to decrease call rate by 10 *

                      rate_scale.

                      If the -rp option is used, the call rate is calculated

                      with the period in ms given by the user.

   -rp              : Specify the rate period for the call rate. Default is 1

                      second and default unit is milliseconds. This allows

                      you to have n calls every m milliseconds (by using -r n

                      -rp m).

                      Example: -r 7 -rp 2000 ==> 7 calls every 2 seconds.

                               -r 10 -rp 5s => 10 calls every 5 seconds.

 

   -rate_scale      : Control the units for the '+', '-', '*', and '/' keys.

 

   -rate_increase   : Specify the rate increase every -fd units (default is

                      seconds). This allows you to increase the load for each

                      independent logging period.

                      Example: -rate_increase 10 -fd 10s

                        ==> increase calls by 10 every 10 seconds.

   -rate_max        : If -rate_increase is set, then quit after the rate

                      reaches this value.

                      Example: -rate_increase 10 -rate_max 100

                        ==> increase calls by 10 until 100 cps is hit.

   -no_rate_quit    : If -rate_increase is set, do not quit after the rate

                      reaches -rate_max.

   -recv_timeout    : Global receive timeout. Default unit is milliseconds. If

                      the expected message is not received, the call times out

                      and is aborted.

   -send_timeout    : Global send timeout. Default unit is milliseconds. If a

                      message is not sent (due to congestion), the call times

                      out and is aborted.

   -reconnect_close : Should calls be closed on reconnect?

   -reconnect_sleep : How long (in milliseconds) to sleep between the close and

                      reconnect?

   -ringbuffer_files: How many error/message files should be kept after

                      rotation?

   -ringbuffer_size : How large should error/message files be before they get

                      rotated?

   -rsa             : Set the remote sending address to host:port for sending

                      the messages.

   -rtp_echo        : Enable RTP echo. RTP/UDP packets received on port defined

                      by -mp are echoed to their sender.

                      RTP/UDP packets coming on this port + 2 are also echoed

                      to their sender (used for sound and video echo).

   -rtt_freq        : freq is mandatory. Dump response times every freq calls

                      in the log file defined by -trace_rtt. Default value is

                      200.

   -s               : Set the username part of the resquest URI. Default is

                      'service'.

   -sd              : Dumps a default scenario (embeded in the sipp executable)

   -sf              : Loads an alternate xml scenario file. To learn more

                      about XML scenario syntax, use the -sd option to dump

                      embedded scenarios. They contain all the necessary help.

   -oocsf           : Load out-of-call scenario.

 

   -oocsn           : Load out-of-call scenario.

   -skip_rlimit     : Do not perform rlimit tuning of file descriptor limits.

                      Default: false.

   -slave           : 3pcc extended mode: indicates the slave number

   -slave_cfg       : 3pcc extended mode: indicates the file where the master

                      and slave addresses are stored

   -sn              : Use a default scenario (embedded in the sipp executable).

                      If this option is omitted, the Standard SipStone UAC

                      scenario is loaded.

                      Available values in this version:

                      - 'uac'      : Standard SipStone UAC (default).

                      - 'uas'      : Simple UAS responder.

                      - 'regexp'   : Standard SipStone UAC - with regexp and

                        variables.

                      - 'branchc' : Branching and conditional branching in

                        scenarios - client.

                      - 'branchs' : Branching and conditional branching in

                        scenarios - server.

                      Default 3pcc scenarios (see -3pcc option):

 

                      - '3pcc-C-A' : Controller A side (must be started after

                        all other 3pcc scenarios)

                      - '3pcc-C-B' : Controller B side.

                      - '3pcc-A'   : A side.

                      - '3pcc-B'   : B side.

   -stat_delimiter : Set the delimiter for the statistics file

   -stf             : Set the file name to use to dump statistics

   -t               : Set the transport mode:

                      - u1: UDP with one socket (default),

                      - un: UDP with one socket per call,

                      - ui: UDP with one socket per IP address The IP

                        addresses must be defined in the injection file.

                      - t1: TCP with one socket,

                      - tn: TCP with one socket per call,

                      - l1: TLS with one socket,

                      - ln: TLS with one socket per call,

                      - c1: u1 + compression (only if compression plugin

                        loaded),

                      - cn: un + compression (only if compression plugin

                        loaded). This plugin is not provided with sipp.

3.2 使用SIPp进行压力测试

3.2.1启动服务端

       首先查知本机的IP,例如笔者本机的IP192.168.2.45。在SIPp的运行窗口运行:

sipp -sn uas -i 192.168.2.45     -p 5060

       出现的命令窗口的内容类似如下:
    

3.2.2启动和运行客户端

       再开启一个SIPp界面。

启动客户端使用:sipp -sn uac….,使用如下:

sipp -sn uac -m 1 -i 192.168.2.45 -p 6060 -s 01012345678 192.168.2.154

      启动后命令窗口如下所示:
   

其中:

       -m:该参数表示每秒的caps数,若没写该参数,默认为每秒10caps

       -i:这个用于指定本机的ip,若本机只有一个ip,可以不指定,若有多个IP,需要指定该参数;

       -p:指定本机的端口,可以不指定;

       -s:该参数用于指定要呼叫的电话号码;

       192.168.1.154ASIP地址,没有指定端口时,默认指向的端口为5060

       注意:因为UACUAS都在笔者机器,IP:192.168.2.45,因此AS端还需要对应配置,将落地等的IP地址等都指向该IP。对于我们的环境来说,需要配置SCFconfig.as.ACD文件,修改成:
  

       笔者修改了ss1IP为:192.168.2.45.

       在使用uac前,可使用SIP软终端来测试下是不是呼叫后落地是不是落在本机。

3.2.3查看运行结果

       在运行:

sipp -sn uac -i 192.168.2.45 -p 6060 -s 01012345678 192.168.2.154

   后(该句为10caps),可查看UASUAC的界面,服务端的界面类似如下所示:
   

       UAC端的界面类似如下所示:
   

       因为笔者的AS没有发183的流程,所以它的次数是为0的,后续章节还会说到如果不是SIPp的参考流程时该怎么做。

3.2.4查看AS所在的Linux机器的性能情况

1inmon

       公司的SCF提供inmon来查看自动机挂接等的情况,如下所示:
   

       其中FSMS表示当前挂着的自动机数,是需要关注的项。

2vmstat

vmstat 命令报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。由 vmstat 命令生成的报告可以用于平衡系统负载活动。系统范围内的这些统计信息(所有的处理器中)都计算出以百分比表示的平均值,或者计算其总和。

例如笔者使用:

vmstat 3

表示每隔3s显示内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息。界面如下所示:
   

       重点要关注的项是iocpu等信息。

3top

top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU敏感的任务列表。

运行top命令后,AS所在Linux机器的显示效果如下:
   

因为应用主要为ccmysql,所以要重点关注这两者是否稳定。

主要关注的项是VIRTRES,如果这两者一直增加,那很可能程序或其它地方存在内存泄露。

3.2.5其它

UAC端运行的过程中:

1) 按“+”键表示在当前caps的基础中加1

2) 按“-”键表示在当前caps的基础中减1

3) 按“*”键表示在当前caps的基础中+运行起点的caps,例如10caps,按“*”后,变成20,再按“*”变成30.



1.     使用场景

笔者最近需要对新做的一个SBCSsession Border Controller,会话边界控制器)进行大呼测试。所做的SBC包括两个模块:CNVNCN模块做信令转发,VN模块主要做媒体转发,SBC用于解决SIP和媒体流的NAT穿越问题。

SBC服务器为双网卡机器,IP地址为:192.168.2.47125.39.155.110UAS服务器的IP192.168.2.66UAC所在机器(笔者机器)的IP125.39.155.107

UACSBC服务器发INVITE消息,SBC接收到消息后,由CN模块将消息转发给UAS服务器,并转发UAS发过来的信息给UAC,呼叫建立后,UASUAC的媒体流的转发由SBCVN模块来做。

UAC(125.39.155.107)< -------------------> SBC (192.168.2.47125.39.155.110)<----------------->UAS(192.168.2.66)

在该大呼测试中,UAC由笔者机器的Sipp软件来做,UAS是另一台经过测试的稳定的服务器,它在收到SBCINVITE消息后,发100180200,并放一段音。

2. uac.xml编辑

因为我们需要在媒体包、所带的音频Codec等、另外流程等上有一些不同,所以还需要准备自定义的uac.xml。在Sipp的安装目录(eg. C:"Program Files"Sipp_3.1)新建uac.xml文件,该文件内容编写如下:

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE scenario SYSTEM "sipp.dtd">

 

<!-- This program is free software; you can redistribute it and/or      -->

<!-- modify it under the terms of the GNU General Public License as     -->

<!-- published by the Free Software Foundation; either version 2 of the -->

<!-- License, or (at your option) any later version.                    -->

<!--                                                                    -->

<!-- This program is distributed in the hope that it will be useful,    -->

<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of     -->

<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the      -->

<!-- GNU General Public License for more details.                       -->

<!--                                                                    -->

<!-- You should have received a copy of the GNU General Public License -->

<!-- along with this program; if not, write to the                      -->

<!-- Free Software Foundation, Inc.,                                    -->

<!-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA             -->

<!--                                                                    -->

<!--                 Sipp default 'uac' scenario.                       -->

<!--                                                                    -->

 

<scenario name="Basic Sipstone UAC">

 <send retrans="500">

    <![CDATA[

 

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

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

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

      To: sut <sip:[service]@[remote_ip]:[remote_port]>

     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: 136

 

      v=0

      o=user1 53655765 2353687637 IN IP4 127.0.0.1

      s=-

      t=0 0

      m=audio [media_port] RTP/AVP 8

      c=IN IP4 [media_ip]

      a=rtpmap:8 PCMA/8000

 

    ]]>

 </send>

 

 <recv response="100"

        optional="true">

 </recv>

 

 <recv response="180" optional="true">

 </recv>

 

 <recv response="200" rtd="true">

 </recv>

 

 <!-- Packet lost can be simulated in any send/recv message by         -->

 <!-- by adding the 'lost = "10"'. Value can be [1-100] percent.     -->

 <send>

    <![CDATA[

      ACK sip:[service]@[remote_ip]:[remote_port] SIP/2.0

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

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

      To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]

      Call-ID: [call_id]

      Cseq: 1 ACK

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

      Max-Forwards: 70

      Subject: Performance Test

      Content-Length: 0

 

    ]]>

 </send>

 

 <nop>

    <action>

        <exec play_pcap_audio="pcap/g711a.pcap"/>

    </action>

 </nop>

 

 <!-- This delay can be customized by the -d command-line option       -->

 <!-- or by adding a 'milliseconds = "value"' option here.           -->

 <pause/>

 

 <!-- The 'crlf' option inserts a blank line in the statistics report. -->

 <send retrans="500">

    <![CDATA[

 

      BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0

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

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

      To: sut <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]

      Call-ID: [call_id]

      Cseq: 2 BYE

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

      Max-Forwards: 70

      Subject: Performance Test

      Content-Length: 0

 

    ]]>

 </send>

 

 <recv response="200" crlf="true">

 </recv>

 

 <!-- definition of the response time repartition table (unit is ms)   -->

 <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>

 

 <!-- definition of the call length repartition table (unit is ms)     -->

 <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>

</scenario>

         该流程表示的意思是首先由uac主动往外发INVITE,接着期望收到100180200信息,UAC收到SBC200 OK信息后,往SBC发送ACK信息,接着往服务器发送pcap/g711a.pcapRTP包信息。接着开始pausepause的是时间是uac启动时所带的d参数(在后续章节带了该参数)。等待ds)后,往服务器发BYE消息,并期待得到服务器的200 OK信息,流程结束。

         上面脚本中的“[]”中都是用户带入的一些参数,若未指定,系统会自动指定。

1) remote_ip:服务器的IP,本实例中指定为125.39.155.100

2) remote_port:服务器的端口,本实例中指定为5040

3) local_ipUACIP,未指定时,使用UAC所在主机的IP,本例中指定为192.168.4.20

4) local_portUAC的端口,本例中指定为6060

5) call_number主叫号码,本实例中通过-s参数指定为01077778888

6) transport未指定,默认为udp

7) call_idCall-ID,由系统生成,未指定。

……

注意如下这段脚本:

<nop>

    <action>

        <exec play_pcap_audio="pcap/g711a.pcap"/>

    </action>

</nop>

这段表示接通后UAC向服务器发送的RTP包,笔者使用的是Sipp安装目录pcap下的g711.pcap包,也可以自己录制。

3. 媒体包准备

         在测试过程中常常需要携带RTP流,此时需要有对应的RTP流文件,Sipp安装目录pcap下有一些默认的RTP流文件,若不满足条件,也可以自行录制,录制好后,可在wireshark中过滤好需要的包后,点击“Save As”另存到Sipp安装目录/pcap目录。

4. 测试结果分析

         选择“开始”->“程序”->Sipp_3.1->start sipp”,在弹出的窗口中可以先运行如下语句先试呼叫一个:

sipp -sf uac.xml -m 1 -i 192.168.4.20 -d 5000 -p 6060 -s 01077778888 -rtp_echo 125.39.155.110:5040

         其中:

1-sf后跟的是自定义的uac的脚本文件;

2-m后跟的是呼叫次数;

3-i后跟的是本机IP(该参数可以不加,默认使用本机IP);

4-p后跟的是本地的端口;

5-d后跟的是暂停的秒数,可“2. uac.xml

6-s后跟的是助教号码;

7rtp_echo表示需要对方发送RTP

8125.39.155.110:5040表示的服务器的IP和端口。

一个试呼成功后,可以开始进行大呼,此时可以去掉-m参数。命令如下:

sipp -sf uac.xml -i 192.168.4.20 -d 5000 -p 6060 -s 01077778888 -rtp_echo 125.39.155.110:5040

另外在SBC服务器开三个窗口观察当前的运行情况,分别使用如下命令:

1inmon 观察SCFload值等情况(我们公司平台的一个命令);

2vmstat 3:主要观察id列等,一般要稳定在idle 70%以上;

3top     实时查看当前cpu的占用排位情况。

caps值加到25,运行一段时间后,笔者观察到topvmstat 3的情况比较稳定,测试基本情况如下:

1sipp uac窗口:
    

         从该结果中可看出,虽然有重复现象,但是重发布多,而且没有“Timout”和“Unexpected Msg”,总体算正常。

         2vmstat 3运行基本情况:
    

         从上图可以看出,idle值太低,基本在57%,离70%还有距离;

         3top运行基本情况:
    

         从上图中可以看出,sbcvn模块所占CPU比较高,需要重点优化效率,sbcVN模块基本在12%,只是负责信令转发,所以瓶颈在 VN模块。

         4inmon运行基本情况:
    

         inmonload值一般在17%,而且比较稳定,没有突然居高位,并持续居高位的情况,CN模块比较稳定。

5. 参考文献

         sip使用秘籍-v1.2》阮班勇:

http://wenku.baidu.com/view/632ac7c758f5f61fb73666c5.html



SIPP压力测试软件测试SIP软件简单使用总结 最近在做云平台SIP网关软件信令的压力测试,由于实际没有那么多真实的SIP终端用来测试,需要自己来写相关的SIP模拟软件,或者使用开源的SIP软件来测试,自己写SIP模拟软件成本太高,通过网上搜索相关资料,SIPP压力测试可以满足相关需求,最终决定使用该软件做为SIP压力测试软件。 SIPP软件源码下载和编译,这里使用的是SIPP-3.3版本,在linux下解sipp-3.3.tar.gz,进入解后的目录,进行编译,编译成功后会生成sipp的可执行二进制文件。 ... 阅读详情

相关推荐

SIPP介绍以及使用介绍

SIPP 介绍以及使用方式

菜就多看,多想,多敲 1万+

猿创征文|【FreeSwitch开发实践】使用sipp对FreeSwitch进行压力测试

FreeSwitch作用外呼系统的底层服务器,其稳定性至关重要,因此有必要对FreeSwitch作一个压力测试。而在FreeSwitch压力测试方面,sipp是最好用的工具,也是FreeSwitch官方推荐的。

xiao2macf的专栏 5801

SIPp使用教程

1、SIPp的介绍 SIPp是一个测试SIP协议性能的工具软件。Sipp提供呼叫发起端(uac)和呼叫接收端(uas)的功能,并可使用INVITE和BYE建立和释放多个呼叫,通过呼叫完成对中间设备(TG等)的性能测试。它也可以读取XML的场景文件,即描述任何性能测试的配置文件,sipp会根据xxx.xml场景描述文件来进行sip呼叫的建立、处理和释放。它能动态显示测试运行的统计数据(呼叫速率、信号来回的延迟,以及 消息统计)。在场景定义文件中可以使用正规表达式,动态调 整呼叫速率。 SIPp可以用...

ylyl1999的博客 6942

SIP调试之SIPP测试工具

  SIPP是针对SIP协议的一个性能测试的命令行工具,可以动态显示测试的统计信息(如呼叫速率、延时、消息统计等)。用户可以通过XML场景配置文件,自定义模拟各种UAC/UAS测试场景的信令交互流程,可以被用来测试IP话机、SIP代理、SIP PBX等SIP设备。官方网站: 参考文档:linux平台: 注:也可以下载源码编译安装 3.2 常用参数说明 -v 作用:显示版本信息作用:后台模式运行作用:输出SIPP内嵌的默认场景 部分参数说明:将场景内容重定向到文件 -sf 作用:加载指定的场景文件 -sn

szkbsgy的专栏 6683

使用SIPP来进行SIP压力测试(一)

Link: http://www.blogjava.net/amigoxie/archive/2009/09/11/294717.html 1.   SIPp概述 1.1 介绍  SIPp是一个测试SIP协议性能的工具软件。这是一个GPL的开放源码软件。       它包含了一些基本的SipStone用户代理工作流程(UAC和UAS),并可使用INVITE和B YE

RoseinTrap的专栏 6744

终极SIP压力测试:深度解析SIPp工具的强大功能

在现代VoIP通信系统中,SIP协议的性能测试是确保系统稳定性的关键环节。面对高并发呼叫、复杂信令交互和媒体流传输的挑战,传统的测试方法往往力不从心。SIP压力测试工具SIPp应运而生,为VoIP性能工具领域带来了革命性的突破。 ## 如何应对大规模SIP协议性能挑战 随着企业通信和云呼叫中心的快速发展,SIP系统需要处理成千上万的并发呼叫。传统的手动测试方法无法模拟真实的高负载场景,而商业

gitblog_00542的博客 1184

SIP压力测试入门:手把手教你用SIPP给FreeSWITCH/Asterisk“上强度”

本文详细介绍了如何使用SIPP工具对FreeSWITCH/Asterisk进行SIP压力测试,包括环境准备、核心参数解析、场景文件定制、结果分析及高级测试策略。通过实战案例和优化技巧,帮助运维人员精准评估SIP服务器性能极限,提升系统稳定性。

weixin_30706691的博客 351

SIP网关压力测试工具SIPp的安装及使用详解

    上一篇介绍了安装Trixbox的过程。经过简单的测试,pc2pc、pc2phone的通话功能正常。    要把网络电话业务作为商用,就必须要保证系统的稳定和一定的承载能力,所以接下来需要做的是对Asterisk的压力测试,以了解Asterisk在我们的硬件基础上的承载能力。    google一番,发现有一共叫SIPp的软件,专门用于对SIP网关的压力测试,包括注册、通话、多方meetin

穿拖鞋写程序 5783

SIP呼叫压力测试(uac-sipp)

目录 1. 说明 2. 配置 3. 运行 4. 结果 1. 说明 使用此工具对UAS发起呼叫测试,发起指定的呼叫数,保持指定的并发数。 比如,指定发起总共1000个呼叫,并发数为100,则它会每1秒发起10个呼叫,直到保持100个呼叫就暂停发起呼叫。如果正在进行的100个呼叫其中10个先结束, 则会再发起10个新呼叫去保持100个并发,直到1000个呼叫发起完毕. 2. 配置 下载事先准备好的安装包:https://download.csdn...

cyncyncyncyncyn的博客 2301

SIPp实战指南:从零构建SIP协议压力测试环境(Kali Linux版)

本文提供了在Kali Linux上使用SIPp构建SIP协议压力测试环境的完整实战指南。详细介绍了SIPp的安装部署、核心XML场景文件编写、关键性能参数配置以及测试结果分析方法,帮助VoIP开发与测试工程师快速掌握这一强大的性能测试工具,有效评估SIP服务器在高并发场景下的处理能力与稳定性。

ol789012345的博客 439

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

如何使用SIPp进行压力测试 1)      编辑好xml场景文件; 2)      编辑csv文件; a)       Csv文件为sipp压力测试的读取的变量文件,也就是说从csv文件一个个去读取,然后填写到xml的field变量中,从而实现压力测试。举例说明: b)       Xml文件的分析;       INVITE sip:[field0]@[remote_ip]:[

This My Life - chisj 7814

freeswitch 发update sip消息_完整SIPp测试环境下各种SIP场景测试和配置文件

SIPp是一个免费的SIP压力测试比较好的工具。我们在部署SIP语音网络中可能需要测试不同的服务器端的兼容性或者其他终端的兼容性问题,处理能力等问题。笔者大概在2008年使用此工具进行了关于编码转换力的测试,之后,使用SIPp也做过多种场景的测试。但是,因为SIPp使用过程中,测试人员需要根据不同的场景来编写自己的XML文件,测试人员需要首先学习这些XML语法,所以,通常在测试过程中,编写XM...

weixin_39620197的博客 1532

软电话测试工具:SIPP

软电话测试工具:SIPP sippsip压力测试工具,为了测试sip服务器力,在测试使用sipp模拟了uac和uas。下面给出使用的脚本。     1,注册脚本     注册脚本分为两部分,一部分是主叫的注册,一部分是被叫的注册。这两个文件使用的csv文件不同,场景文件相同。     1.1 主叫的csv文件,reg1.csv RANDOM 1000;1050;[au

quxiao2002的专栏 7032

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

第一章SIPp介绍 SIPp是一个测试SIP协议性能的工具软件。这是一个GPL的开放源码软件。      它包含了一些基本的SipStone用户代理工作流程(UAC和UAS),并可使用INVITE和B YE建立和释放多个呼叫。它也可以读XML的场景文件,即描述任何性能测试的配置文件。它能动态显示测试运行的统计数据(呼叫速率、信号来回的延迟,以及消息统计)。周期性地把CSV统计数据转储,在多个套

This My Life - chisj 6292

sipp总结

sippsip压力测试工具,为了测试sip服务器力,在测试使用sipp模拟了uac和uas。下面给出使用的脚本。     1,注册脚本     注册脚本分为两部分,一部分是主叫的注册,一部分是被叫的注册。这两个文件使用的csv文件不同,场景文件相同。     1.1 主叫的csv文件,reg1.csv RANDOM 1000;1050;[authentication usern

vikesgao 2385

sipp3.6带媒体测试方案

SIP工具sipp,免费,开源,功能足够强大,配置灵活,优点多。本文档介绍sipp工具如何带媒体测试,并介绍如何制作可用的媒体文件(G729和PCMA)。sipp的github地址:https://github.com/SIPp/sipp后续会有更多的方案和脚本慢慢写。空空如常求真得真。

求真得真的博客 1868

关于SIPp使用

Welcome to SIPp   http://sipp.sourceforge.net/ SIPp is a free Open Source test tool / traffic generator for the SIP protocol. It includes a few basic SipStone user agent scenarios (UAC and UAS) a...

powerclark的专栏 342
上一篇: Centos 下安装 subversion
下一篇: SIP穿越NAT解析问题探讨
dnvodcwan
博客等级 码龄24年 18粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值