SIPP不同的安装模式和做测试

简介: SIPP不同的安装模式和做测试

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不成功时,确认是否安装:libpcap、libpcap-devel、ncurses-devel、ncurses

确认安装成功:

./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.xml和uas.xml中需要引入的相应数据。

 

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

\

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

./sipp -sd branchc > branchc.xml

\

1、UAC

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

待uac和uas单方都确认调试通过后,再使用: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服务端IP及freeswitch使用的端口;

 

-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 <scenario file name>__messages.log

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

 

-trace_screen:

Dump statistic screens in the<scenario_name>__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 <scenario filename>__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 −tracescreen −traceerr −p 12345 −m m -trace_screen -trace_err -p 12345 -m mtracescreentraceerrp12345m m -aa

 

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


相关文章
|
6天前
|
Linux
kickstart自动安装系统 --DHCP 配置及测试
PXE+Kickstart自动安装系统需配置DHCP服务器分配IP。dhcpd.conf示例:设置更新样式、忽略客户端更新、指定下一服务器及启动文件。定义子网、网关、掩码、动态地址池并预留特定MAC地址。重启xinetd、NFS、DHCP服务,确保新服务器与Kickstart服务器在同一网络,避免误装其他机器。注意隔离测试网络以防干扰生产环境。
46 18
|
1月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
53 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
1月前
|
存储 Ubuntu 安全
ROS2教程02 ROS2的安装、配置和测试
本文是关于ROS2(机器人操作系统2)的安装、配置和测试的教程。内容包括使用一键安装脚本快速安装ROS2 Humble版,手动安装步骤,设置语言环境、添加软件源、更新软件包、安装ROS2桌面版和开发工具,配置ROS2环境,创建工作空间,配置ROS2领域以避免网络冲突,以及如何删除ROS2。此外,还包括了测试ROS2是否安装成功的两个案例:基本的Topic通信测试和使用Turtlesim演示程序。适用于Ubuntu 22.04操作系统。
77 1
ROS2教程02 ROS2的安装、配置和测试
|
2天前
|
Web App开发 Linux Python
linux上安装selenium环境及测试
该文章提供了在Linux CentOS上安装Selenium环境、Chrome浏览器及Chromedriver的详细步骤,并演示了如何以无头模式进行测试。
10 0
|
1月前
|
测试技术 开发工具 虚拟化
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
这篇文章提供了一份保姆级的教程,指导如何在MacOS虚拟机上安装Xcode,包括环境准备、基础软件安装以及USB扩展插件的使用,以实现iOS自动化测试方案的第一步。
33 0
iOS自动化测试方案(一):MacOS虚拟机保姆级安装Xcode教程
|
2月前
|
Linux
Linux telnet安装及端口测试联通性
Linux telnet安装及端口测试联通性
61 10
|
1月前
|
运维 Kubernetes 索引
揭秘ChaosBlade的Helm安装双架构:一步到位,让系统故障测试变得前所未有的简单和高效!
【8月更文挑战第7天】在多变的IT环境中,确保应用的稳定与可用至关重要。混沌工程通过故意引入故障来增强系统韧性。ChaosBlade是一款开源混沌实验工具,支持多样化的故障注入。结合Kubernetes的包管理器Helm,可简化ChaosBlade在集群中的部署。本文介绍如何使用Helm安装ChaosBlade双架构版本,包括添加仓库、选择版本、安装配置及验证等步骤,助力高效实施混沌工程,提升系统稳定性和可靠性。
34 0
|
15天前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
77 7
Jmeter实现WebSocket协议的接口测试方法
|
15天前
|
JSON 移动开发 监控
快速上手|HTTP 接口功能自动化测试
HTTP接口功能测试对于确保Web应用和H5应用的数据正确性至关重要。这类测试主要针对后台HTTP接口,通过构造不同参数输入值并获取JSON格式的输出结果来进行验证。HTTP协议基于TCP连接,包括请求与响应模式。请求由请求行、消息报头和请求正文组成,响应则包含状态行、消息报头及响应正文。常用的请求方法有GET、POST等,而响应状态码如2xx代表成功。测试过程使用Python语言和pycurl模块调用接口,并通过断言机制比对实际与预期结果,确保功能正确性。
75 3
快速上手|HTTP 接口功能自动化测试
|
15天前
|
JavaScript 前端开发 测试技术
ChatGPT与接口测试
ChatGPT与接口测试,测试通过
28 5