使用 sipp 对 FreeSWITCH 进行压力测试

              
http://blog.chinaunix.net/uid-20069582-id-227903.html
http://www.51testing.com/html/00/130600-854749.htm
http://blog.csdn.net/castle07/article/details/8820026 l
http://wenku.baidu.com/link?url=dgCrVckTEV0tvDpbzmPo2ZC9smOqDftV2U2IbWYVx390ddJCF_00da1Se2dVDJY1q-Whf4L8ruqOc2eI5LUVPWsTs5f5Heh0lCEbS8ZclzC
http://blog.csdn.net/hanruikai/article/details/8024924

http://www.51testing.com/html/00/130600-854747.html 连续7篇文章 介绍 SIPp 对freeswitch的压力测试 

SIPp最新版本下载

http://garr.dl.sourceforge.net/project/sipp/sipp/3.3/sipp-3.3.tar.gz


SIPp支持四种不同的安装模式:

1) 没有TLS支持与密码验证支持:

a) # tar xzvf sipp-xxx.tar.gz

b) # cd sipp-xxx

c) # makeMake  

出来的sipp文件就是一个可执行的文件,只需要搭配场景xml文件与csv文件即可进行SIP测试,这是最常用的安装。

 

2) 拥有TLS支持与密码验证支持,但是不支PCAP语音播放:

a) # tar xzvf sipp-xxx.tar.gz

b) # cd sipp-xxx

c) # make ossl

这样编译出来的文件就加入了TLS至于与密码验证支持功能sipp软件了。 

 

3) 支持PCAP Play,但是没有密码验证支持:(PCAP Play即为可以进行RTP语音,但是没有407 AUTH验证)

a) # tar xzvf sipp-xxx.tar.gz

b) # cd sipp-xxx

c) # make pcapplay 

 

4) 支持PCAP 声音文件播放,而且支持密码验证支持:(支持407 auth验证支持)

a) # tar xzvf sipp-xxx.tar

b) # cd sipp-xxx

c) # make pcapplay_ossl

 

本文使用安装方法4

# tar xzvf sipp-3.3.tar.gz 

# cd sipp-3.3

# make pcapplay_ossl

注:make不成功时,确认是否安装:libpcaplibpcap-develncurses-develncurses

确认安装成功:

./sipp -h


SIPp测试的时候需要准备以下几个文件:

UAC端:uac.sh,  uac.xml,  uac.csv

uac.sh:调用sipp命令,并传入相应参数脚本文件,模拟UAC(例如主叫),当然也可不准备此文件直接输入sipp命令执行程序,但是写成文件执行更加方便可靠

uac.xml:根据需要编写的uac侧的sip信号流程

uac.csv:用于uac.xml需要引入的相应数据;

 

UAS端:reg.sh,  reg.xml,  uas_noreg.sh,  uas_noreg.xml,  uas.csv

reg.sh:调用sipp命令,并传入相应参数的脚本文件,模拟UAS注册,当然也可不准备此文件直接输入sipp命令执行程序,但是写成文件执行更加方便可靠

reg.xml:根据需要编写的注册流程,主要配合uas流程使用;

uas_noreg.sh:调用sipp命令,并传入相应参数的脚本文件,模拟UAS(例如被叫),当然也可不准备此文件直接输入sipp命令执行程序,但是写成文件执行更加方便可靠。

uas_noreg.xml:根据需要编写的uas侧的sip信号流程。

uas.csv:用于reg.xmluas.xml中需要引入的相应数据。

 

注意:uas中,reg.xmluas_noreg.xml中的内容不能合并在同一个xml中,或者会导致收不到invite


使用下述命令,可以直接导出场景模板,再进行二次修改;

./sipp -sd branchc > branchc.xml


1、UAC

调试uac流程时,推荐调试方案:uac主叫+eyebeam被叫(或其它VOIP工具);

uacuas单方都确认调试通过后,再使用:uac主叫+uas被叫;

 

uac.xml流程:

 

 

uac.sh文件内容如下:

./sipp -i 192.168.146.17 -sf uac.xml -inf uac.csv 192.168.146.11:5060 -l 1 -trace_msg -trace_screen -trace_err -p 12345 -m 1 -aa

参数解释:

-i: Set the local IP address for 'Contact:','Via:', and 'From:' headers. 

Default is primary host IP address.

'Contact:','Via:',  'From:' 头部信息设置本地IP在脚本中用[local_ip]引入

 

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

引入脚本文件,根据需要模拟的呼叫流程编写

 

-inf: Inject values from an external CSV file during calls into 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 ...)

在通话场景中使用外部csv文件引入数据;

文件的第一行说明了后面数据的读入方式,常用的有:顺序 (SEQUENTIAL), 随机 (RANDOM), 或用户(USER)顺序;

第一行对应一个通话,它们由一个或多个;分隔数据字段,这些字段可以在xml场景文件中使用[field0], [field1], ...来调用;

多个csv文件,可以同时使用(语法:-inf f1.csv -inf f2.csv ...

 

192.168.146.11:5060

Freeswitch服务端IPfreeswitch使用的端口;

 

-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).

设置同时呼叫的最大数目;

一旦达到此值,流量将被限制直到打开的通话数下降;

默认值:3*call_duration(s)*rate

 

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

设置本地端口号,默认是由系统随机选择空闲的端口号;

 

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

当设置的通话数完成时,停止测试并退出;

 

-aa: Enable automatic 200 OK answer for INFO, UPDATE and NOTIFY messages.

针对INFO, UPDATE 和 NOTIFY消息,进行200 OK自动回复应答;

 

-trace_msg:

Displays sent and received SIP messages in __messages.log

<场景文件名>__messages.log中显示发送和接收的SIP消息;调试时可增加,正试性能测试时,可取消,以免日志量太大影响本地性能;

 

-trace_screen:

Dump statistic screens in the__screens.log file when quitting SIPp. 

Useful to get a final status report in background mode (-bg option).

在退出SIPp时,把屏蔽上的统计信息写入<场景名>__screens.log文件中;

在后台模式(-bq选项)时,这对于得到最终状态报告很有用;

 

-trace_err:

Trace all unexpected messages in __errors.log.

跟踪所有非期望的消息到<场景文件名>__errors.log

 

测试时,有可能要指定发送呼叫频率,可以指定参数:

-r 1 -rp 3000:每三秒钟发一个呼,如果不指定,默认为1秒加载10用户;

 

性能测试过程中,一直要修改测试用户数,可考虑参照如下修改uac.sh脚本,-l-m参数使用变更代替:

#!/bin/bash

# Author:fairylly

#执行脚本时,未输入参数,提示:please input call number!,并退出

if [[ $# -eq 0 ]]

then

        echo "please input call number!"

        exit 1

fi

#m变量使用命令行传递的第一个位置参数

m=$1

 

./sipp -i 192.168.146.17 -sf uac.xml -inf uac.csv 192.168.146.11:5060 -l $m -trace_screen -trace_err -p 12345 -m $m -aa

 

使用方法:./uac.sh 100,表示最大同时呼叫100个用户;


//


freeswitch 800 路并发数测试

2014-07-11 10:05 910人阅读 评论(0) 收藏 举报
SIP freeswitch 测试 voip 服务器

原文链接:http://bbs.voip88.com/thread-20825-1-1.html

本站声明:版权归原作者所有。

今天测试了一下freeswitch的并发数,发现确实是比asterisk要强,我从100路一直测试到800路, 期间不断用监听通道随机打电话到各通道听声音质量,没有发现声音出现任何问题,果然是很给力啊!
测试软件环境: CentOS 5.6 freeswitch 1.0.6 winsip
测试硬件: Intel(R) Xeon(R) CPU           E5410  @ 2.33GHz DDR 2 800  2G
测试方法: winsip 呼入到freeswitch,freeswitch 给winsip放IVR语音,等待按键超时后挂断, winsip 再自动重新呼入,如此循环
注意:此测试中所有的语音都是需要freeswitch处理的,不是bypass模式,和默认asterisk的处理方式是一样的 。

———————————————–本站备注———————————————-

1、WINSIP 破解版在WIN7上使用有的机器有问题,在XP上可以正常运行。

2、WINSIP 测试 FREESWITCH 时,需要呼叫5080端口。(在此感谢 www.voip88.com 的朱利中先生的帮忙解答)

3、WINSIP测试 FREESWITCH 时,若使用5060端口,会发生注册认证不成功的情况。

4、WINSIP测试 FREESWITCH 时,若使用5060端口,并且将FREESWITCH 上的用户配置为无需认证即可注册成功,会发生呼叫认证不成功的情况。

5、也可以换用SIPP进行压力测试,具体使用方法请参考:

http://www.freeswitch.org.cn/2013/01/14/shi-yong-sipp-dui-freeswitch-jin-xin-wen-ding-xing-ji-ya-li-ce-shi.html

本站声明: 以下内容版权归杜金房先生。

原文内如如下:

SIPP 是一个很好的SIP测试工具,不过其缺省的配置文件好像有点问题,因此FreeSWITCH推荐使用以下配置文件进行测试:

http://www.freeswitch.org/eg/load_test/dft_cap.xml

使用方法很简单,只需要运行以下命令就可以了,我进行了个简单测试,每秒发一个请求,每个请示持续10秒(10000ms)。发到FreeSWITCH的5080端口:

sipp -sf dft_cap.xml -r 1 -d 10000 192.168.1.21:5080 

最初会收到好多404,那是因为还没有路由。看一下 FreeSWITCH 的 LOG,在FreeSWITCH public那个 context 里加个到 service的路由就好了:

      

当然 SIPP 还有好多选项,用起来也很灵活,抛砖引玉,剩下的就靠你慢慢琢磨了。祝玩得开心!



///

FAQ 

 

http://stackoverflow.com/questions/25321748/sipp-with-proxy-media 

最终测试使用命令:

sipp -sf dft_cap.xml -r 1 -d 50000 10.0.0.85:5080 -mi 10.0.0.85 -mp 48321 -rtp_echo

 

http://www.freeswitch.org.cn/2013/01/14/shi-yong-sipp-dui-freeswitch-jin-xin-wen-ding-xing-ji-ya-li-ce-shi.html

SIPP 是一个很好的SIP测试工具,不过其缺省的配置文件好像有点问题,因此FreeSWITCH推荐使用以下配置文件进行测试:

http://www.freeswitch.org/eg/load_test/dft_cap.xml

使用方法很简单,只需要运行以下命令就可以了,我进行了个简单测试,每秒发一个请求,每个请示持续10秒(10000ms)。发到FreeSWITCH的5080端口:

sipp -sf dft_cap.xml -r 1 -d 10000 192.168.1.21:5080 -rtp_echo

其中,-r 表示每秒发一个请求,-d 10000 表示每个呼叫持续10000毫秒(即10秒)192.168.1.21:5080对FreeSWITCH的IP和端口,-rtp_echo表示我们把收到 的RTP信息原样送回去,跟FreeSWITCH中的echo()类似。

最初会收到好多404,那是因为还没有路由。看一下 FreeSWITCH 的 LOG,在FreeSWITCH public那个 context 里加个到 service的路由就好了:


  
    
    
  

当然 SIP 还有好多选项,用起来也很灵活,抛砖引玉,剩下的就靠你慢慢琢磨了。祝玩得开心!



你可能感兴趣的:(freeSWITCH)