Sipp工具实现呼叫中心的性能测试

近期要完成一个涉及呼叫的项目,需要支持访客直接联系客服的功能。

对于测试来说,也需要测试呼叫转发的性能,访客直接拨打接入号,由callserver这边添加路由转发到客服这边。

考虑过使用sipp与winsip两个工具,sipp的话可以自己定制流程,winsip的话可能适合配置型,但是也有很多流程可以配置的,由于以前项目也用过sipp来测试sip消息收发,呼叫也确定使用sipp来测试性能,当然,功能测试也可以用这个,不过功能测试一般直接装个eyebeam来拨就好了。。。

环境:单台服务器部署callserver,另外一台作为sipp的uac以及uas,可以同时运行uac和uas,开两个窗口就好了。

按照以往经验,测试环境系统能够支撑60个坐席,平均每个坐席通话时间60s,系统每秒处理的呼叫量为 60坐席/60s=1 CAPS。
设置3组测试数据:以60个坐席为基准,测试60个坐席以内,60个坐席以上,大于60坐席压力测试。
50坐席容量:0.83 CAPS 60s通话时长
100坐席容量:1.67 CAPS 60s通话时长
200坐席容量:3.33 CAPS 60s通话时长 

测试过程中,修改了通话时长为30s,然后通过修改每秒呼叫量来控制并发的呼叫。实际测试50个并发,一共拨了5000个呼叫没出现问题。但是到100个并发的时候,uac发送过去的invite,由于服务器资源不够,直接回404 not found了,没有直接转给uas。

 

脚本如下,当然,不是全部自己写的,大部分都是套用模板,然后根据项目需求修改了一下流程:

uac.xml:原本呼叫中心是发两个invite给uac的,取消了播工号,然后注释了一次invite,只发送一次invite。

评论反馈之前的脚本不对应,估计是因为之前是直接改了就copy上来了,没有验证,现在直接从服务器copy了一份正常执行的上来,里面注释了一次invite,应该是可以执行的。

Sipp工具实现呼叫中心的性能测试_第1张图片

 
 




;tag=[call_number]
      To: "sut"
      Call-ID: [call_id]
      CSeq: 1 INVITE
      Contact: 
      Max-Forwards: 70
      Subject: Performance Test
      Content-Type: application/sdp
      Content-Length: [len]
      
      v=0
      o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]
      s=-
      c=IN IP[local_ip_type] [local_ip]
      t=0 0
      m=audio [auto_media_port] RTP/AVP 8
      a=rtpmap:8 PCMA/8000
      a=rtpmap:101 telephone-event/8000
      a=fmtp:101 0-11,16

    ]]>
  
   
   
   
 
 
 
   
 
 
  

;tag=[call_number]
      To: "02099635005"[peer_tag_param]
      Call-ID: [call_id]
      CSeq: 1 ACK
      Contact: 
      Max-Forwards: 70
      Subject: Performance Test
      Content-Length: 0

  ]]> 

 
 


 


;tag=[call_number]
      To: "02099635005"[peer_tag_param]
      Call-ID: [call_id]
      CSeq: 2 BYE
      Contact: 
      Max-Forwards: 70
      Subject: Performance Test
      Content-Length: 0

  ]]> 
  
   
 
   
 
   
  

uas.xml:这个配置的流程,也就根据uac.xml来修改,需要对应请求和响应,基本上启动了就不怎么管了。























  
  
  
  
  

  
  
  
  
  
  
  
  
  
  

  
    
      Content-Length: 0

    ]]>
  


  
    
      Max-Forwards: 70
      Subject: Performance Test     
      Content-Type: application/sdp
      Content-Length: [len]
	  
      v=0
      o=user2 53655765 2353687637 IN IP[local_ip_type] [local_ip]
      s=-sipp
      c=IN IP[local_ip_type] [local_ip]
      t=0 0
      m=audio 22222 RTP/AVP 8
      a=rtpmap:8 PCMA/8000
      a=rtpmap:101 telephone-event/8000
      a=fmtp:101 0-11,16

    ]]>
  
  
 
 
 
 
  
  

  
    
      Content-Length: 0

    ]]>
  

  
  
  


  
  

  
  


执行脚本,需要用以下格式添加csv的文件,作为uac侧发起呼叫的号码资源。

Sipp工具实现呼叫中心的性能测试_第2张图片

--------------------------------------------------------------------分割---------------------------------------------------------------------------------

10.32.121.20---安装sipp的服务器地址

10.32.121.11:7896---sip服务器地址

uas侧命令如下(需要先启动uas,不然uac启动了没对应的接收请求端了):

./sipp -sn uas  -i 10.32.121.20 -p 5777 -sf /perf/sipp-script/uas.xml

说明:作为uas启动,5666为本地监听uac端的端口。

uac侧命令如下:

./sipp -sn uac 10.32.121.11:7896 -i 10.32.121.20 -p 5666 -m 500 -l 50 -r 3 -rp 1000 -sf  /perf/sipp-script/uac.xml -inf /perf/sipp-script/uac.csv -trace_msg

说明:作为uac启动,每秒一个访客呼入客服,呼叫500次后停止,最大同时并发50个,5666为本地监听uac端的端口;uac.csv 这个文件路径是前面用csv格式保存的uac读取的号码资源文件。

 

命令参数说明:

-sn uc:作为客户端执行

-sn us:作为服务端执行

172.16.71.21:5060--对方IP

-i: 本地ip

-p:本地端口

-m:发送N次呼叫后停止并退出

-l: 最大同时通话数量,表示最大并发数,即同时可接电话的坐席数量

-r 1 -rp 1000: 每秒发送一个呼叫

-sf:  场景文件路径:

-inf:CSV文件路径

 

 

你可能感兴趣的:(性能测试)