




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 SIP压力测试SIP协议是IMS/NGN主要通信协议, 是一种比较复杂的协议。该文档介绍kylinPET工具如何进行SIP协议测试:提供易用的SIP业务流程脚本编辑,支持SIP鉴权,支持复杂SIP流程。1.1 高效创建脚本通过抓包工具录制SIP业务交互过程后的文件创建SIP业务交互流程图,自动关联特定参数(如CSeq、Call-ID等),大大减少手工操作脚本,高效、精确创建业务模拟脚本。1.2 图形化表示SIP流程图形化直观表示SIP业务交互流程,直观描述SIP状态机。并提供第二状态机“Unexpected”流程图实现心跳、错误流程处理。1.3 支持音视频媒体发送与指标监控支持录制音视频,
2、由媒体代理器模拟发送音视频流;支持监控每路RTP媒体流的指标统计,包括每秒吞吐量、抖动、丢包、延时等等指标数据。1.4 虚拟IP 每个SIP用户一个虚拟IP。配置路由方法参照kylinPET 三种典型组网介绍IP欺骗与路由设置文档。1.5 详细日志,方便问题定位业务运行错误,将输出详细的日志信息,方便用户定位业务错误或失败原因。如输出业务运行的轨迹及最后失败时发送与收到的报文。1.6 支持调用外部JAVA类通过调用外部JAVA类,实现私有算法(加密、解密)或工具无法完成的功能。需要用户自己实现处理逻辑的JAVA代码,实现参照kylinPET 调用外部java类实现扩展文档。1.7 支持业务1)
3、 基于SIP的VoIP业务,包括音频、视频、短消息2) 支持UDP或TCP方式;支持SIP Over TLS3) 支持使用SIP承载的业务,包括Message、INFO、订阅等业务1.8 SIP提供解析关联参数列表参数名描述Call-ID从接收到的消息获取Call-ID头域的值,并作为参数名为Call-ID的值,后续通过Call-ID引用Contact-URI从接收到的消息获取Contact头域的值,并作为参数名为URI的值,后续通过URI引用CSeq从接收到的消息获取CSeq头域的值,并作为参数名为CSeq的值,后续通过CSeq引用From-Tag从接收到的消息获取From头域的Tag值,并
4、作为参数名为From-Tag的值,后续通过From-Tag引用To-Tag从接收到的消息获取To头域的Tag值,并作为参数名为To-Tag的值,后续通过To-Tag引用Branch从接收到的消息获取Via头域的Branch值,并作为参数名为Branch的值,后续通过Branch引用From从接收到的消息获取From头域的值,并作为参数名为From的值,后续通过From引用To从接收到的消息获取To头域的值,并作为参数名为To的值,后续通过To引用Via从接收到的消息获取Via头域的值,并作为参数名为Via的值,后续通过Via引用SDP-IP从接收到的消息获取SDP内容的c行的媒体IP,并作为参
5、数名为SDP-IP的值,后续通过SDP-IP引用SDP-AudioPort从接收到的消息获取SDP内容的m行的语音端口,并作为参数名为SDP-AudioPort的值,后续通过SDP-AudioPort引用SDP-VideoPort从接收到的消息获取SDP内容的m行的视频端口,并作为参数名为SDP-VideoPort的值,后续通过SDP-VideoPort引用Route从接收到的消息获取Route头域的值,并作为参数名为Route的值,后续通过Route引用Record-Route从接收到的消息获取Record-Route头域的值,并作为参数名为Record-Route的值,后续通过Record
6、-Route引用RSeq从接收到的消息获取RSeq头域的值,并作为参数名为RSeq的值,后续通过RSeq引用realm从接收到的401或407消息获取WWW-Authenticate头域的realm值,并作为参数名为realm的值,后续通过realm引用nonce从接收到的401或407消息获取WWW-Authenticate头域的nonce值,并作为参数名为nonce的值,后续通过nonce引用1.9 SIP自动生成与处理的参数参数名描述Call-ID自动生成Call-ID参数的值,作为主叫的Call-ID,发送的消息里将通过Call-ID引用该值。无需用户配置该参数列表CSeq自动生成CS
7、eq参数的值,作为主叫的CSeq,发送的消息里将通过CSeq引用该值。无需用户配置该参数列表From-Tag自动生成From-Tag参数的值,作为主叫的From-Tag,发送的消息里将通过From-Tag引用该值。无需用户配置该参数列表To-Tag自动生成To-Tag参数的值,作为主叫的To-Tag,发送的消息里将通过To-Tag引用。无需用户配置该参数列表Branch自动生成Branch参数的值,作为主叫的Branch,发送的消息里将通过Branch引用。无需用户配置该参数列表From-IP用户在Controller启动虚拟IP,则该值与用户配置的IP对应。如果没使用IP,则工具自动获取系统
8、IP,但如果系统存在多IP,可能出错,可以通过手动配置参数列表解决。发送的消息里将通过From-IP引用From-Port用户在Controller配置的源端口对应。发送的消息里将通过From-Port引用To-IP如果在Controller配置“代理之间”的IP,则To-IP对应配置的值;否则对应Scripter配置的域名(服务器),发送的消息里将通过To-IP引用To-Port如果在Controller配置“代理之间”的端口,则To-Port对应配置的值;否则对应Scripter配置的服务器端口,发送的消息里将通过To-Port引用Media-IP对应From-IP的值,作为发送消息的SD
9、P的c行里的媒体IP地址Media-Port自动设置为43210值Content-Length工具自动根据发送消息的内容设置该值注意:1、 上面参数有工具自动生成,可以作为主叫流程替换消息里对应的参数值,而不需要用户在Scripter界面配置参数列表,减少工作量。如果用户配置了参数列表,则按用户配置覆盖工具自动生成的值。2 简单的主被叫会话流程通过该例子,介绍如何使用工具完成SIP业务测试,及介绍工具的界面使用方法。操作步骤:注意:1、 该例子为主叫与被叫直接交互,中间没有经过SIP服务器(IMS),目的只是介绍SIP业务的操作指导。如果中间有SIP服务器,通过Scripter配置主叫脚本的S
10、IP服务器的IP地址,另外,不需要通过Controller配置“代理之间”(代理之间表示是两个agent直接交互)2.1 使用抓包工具录制业务使用wireshark或ethereal工具通过抓包方式(嗅探)录制SIP业务交互流程,然后保存为以cap或pcap后缀的文件名。注意:1、 手工编辑业务流程工作量大,因此使用抓包方式录制业务交互流程再生成业务脚本,提高效率。2、 保存文件名及目录只能为英文,而不能为其他语言,如中文3、 kylinPET工具提供过滤功能,因此不需要对抓包进行过滤,但如果UDP报文存在分片时,需要注意过滤时不能把分片过滤。2.2 Scripter创建主叫流程脚本2.2.1
11、 新建业务脚本点击“文件” -> “新建”或者“工具栏”的“新建” 按钮。2.2.2 录制设置点击“工具” -> “录制”或者“工具栏”的“录制” 按钮,然后,在弹出的录制配置窗口选择录制方式为“Cap File”(抓包文件方式),输入过滤规则。注意:1、SIP承载在TCP上时,抓包文件保存时不能只过滤SIP报文,需要把整个TCP交互过程都保存到文件(SYN -> SYN_ACK -> ACK) 。可通过IP与端口过滤保存业务交互过程2.2.3 产生业务脚本流程双击“ INVITE” 查看消息:双击“180” 查看消息:注意:1、 Contact-URI表示从Conta
12、ct头域获取值,可用于后续发送消息替换URI2、 To-Tag表示从接收消息获取To头域的Tag值,可用于后续发送消息替换To-Tag发送节点消息如果需要支持每个用户不同的值(参数化),则需要在消息设置参数名,然后在这里添加该参数名的取值。例如:则需要在参数列表配置To-Name与domain参数及它的值。说明:1. 每个协议工具都提供了默认的参数值(不可见,由工具自动设置,如From-IP,如果IP欺骗则不需要配置From-IP,工具自动根据每个用户的源IP替换它;如果没有启用虚拟IP,则需要配置From-IP参数),这些参数不需要用户在参数列表配置;如果用户需要修改默认参数值,则在参数列表
13、添加该参数即可覆盖。所以协议默认有:From-IP, From-Port, To-IP, To-Port;SIP协议还包括Call-ID, From-Tag, To-Tag, Branch, CSeq, Media-IP, Media-Port;2. 如果发送的消息里面出现有参数没替换(如domain),则可能有两种情况:1)该参数需要在前面的响应消息里获取它的值,则检查是否没配置参数关联或者配置但获取失败;2)表示该参数没在参数列表配置,需要添加该参数(如domain参数)。3. 录制产生的SIP脚本,默认会根据SIP协议流程将某些内容关联为参数,如IP地址关联为F
14、rom-IP参数;另外,接收消息会自动生成获取参数值,如获取To-Tag参数值(后续主叫流程发送的消息需要包括接收消息里的To-Tag值)2.2.4 编辑脚本流程1. 编辑流程图2. 替换脚本内容为参数(关联参数)点击“编辑” -> “字符串替换为参数”或者“工具栏”的 按钮,弹出窗口输入参数名。替换02087800002为From-Name,替换kylinPET.com为domain发送消息INVITE替换后: 2.2.5 配置参数列表参数配置可以参照kylinPET 参数配置文档参数列表值用于业务模拟时替换对应的参数,实现不同用户不同的参数值。2.2.6 Scripter保存脚本点击
15、“文件” -> “保存”或者“工具栏”的按钮。如脚本保存为caller.spet2.3 Scripter创建被叫流程脚本2.3.1 新建业务脚本操作见主叫流程“新建业务脚本”2.3.2 录制设置点击“工具” -> “录制”或者“工具栏”的“录制” 按钮,然后,在弹出的录制配置窗口选择录制方式为“Cap File”(抓包文件方式),输入过滤规则。被叫为2.3.3 产生业务脚本流程双击“ INVITE” 查看消息:双击“180” 查看消息:说明:1. 每个协议工具都提供了默认的参数值(不可见),这些参数不需要用户在参数列表配置;如果用户需要修改默认参数值,则在参数列
16、表添加该参数即可覆盖。所以协议默认有:From-IP, From-Port, To-IP, To-Port;SIP协议还包括Call-ID, From-Tag, To-Tag, Branch, CSeq, Media-IP, Media-Port;2. 如果发送的消息里面出现有参数没替换(如domain),则可能有两种情况:1)该参数需要在前面的响应消息里获取它的值,则检查是否没配置参数关联或者配置但获取失败;2)表示该参数没在参数列表配置,需要添加该参数(如domain参数)。3. 录制产生的SIP脚本,默认会根据SIP协议流程将某些内容关联为参数,如Via头域,From头域(协议标准是后面
17、发送的From头域为收到会话的From头域);另外,发送消息会自动关联参数,如CSeq值自动关联为CSeq参数2.3.4 编辑脚本流程1. 编辑流程图2. 替换脚本内容为参数(关联参数)操作类似录制主叫流程的“编辑脚本流程”2.3.5 配置参数列表参数配置可以参照kylinPET 参数配置文档参数列表值用于业务模拟时替换对应的参数,实现不同用户不同的参数值。2.3.6 配置被叫流程使用主动方式(默认不需要)默认测试场景包括主被叫流程,主叫流程按Controller配置的并发模型运行虚拟用户,但被叫流程并不按照配置的并发模型运行(工具自动将第一个被叫节点的超时时间修改为65535秒,且在启动50
18、个被叫流程),而是在主叫流程运行前则启动50个被叫池(配置被叫池个数参照kylinPET 帮助指导文档的“4.6.3 高级设置”的“other”); 如果希望被叫流程按照并发模型运行,即每秒启动多少个被叫用户,则配置“被动变主动”,但此时需要确保被叫用户在对应的主叫用户前运行。一般建议不需要勾选“被动变主动”,但如果出现错误日志为主叫没收到被叫响应,且被叫没收到主叫第一个消息,则可能是被叫启动速率低于主叫并发速率(只在资源不足情况下才可能发生)。2.3.7 Scripter保存脚本点击“文件” -> “保存”或者“工具栏”的按钮。如脚本保存为callee.spet2.4 Scripter
19、调试(回放)脚本点击 “工具栏”的按钮运行脚本,通过日志调试脚本是否正确。虚拟IP的脚本调试可通过Controller的“调试脚本”实现场景调试。1) 按钮介绍² 为运行按钮,点击运行脚本进行调试² 为停止按钮,点击停止运行脚本² 为上一个错误² 为下一个错误² 为导出日志按钮,如果日志太多,需要查找或过滤(如过滤Error或Excepiton关键字找出错误日志),可导出到文件,然后通过UE或NotePad+等软件分享。² 弹出窗口,显示回放日志与录制的比较,不一样内容显示红色,方便用户快速定位问题,或验证回放是否表示业务执行成功。&
20、#178; 显示文本区域的内容长度2) 回放日志内容区域1) 红色代表错误或异常日志内容包含:“Error:”或“Exception:”关键字2) 黑色为业务消息日志如发送日志或响应日志3) 蓝色为分隔信息或统计信息² runTime:表示整个脚本运行时间² requests:请求(发送)消息个数² responses:响应(接收)消息个数² throughput:吞吐量² Transaction:脚本中事务统计² response code:响应码统计2.5 回放与录制日志比较验证业务是否执行成功回放与录制日志比较也可以作为关联参数
21、的一种方式,关联参数可以参照kylinPET 关联参数文档;同时,当脚本出问题时,可以用来定位问题。如果脚本是通过录制创建的,点击回放窗口的按钮,弹出比较窗口。2.5.1 背景1) 脚本回放成功,但实际没有成功。而导致测试无效,对于性能经验不足的测试人员经常发生这样的事情。例:由于获取call-id失败,导致后面发送的SIP携带错误的call-id导致服务器处理失败,但仍然回复正常的响应码,导致测试工具认为成功(没有设置检查点情况)。2) 脚本回放失败,但是不知道是什么原因导致,而不会配置脚本或花很长时间解决问题例:测试工具提交数据或参数,但服务器回复400或500等错误响应,需要测试人员定位
22、提交数据是否错误,可能是由于编解码配置错误导致,经验不足的测试人员往往花费很长时间解决问题。面,这点跟前面的图片不一样。2.5.2 回放与录制比较窗口1) 按钮介绍² 为上一个差异² 为下一个差异² 为导出当前比较窗口的回放日志按钮,可与后面controller调试导出日志进行比较,验证正常执行时业务是否成功。² ,左边为录制内容,显示录制内容的长度² ,右边为回放内容,显示回放内容的长度² 显示录制与回放内容的不同总数2) 内容区域红色代表不同之处黑色代表相同粉红色代表录制不存在该资源,但回放有该资源(工具自动识别内嵌资源)3) 比
23、较内容最下面的比较内容当选择录制或回放某一行内容时,将在这里显示录制与回放对应的行,以便比较。2.6 Controller创建测试场景2.6.1 创建执行代理器点击“工具” -> “执行代理器”或者“工具栏”的按钮,添加执行代理器2.6.2 创建主叫与被叫任务Controller的“设计”页面,左边的“任务管理”树,单击右键选择“新建任务”新建时没有配置,因此显示图标,表示配置有误2.6.3 主叫任务与被叫任务添加执行代理器选择任务“caller”节点,单击右键,选择“他的代理器” 将执行代理器“caller”添加(右移)到任务“caller”,即表示“caller”归属于任务“call
24、er”2.6.4 设置并发模型然后设置任务的并发模型,通过点击“模型设置”按钮,在弹出的窗口设置模型;2.6.5 启用虚拟IP(如果是虚拟IP场景)点击“设置” -> “IP欺骗”,然后选择“工具虚拟IP”Controller界面最下面的状态栏将显示“IP欺骗:工具虚拟IP”注意:1、 选择禁用虚拟IP,则不需要配置IP源,可以配置端口(默认已经配置)2、 选择系统虚拟IP,则需要在Agent上配置多个IP地址(windows可通过工具提供的IPConfig小工具,linux则手工在网卡上添加IP地址)。2.6.6 配置主叫执行代理器(如果是虚拟IP场景)由于选择IP欺骗,因此需要配置源
25、IP列表,如果没有配置,显示图标,表示配置有误。配置路由方法参照kylinPET 三种典型组网介绍IP欺骗与路由设置文档。1) 选择网卡并添加源IP列表(工具IP欺骗)2) 配置IP欺骗报文目的MAC点击“高级设置”按钮由于使用工具虚拟IP方式,因此需要配置代理器构造的IP报文的物理层目的MAC地址,有三种方式:l 自动获取:当主叫Load Agent与被叫Load Agent在同一局域网时,通过arp查询目的IP获取MAC地址。l 手动输入目的MAC:输入网关或目的IP对应的MAC地址,而不需要arp获取MAC,提高效率。l 通过网关IP:通过arp查询网关IP获取MAC地址。这里选择输入对
26、端的MAC地址(使用arp命令或通过在被叫上使用ipconfig /all查询)。如果主叫与被叫在同一局域网,则这里输入被叫的MAC地址;如果中间有三层路由器,则这里输入主叫IP对应网关的MAC地址。3) 配置主叫用户的传输层端口4) 配置被叫IP(如果中间有SIP服务器,则不需要这步骤)注意:1、 因为例子为主叫与被叫直接交互,中间没有经过SIP服务器(IMS网元),因此SIP流程的目的为被叫的IP,配置为,即表示的目的为;的目的为;0的目的为10.10.
27、10.10。2、 如果中间是SIP服务器(IMS网元),则表示目的是固定的IP地址,则直接在脚本里配置域名为SIP服务器的IP地址。而不需要配置“代理之间”这一步骤。5) 主叫最终配置界面2.6.7 配置被叫叫执行代理器(如果是虚拟IP场景)1) 选择网卡2) 添加源IP列表(工具IP欺骗)与配置目的MAC地址目的MAC配置同主叫,。如果主叫与被叫在同一局域网,则这里输入被叫的MAC地址;如果中间有三层路由器,则这里输入主叫IP对应网关的MAC地址。3) 配置被叫用户的传输层端口2.7 连接执行代理器2.7.1 启动执行代理器1) windows操作系统上直接双击agent.bat运行,或命令
28、窗口输入agent.bat;2) 如果是本地执行代理器,可通过右键菜单选择“启动代理器”进行启动2.7.2 连接执行代理器确保执行的代理器处于连接状态,如果代理器处于断开状态,右键弹出菜单选择“连接”进行连接。2.8 Controller调试测试场景在 Controller的“控制”页面点击“调试配置”运行测试场景,则Controller会通知连接的每一个“执行代理器”执行一个用户,并将执行的过程日志返回给Controller。用户可通过日志判断配置是否正确,如果错误,可根据错误信息调整配置。上图是运行的结果,双击发送INVITE日志显示抓包查看流程如下注意:SIP业务比较复杂,通过调试查看业
29、务交互流程是否正常,发送消息是否正确。调试过程最好结合日志与抓包来定位问题(wireshark或ethereal抓包工具)2.9 Controller执行测试场景与查看统计图表、日志调试配置保证配置正确后,点击“开始”运行测试场景。2.9.1 虚拟用户统计表图的1部分为任务运行的统计信息,包括成功数、失败数、每秒并发个数。2.9.2 监控项统计树图的2部分为业务脚本监控项统计信息,包括每秒请求数、事务统计等;双击树节点查看对应监控项的曲线图表。2.9.3 曲线图表图的3部分为显示监控项的运行情况,每秒一个数据值,构成曲线。每次只能显示一个监控项,可通过双击右边监控树节点来查看对应监控项的曲线图
30、表。另外,可通过“切换”按钮,切换到平均曲线图表,每1分钟(或5分钟、10分钟)一个数据值,该值为当前1分钟(或5分钟、10分钟)的数据的平均值。2.9.4 监控项实时统计表图的4部分为监控项的统计信息,包括最大值、最小值、平均值、当前时刻统计值。每次只能显示一个监控项,可通过双击右边监控树节点来切监控项。2.9.5 日志运行如果有错误,日志将显示流程图运行整个过程,因此,通过日志可判断失败原因。2.10 Analysis分析运行结果运行结束后,点击“工具” -> “Analysis”或者“工具栏”的按钮,打开Analysis界面分析测试结果。界面与Controller基本类型,但提供更
31、强大的分析功能。包括放大、缩小(还原)、过滤、对比、合并,产生HTML报告等功能。2.10.1 报告汇总进入第一个界面将显示“报告”页面,内容显示运行统计信息、整个脚本事务统计信息、自定义事务统计信息,响应码个数统计。注意:默认只显示总任务Total Task的统计结果,而不显示Caller或Callee任务的统计结果。2.10.2 查看图表曲线双击监控树节点查看对应监控项的统计曲线与下面的统计表格。最下面状态栏为当前图表曲线的信息,包括:开始时间、结束时间、时间范围、曲线点个数、曲线Y轴最小值、曲线Y轴最大值、运行时间、错误日志数。双击统计表格对应的行将显示曲线的详细信息。2.10.3 图表
32、操作1) 放大曲线当运行时间比较大时,如1个小时(3600秒,对应3600个统计点),工具自动控制显示曲线的点数(曲线点少于200个),而不是每个统计值显示一个点(如果每秒一个点则曲线显示3600个点,将挨挤,不美观),工具自动将多个点汇总为一个点(可以是平均值、最大值、最小值、或由某个点代表这些点)。假设,10秒显示一个点,则在图表曲线无法查看到1-9秒的数据点,为了查看某段更小时间范围的数据,可通过在图表拖动鼠标来选中对应的时间范围,鼠标拖动方向为右上或右下。如上图选择了8秒到19秒的范围后,图表曲线只显示时间为8到19的范围,如下:2) 还原曲线拖拉鼠标放大时间范围查看图表后,如果需要还
33、原最初的图表曲线(即双击监控指标节点显示的曲线),可在图表拖动鼠标实现,鼠标拖动方向为左上或左下,即方向向左。3) 曲线过滤通过过滤实现只显示特定数据点曲线。如可以只显示超过阈值的数据点,然后查看曲线的点数(相当于统计超过阈值的数据点个数),在哪个时间点频率高。如对“request/s”监控项过滤统计值大于25点:A. 图表曲线上“右键” -> “过滤”B. 过滤窗口输入过滤值C. 过滤曲线只显示满足过滤条件的点。2.10.4 合并图表曲线默认每个监控项独自在图表显示曲线,如果需要对两个监控项进行对比,则可以通过合并功能实现。如“request/s”与“CPU”合并对比分析。1) 选中监
34、控树节点,然后“右键” -> “合并图表”2) 设置第二个图表为running曲线3) 生成合并监控树节点4) 双击显示合并图5) “右键” -> “比较图表”可通过左边的刻度条移动曲线进行对比分析。2.10.5 日志分析日志记录了错误日志、告警日志,常用于分析定位问题。有时只通过监控指标曲线只能查看失败数量、资源值(如CPU、内存),而无法判断问题原因,但通过与日志关联(过滤特定的日志,如某段时间的日志),可有效分析定为问题。如:发现某时刻CPU占用高,而通过过滤该时刻的日志,发现有很多错误日志,日志内容为500响应,且内存带了服务器的失败原因。1) 日志界面显示总日志数,而状态
35、栏显示错误日志个数2) 查看所有日志默认每一页只显示100条日志,可通过翻页或跳转查看其它页的日志内容。点击“所有日志”按钮2.10.6 过滤日志点击“过滤”按钮支持时间范围过滤、Controller或某个Agent过滤、日志级别、虚拟用户、日志内容;可以为它们的组合过滤。2.10.7 导出日志可以将表格的日志导出到excel2.11 Analysis查看Caller任务与Callee任务统计结果在统计表格选中对应的任务或代理Agent然后点击右键单击“显示图表”,如选择caller图表将只显示caller的统计曲线(标题由Total Task running转变为caller running
36、/s),此时,双击其他监控项都是都只显示caller的统计曲线。如果需要显示总的,则选中“Total Task” 右键单击“显示图表”注意:1、 默认只显示总任务Total Task的统计结果,而不显示Caller或Callee任务的统计结果。2、 如果Total Task任务里面有多个Task,默认可以查看Total Task任务的统计结果(所有Task统计的汇总),也可以单独查看每个Task的统计结果3、 如果Task任务里面有多个Agent,可以查看该任务的统计结果(所有Agent统计的汇总),也可以单独查看每个Agent的统计结果2.12 Analysis产生报告2.12.1 报告设置
37、点击“报告” -> “设置”或者“工具栏”的按钮弹出设置窗口。报告设置生效后,图表界面曲线会对应改变为设置方式。注意:1、 默认只勾选Total Task,时间为曲线整个时间,点类型为平均,自动N秒一个点2、 当需要在HTML报告里包括任务的统计结果,可以勾选对应的任务。3、 当需要在HTML报告里包括代理Agent的统计结果,可以勾选对应的任务。曲线时间范围(可以只显示某段时间的曲线)、多少秒一个点(某认由工具自动根据合适的点数,让曲线不紧凑)、点类型(曲线一个点表示一段时间时是它们的平均、或最大、最小)、表格定义任务与Agent是否都产生统计曲线(如果有多个任务或多个Agent,都会
38、显示在表格)。只显示5秒到16秒的范围。2.12.2 生成HTML报告点击“报告” -> “HTML报告”或者“工具栏”的按钮。产生的报告将保存到测试结果目录下,目录名为report。如:E:kylinPETworkspaceResultDatasip_noMedia_2012_04_15_23_09_20report2.13 查看report.html报告双击“report.html”文件打开报告2.13.1 报告汇总左边树为监控项,由于报告勾选了caller与callee任务,因此左边树包括了caller与callee任务的统计结果。2.13.2 查看统计图表2.13.3 查看曲线详
39、细信息通过点击“Clear”对应的行;如果隐藏则点击“Clear”2.14 Controller与Scripter脚本 3 主被叫会话存在媒体(RTP)交互通过该例子,介绍如何使用工具完成SIP RTP业务测试业务,及介绍工具的界面使用方法。该例子与“2 简单的主被叫会话流程”类似,因此下面指导主要为介绍RTP配置指导说明:1、 通过抓包工具录制业务交互过程可以高效率创建业务脚本,达到精确模拟业务。2、 录制包括SIP交互流程及主被叫音视频流,SIP交互流程用于创建测试脚本,媒体文件用于模拟主被叫发送的音视频流。3.1 使用抓包工具录制SIP交互流程与RTP媒体流使用wireshark或eth
40、ereal工具通过抓包方式(嗅探)录制正常SIP业务交互流程,包括SIP与RTP媒体流,然后分别过滤出SIP业务流程为抓包文件,RTP每路流为一个抓包文件,文件以cap或pcap后缀。通过抓包工具录制业务交互过程可以高效率创建业务脚本,达到精确模拟业务。注意:1、 cap或pcap格式保存的文件名及目录只能为英文,而不能为其他语言,如中文2、 分别过滤出对应的语音与视频流,即语音流一个文件(只包括主叫或被叫);视频流一个文件(只包括主叫或被叫)。3、 RTP抓包文件只能包含RTP报文,最好是完整的流(即没出现丢包或乱序)3.1.1 过滤保存SIP业务主叫抓包文件保存为cap或pcap格式文件,
41、Scripter通过“Cap File”方式读取该文件生成主叫流程,高效率创建脚本流程,减少手动创建脚本时间。3.1.2 过滤保存SIP业务被叫抓包文件保存为cap或pcap格式文件,Scripter通过“Cap File”方式读取该文件生成被叫流程。3.1.3 过滤保存主叫音频抓包文件另存为过滤实现主叫的音频保存为caller_audio.cap,并将caller_audio.cap保存到主叫Load Agent(主叫代理器)的media目录下;3.1.4 过滤保存主叫视频抓包文件过滤实现主叫的视频保存为caller_video.cap,并将caller_ video.cap保存到主叫Loa
42、d Agent(主叫代理器)的media目录下;3.1.5 过滤保存被叫音频抓包文件过滤实现被叫的音频保存为callee_audio.cap,并将callee_audio.cap保存到被叫Load Agent(被叫代理器)的media目录下;3.1.6 过滤保存被叫视频抓包文件过滤实现被叫的视频保存为callee_video.cap,并将callee_ video.cap保存到被叫Load Agent(被叫代理器)的media目录下;3.2 Scripter主叫流程脚本通过录制方式创建主叫脚本,操作步骤参照“2.2 Scripter录制主叫流程”。流程图及配置如下:流程图的Media节点表示执
43、行代理器通知媒体代理器发送音视频流与监控收到的音视频流。参数media-ip、audio-port、video-port为主叫的SDP信息,来源于参数列表的配置;而参数SDP-IP、SDP-AudioPort、SDP-VideoPort为流程从200响应消息的SDP内容获取的。3.3 Scripter被叫流程脚本通过录制方式创建被叫脚本,操作步骤参照“2.3 Scripter录制被叫流程”。流程图及配置如下:流程图的Media节点表示执行代理器通知媒体代理器发送音视频流与监控收到的音视频流。参数media-ip、audio-port、video-port为被叫的SDP信息,来源于参数列表的配置
44、;而参数SDP-IP、SDP-AudioPort、SDP-VideoPort为流程从INVITE消息的SDP内容获取的。3.4 Controller创建测试场景部分配置指导参照“2.4 Controller创建测试场景”,这里只介绍媒体部分的配置。3.4.1 创建媒体代理器点击“工具” -> “媒体代理器”或者“工具栏”的按钮,添加媒体代理器3.4.2 配置主叫媒体代理器1. 选择媒体流对应的网卡2. IMS业务需要发送RTP媒体流,因此选择“发送与监控模式”3. 选择监控项,及对应的告警阈值,超过阈值将显示,正常显示4. 媒体代理器发送语音与视频报文的目的MAC地址。媒体代理器通过自带
45、的协议栈(可以虚拟多IP)实现RTP报文的发送,因此需要配置IP报文的目的MAC地址。² 手动输入目的MAC:输入网关或目的IP对应的MAC地址,不需要arp获取MAC,提高效率。使用arp命令或通过在被叫主机上使用ipconfig /all查询,如果主叫与被叫在同一局域网,则输入被叫主机的MAC地址;如果中间有三层路由器,则输入主叫IP网关的MAC地址。² 通过网关IP:输入网关的IP地址(局域网时为目的主机IP),工作通过发送arp报文查询网关的MAC地址。5. RTP报文从抓包文件获取。业务模拟时用户发送的语音媒体流(RTP报文)由文件caller_audio.cap
46、获取,实现真实模拟语音流;发送的视频流(RTP报文)由文件caller_video.cap获取,实现真实模拟视频流;注意:1、 抓包文件确保在良好网络上获取,避免丢包、乱序,同时,保证媒体时间频率基本无偏差。6. 媒体过滤规则,防止无关报文影响质量指标计算及降低处理能力。媒体代理器通过实时抓包(嗅探)方式获取媒体流,并进行解析统计每一路媒体流的质量指标(如丢包、抖动)。通过过滤规则只获取媒体流报文而过滤其他无关报文,提高媒体代理器的性能。界面为主叫媒体代理器的配置,而主叫的媒体流源IP段为到0,因此主叫媒体代理器收到的RTP报文目的IP为10
47、到0之间。3.4.3 配置被叫媒体代理器3.4.4 自动添加媒体监控项增加媒体代理器后工具自动在监控树添加媒体代理器的监控项1. running/s为每秒媒体代理器(media agent)正在分析媒体质量的媒体流数量2. throughput/s为每秒媒体代理器(media agent)的吞吐量3. media info为每路媒体流质量指标3.4.5 配置主叫执行代理器的媒体代理器点击caller的“高级设置”按钮,配置主叫执行代理器对应的媒体代理器。一个执行代理器(load agent)可对应多个媒体代理器,实现负荷分担(轮询方式);媒体代理
48、器处理的数据比执行代理器高得多,因为RTP媒体报文数量远多于SIP报文数,因此并发量大时,一般需要一个执行代理器对应多个媒体代理器。3.4.6 配置被叫执行代理器的媒体代理器3.5 Controller调试测试场景参照“2.5 Controller调试测试场景”3.6 Controller执行测试场景与查看统计图表、日志操作指导参照“2.6 Controller执行测试场景与查看统计图表、日志”,这里只介绍媒体部分。3.6.1 查看每一路媒体流指标上图查看被叫每一路的指标情况,表格只显示每秒的指标值与总得平均值,绿色表示指标没超过阈值,红色表示指标超过阈值。说明:查看每一路详细曲线图表需要通过
49、Analysis上图是运行时wireshark抓包情况3.7 Analysis分析运行结果操作指导参照“2.7 Analysis分析运行结果”,这里只介绍媒体部分。3.7.1 主叫收到的每一路媒体指标双击表格某行查看对应媒体流指标曲线3.8 Controller与Scripter脚本 4 鉴权注册4.1 使用抓包工具录制业务使用wireshark或ethereal工具通过抓包方式(嗅探)录制SIP注册业务交互流程,然后保存为以cap或pcap后缀的文件名。注意:1、 手工编辑业务流程工作量大,因此使用抓包方式录制业务交互流程再生成业务脚本,提高效率。2、 保存文件名及目录只能为英文,而不能为其
50、他语言,如中文3、 kylinPET工具提供过滤功能,因此不需要对抓包进行过滤,但如果过滤时需要注意过滤时不能把分片过滤。4.2 Scripter创建注册流程脚本4.2.1 新建业务脚本点击“文件” -> “新建”或者“工具栏”的“新建” 按钮。4.2.2 录制设置点击“工具” -> “录制”或者“工具栏”的“录制” 按钮,然后,在弹出的录制配置窗口选择录制方式为“Cap File”(抓包文件方式),输入过滤规则。4.2.3 产生业务脚本流程4.2.4 查看节点消息1) 第一个REGISTER工具自动把SIP头域一些可变的地方参数化,如To-IP表目的IP地址的参数,Call-ID
51、表示会话ID。很大程度减少用户工作量,提高效率与正确性。这些参数将在发送消息前由工具自动替换为工具分配的参数值,或者用户在“参数列表”配置的参数值。说明:1. 每个协议工具都提供了默认的参数值(不可见,由工具自动设置,如From-IP,如果IP欺骗则不需要配置From-IP,工具自动根据每个用户的源IP替换它;如果没有启用虚拟IP,则需要配置From-IP参数),这些参数不需要用户在参数列表配置;如果用户需要修改默认参数值,则在参数列表添加该参数即可覆盖。所以协议默认有:From-IP, From-Port, To-IP, To-Port;SIP协议还包括Call-ID, From-Tag,
52、To-Tag, Branch, CSeq, Media-IP, Media-Port;2. 如果发送的消息里面出现有参数没替换(如username或realm),则可能有两种情况:1)该参数需要在前面的响应消息里获取它的值,则检查是否没配置参数关联或者配置但获取失败,如realm参数;2)表示该参数没在参数列表配置,需要添加该参数(如username参数)。3. 录制产生的SIP脚本,默认会根据SIP协议流程将某些内容关联为参数,如IP地址关联为From-IP参数;另外,接收消息会自动生成获取参数值,如获取To-Tag参数值(后续主叫流程发送的消息需要包括接收消息里的
53、To-Tag值)2) 401响应消息接收服务器401响应,并从中获取参数:To-Tag, Contact-URI, realm, nonce,其中realm与nonce参数值将用于计算鉴权结果。3) 第二个REGISTER把跟会话相关的参数值自动参数化,包括鉴权头域的一些值,如username, realm, nonce, URI, response。这些参数将在发送消息前由工具自动替换为工具分配的参数值,或者用户在“参数列表”配置的参数值。其中username需要在“参数列表”配置;realm与nonce需要在401里添加获取参数;URI, response由工具自动计算。4.2.5 编辑脚
54、本1. 配置参数列表参数列表值用于业务模拟时替换对应的参数,实现不同用户不同的参数值。由于注册鉴权需要用到用户名与密码(注:用户名的参数名必须为username,密码的参数名必须为password),因此必须在“参数列表”配置它们。2. 替换脚本内容为参数(关联参数)如果需要才替换,这里只是介绍基本功能,注册业务场景一般不需要此操作。这里假设需要对User-Agent进行参数化,每个用户不同的User-Agent值:点击“编辑” -> “字符串替换为参数”或者“工具栏”的 按钮,弹出窗口输入参数名。替换Jason为agent然后需要在“参数列表”配置agent参数对应的值。4.3 Scr
55、ipter保存脚本点击“文件” -> “保存”或者“工具栏”的按钮。如脚本保存为reg.spet4.4 Scripter调试(回放)脚本点击 “工具栏”的按钮运行脚本,通过日志调试脚本是否正确。虚拟IP的脚本调试可通过Controller的“调试脚本”实现场景调试。4) 按钮介绍² 为运行按钮,点击运行脚本进行调试² 为停止按钮,点击停止运行脚本² 为导出日志按钮,如果日志太多,需要查找或过滤(如过滤Error或Excepiton关键字找出错误日志),可导出到文件,然后通过UE或NotePad+等软件分享。5) 红色代表错误或异常日志内容包含:“Error:”或“Exception:”关键字6) 黑色为业务消息日志如发送日志或响应日志7) 蓝色为分隔信息或统计信息² runTime:表示整个脚本运行时间² requests:请求(发送)消息个数² responses:响应(接收)消息个数² throughput:吞吐量² Transaction:脚本中事务统计² response code:响应码统计4.5 Controller创建测试场景配置指导参照“2.4 Controller创建测试场景”,这里只介绍媒体部分的配置。4.6 Controller执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年柔印直接制版机项目建议书
- 2025年血液灌流器项目建议书
- 2025年专用X射线机项目合作计划书
- 2025年高温高压机械密封项目建议书
- 幼儿园教师个人学期工作发展计划(大班)
- 2025年高温高压机械密封项目合作计划书
- 2025年航空制造和材料专用设备项目建议书
- 2025年节温器项目建议书
- 学生公寓租客安全责任协议范文
- 2025天津市建筑安全员-A证考试题库及答案
- 《餐饮渠道开发方案》课件
- 架子工安全教育培训试题(附答案)
- 一中师德考核评估制度
- 春节习俗中的传统茶文化与茶艺
- 医疗文书病历书写规范培训教学课件
- 分布式网络处理方案
- CNAS-CL02-A001:2023 医学实验室质量和能力认可准则的应用要求
- 土壤侵蚀分类分级标准SL190一2007
- 【《幼儿园安全教育研究文献综述》3300字】
- 网店运营管理(第二版)课件 1-网店运营基本原理
- 网络安全架构设计和网络安全设备部署
评论
0/150
提交评论