SIPP 压测介绍以及使用方式

sipp 介绍

SIPP是一个测试SIP协议性能的工具软件,它包含了一些SipStone用户代理工作流程(UAC和UAS),并可使用INVITE和BYE建立和释放多个呼叫。它可以读取XML场景文件,及描述任何性能测试的配置文件。它能动态的显示测试运行的统计数据(呼叫速率,信号来回的延迟,一级消息统计)、周期性的把CSV统计数据转储,在多个套接字上的TCP和UDP,利用重新传输管理的多路复用。在场景定义文件中使用正则表达式、动态调整呼叫速率

sipp可以做什么

SIPP可以用来测试许多真实的SIP设备,如SIP代理、B2BUAS,SIP服务器,SIP/X网关、SIPPBX等等,它可以模仿上千万个SIP代理呼叫你的SIP系统。

sipp版本

目前SIPP已经更新到3.6.X,3.6.X版本有问题现在好像已经终止维护。稳定版本为3.4.X和3.5.X版本
SIPP官网地址: http://sipp.sourceforge.net/
GITHUB地址:https://github.com/SIPp/sipp/releases

sipp安装步骤

Winodws系统

  1. 部署安装cygwin运行环境
    Cygwin地址:https://cygwin.com/install.html;
  2. 下载相关类库和开发包
    主要类库:gcc-core、gcc-g++、libncurses-devel、Libncurses、openssl-devel、make
  3. 下载及编译Sipp源码
     直接下载安装win版本的sipp_setup.exe
     下载自动编译包,直接make生成可执行文件
     下载源码包,通过配置编译生成可执行文件
  4. 编译的四种方式
     通用编译方式
    ./configure --with-pcap --with-openssl
    Make

    1. 没有TLS支持与密码验证支持
      tar -xvf sipp-1.1rc6.tar.gz
      cd sipp-1.1.rc6
      make
    2. 拥有TLS支持与密码验证,但是不支持PCAP语音播放
      tar -xvf sipp-1.1rc6.tar.gz
      cd sipp-1.1.rc6
      make ossl
    3. 支持PCAP PLAY,但是没有密码验证支持(pcap play即为可以进行RTP语音,但是没有407auth验证)
      tar -xvf sipp-1.1rc6.tar.gz
      cd sipp-1.1.rc6
      make pcapplay
    4. 支持PCAP声音文件播放,而且支持密码验证支持(支持407 auth验证支持)
      tar -xvf sipp-1.1rc6.tar
      cd sipp-1.1.rc6
      make pcapplay_ossl
  5. 验证是否安装
    ./sipp -h

Liunx系统

  1. 下载Sipp安装包并安装类库
    http://sourceforge.net/projects/sipp/files/sipp/
  2. 类库:
    gcc-core、gcc-g++、libncurses-devel、Libncurses、openssl-devel、make
  3. 解压缩
    tar -xzvf sip p.3.1.src.tar.gz
  4. 选择编译方式
    1. 通用编译方式
      ./configure --with-pcap --with-openssl
      Make
    2. 没有TLS支持与密码验证支持
      tar -xvf sipp-1.1rc6.tar.gz
      cd sipp-1.1.rc6
      make
    3. 拥有TLS支持与密码验证,但是不支持PCAP语音播放
      tar -xvf sipp-1.1rc6.tar.gz
      cd sipp-1.1.rc6
      make ossl
    4. 支持PCAP PLAY,但是没有密码验证支持(pcap play即为可以进行RTP语音,但是没有407auth验证)
      tar -xvf sipp-1.1rc6.tar.gz
      cd sipp-1.1.rc6
      make pcapplay
    5. 支持PCAP声音文件播放,而且支持密码验证支持(支持407 auth验证支持)
      tar -xvf sipp-1.1rc6.tar
      cd sipp-1.1.rc6
      make pcapplay_ossl
  5. 验证是否安装成功
    ./sipp -h

SIPP USA和UAC介绍

SIP协议采用Client/Server模型。每一个请求(Request)触发服务器的一个操作,每个操作被称为方法(Method),每个请求除了指明具体方法之外,还携带了一系列的头域(HeaderField),这些头域携带了各种业务信息,除了头域外。消息中还可以携带任意类型的消息体(Body),呼叫中最常用的SDP信息就是通过消息体在Client和Server之间传递的。Server从接收到请求到处理完毕,要回复多个临时响应(Response)和一个终结响应(Response)。
用户代理客户端-UAC(User Agent Cilent) 用于发起请求
UAC启动命令:
./sipp -sn uac 127.0.0.1 -p 5077
用户代理服务器-UAS(User Agent Server),用于接收请求,这里的UAS可以理解是OpenSip服务器
./sipp -sn uas 127.0.0.1:5077 -I 127.0.0.1 -p 5078 -r 5 -rp 100 -m 2 -trace_msg -trace_err

脚本介绍

SIPP属性/命令介绍

标签名 描述 示例
用于消息的发送,常用参数包括 retrans:udp报文重传时长; lost:丢包率; start_txn:启动响应时间记录 ack_txn:记录接收响应时间,与start_txn匹配 retrans:udp报文重传时长; lost:丢包率; start_txn:启动响应时间记录 ack_txn:记录接收响应时间,与start_txn匹配

用于消息的接收,常用参数包括 response:期望收到的响应消息 request:期望收到的请求消息 optional:可选接收消息,值为true或global timeout:超时时长,默认超时后直接END ontimeout:超时后的跳转处理 action:收到消息后采取的处理动作 regexp_match:检查收到消息是否匹配预期

<recv request=“ACK" timeout=“18000” ontimeout=“5">

用于设置暂停时间,常用参数包括 milliseconds:设置暂停时长,单位ms variable:设置当变量出现时暂停 distribution:使用GSL定义或分布模型定义呼叫 时长 milliseconds:设置暂停时长,单位ms variable:设置当变量出现时暂停 distribution:使用GSL定义或分布模型定义呼叫 时长

用于非协议处理的命令执行,常用参数包括 action:执行命令动作

<sendCmd 用于两个SIPp实例间的交互发送,常用于3PCC 场景,常用参数包括 <![CDATA[]]>:用于 3PCC场景的参数传递 dest:仅用于扩展模式3PCC

<![CDATA[ Call-ID: [call_id] [$1] ]]>

用于两个SIPp实例间的交互接收,常用于3PCC 场景,常用参数包括 action:接收到命令时的执行命令动作 src:仅用于扩展模式3PCC
<action
start_rtd 启动响应定时器 <send start_rtd=“invite“ >
rtd 停止响应定时器 <recv response=“200”rtd=“invite“ />
repeat_rtd 重复启用响应定时器 <recv response=“407”rtd=“invite” repeat_rtd=“true“ />
crlf 运行界面增加回车换行
next 跳转任意label <recv response=“403” optional=“true” next=“reg_fail”>
test 与next一起使用,设置 跳转条件 <send next=“6” test=“flag1”>
chance 与test、next一起使用, 当test结果有值时,则 概率跳转
counter 计数器累加1 <recv response=“200”counter=“SuccessCALL">

Sipp命令介绍

UAS服务端命令
不带日志
./sipp -sn uas 12.0.0.1 -p 5060
./sipp -sf uas.xml 12.0.0.1 -p 5060
-sn 与-sf区别
-sn 使用SIPP内部模本配置文件
-sf 使用场景自定义配置文件
带日志
./sipp -sn uas 12.0.0.1 -p 5060 -trace_msg -trace_err
/sipp -sf uas.xml 12.0.0.1 -p 5060 -trace_msg -trace_err
客户端
不带日志
./sipp -sf rtp.xml -inf rtp.csv 192.168.146.89:5060 -i 192.168.146.148 -p 5078 -m 10 -r 10 -rp 1
./sipp -sf rtp.xml -inf rtp.csv 192.168.146.89:5060 -i 192.168.146.148 -p 5078 -m 10 -r 10 -rp 1 -trace_msg -trace_err
命令解析

场景文件与用户文件

  1. 内部服务端与客户端交互
  2. 模拟用户通过SIP服务之间呼叫
  3. SIPP 模拟大量用户注册服务场景使用SIPP服务器

SIPP介绍以及使用介绍相关推荐

  1. NoSQL介绍、memcached介绍、安装memcached、 查看memcached状态

    为什么80%的码农都做不了架构师?>>>    NoSQL介绍 什么是NoSQL? 非关系型数据库就是NoSQL,关系型数据库代表MySQL 首先NoSQL是一个数据库,它是用来存储 ...

  2. MySQL第2天:MySQL的架构介绍之MySQL介绍

    MySQL第2天:MySQL的架构介绍之MySQL介绍 #编写时间:2017.3.4 #编写地点:广州 MySQL介绍 (1)MySQL是关系型数据库管理系统,有瑞典MySQL AB公司开发,目前属于 ...

  3. “请先做自我介绍”:高手都是这样做自我介绍,这样介绍最加分

    "请先做自我介绍":高手都是这样做自我介绍,这样介绍最加分 [转载] 我是一个什么都喜欢准备好的人,如果不准备好,感觉自己心理会没有底,就是不打无准备的战. 记得有一次参加面试,我 ...

  4. db2 mysql sql server_下文给大家介绍mysql数据库介绍,具体详情如下所示:MySQL数据库:Oracle、DB2、SQL Server、MySQL、access、mang...

    下文给大家介绍mysql数据库介绍,具体详情如下所示: MySQL 数据库: Oracle.DB2.SQL Server.MySQL.access.mangodb.bigtable 关系型数据库 大型 ...

  5. elasticsearch5.x:查询建议介绍、Suggester 介绍以及Java-api实现

    elasticsearch5.x:查询建议介绍.Suggester 介绍 参考:http://www.cnblogs.com/leeSmall/p/9206646.html 参考(重点):https: ...

  6. Python requests介绍之接口介绍

    Python requests介绍 引用官网介绍 Requests 唯一的一个非转基因的 Python HTTP 库,人类可以安全享用. Requests 允许你发送纯天然,植物饲养的 HTTP/1. ...

  7. mysql查看表描述_MySQL表记录操作介绍(重点介绍查询操作)

    MySQL表记录操作指的是对数据库表中数据进行CRUD增删改查操作,一下将一一给大家介绍,重点介绍查询操作. 一.插入数据(INSERT) 二.删除数据(DELETE) 三.修改数据(UPDATE) ...

  8. 单招计算机英语面试口语,单招面试英语自我介绍范文 自我介绍说什么

    单招面试英语自我介绍范文 自我介绍说什么2018-03-11 10:50:17文/李男 学好英语就意味着可能有更多的机会,单招面试中英语自我介绍也是很重要的.那么,英语自我介绍说什么呢?下面小编整理了 ...

  9. java spark dataset_Spark 2.0介绍:Dataset介绍和使用

    <Spark 2.0技术预览:更容易.更快速.更智能>文章中简单地介绍了 Dataset介绍 Dataset是从Spark 1.6开始引入的一个新的抽象,当时还是处于alpha版本:然而在 ...

  10. 最全NFC芯片技术厂商介绍及应用介绍

    最全NFC芯片技术厂商介绍及应用介绍 NFC由非接触式射频识别(RFID)演变而来,由飞利浦半导体(现恩智浦半导体公司).诺基亚和索尼共同研制开发,其基础是RFID及互连技术.目前这项技术在日韩被广泛 ...

最新文章

  1. Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处理
  2. django的模板系统
  3. [置顶] Android输入输出机制之来龙去脉之前生后世
  4. Mybatis简单的入门之增删改查
  5. 链表排序(C语言)选择排序
  6. 我常用的eclipse快捷键
  7. glibc升级_CentOS7下升级GLIBC2.31
  8. python 股票自动交易从零开始_Python股票自动交易从零开始
  9. 20211110:DC综合的一些简单概念总结(2)
  10. 关于协方差矩阵的理解
  11. xpath用于HTML文档通过元素,通过Xpath定位元素
  12. 托福、雅思、托业有什么区别?
  13. 论文总结与展望怎么写?
  14. 【MATLAB】进阶绘图 ( 双 y 轴图形 | plotyy 函数 | Histogram 统计图形 | hist 函数 )
  15. codeforces 56E 多米诺骨牌效应
  16. 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
  17. 对于嵌入式为什么要有uboot的深度解析
  18. 汉字简易加密解密小程序
  19. 2023郑州大学工商管理学硕专业考研成功经验分享
  20. Action Synopsis: Pose Selection and Illustration 实现

热门文章

  1. 无法启动此程序因为计算机中丢失d3dx,无法启动此程序,因此计算机中丢失d3dx9-41.dll怎么解决?...
  2. [转]Windows10 中文版 英文语言包安装失败解决
  3. Centos 远程桌面管理工具
  4. C# .NET弹出窗口大全
  5. 指纹识别传感器技术演变历程
  6. Linux C语言写的超级简单端口扫描器
  7. Selenium和Firefox对应版本及注意事项
  8. C课设/宾馆客房管理系统/内附源码
  9. plc控制伺服电机 四轴攻丝机案例 该程序为plc控制伺服电机的工程案例程序,包含伺服电机接线图,包含程序流程的详细解释说明
  10. 2022年日历表电子版打印版