1、IxChariot使用手册V0.4-2011-01-28目 录一、IxChariot 软件的介绍 11、软件功能 .12、软件内容 .1二、IxChariot 软件的使用 31、初始界面 .32、软件使用说明 .62.1 测试界面介绍 .62.2 应用实例 .93、测试脚本分析 .154、测试结果分析 .22一、IxChariot 软件的介绍IxChariot 是美国 IXIA 公司的推出的针对应用层性能测试的一款软测试工具。IxChariot 在应用层性能测试领域已得到业界的广泛认可。IxChariot 能够评估网络应用的性能和容量,对网络和设备进行压力测试,得到设备及网络在不同应用、不同参
2、数下的吞吐量、时延、丢包、反应时间等性能参数。1、软件功能利用IxChariot可以进行网络维护,性能测试和故障定位: 1)支持多种网络业务,内置超过120个业务脚本,如FTP,HTTP,IPTV,Netmeeting,RealAudio等。2)支持IP TOS,GQoS,DiffServ。3)能实现单个主机可以模拟超过2000个主机。4)支持组播业务。VoIP网络测试与业务质量评估: 1)支持6种VOIP Codec(G.711a,G.711a ,G.723.1-ACELP,G.723.1-MPMLQ,G.726,G.729)。2)支持MOS评分,便于对VOIP网络进行实时分析。能够对电信终
3、端进行性能测试和评估: 1)能够测试网卡(10/100/1G/无线/蓝牙),xDSL调制解调器,Cable Modem, ISDN。终端,普通调制解调器,GPRS手机,CDMA手机。2)测试防火墙及应用网关。2、软件内容IxChariot由两部分组成:控制端Console和终端Endpoint,两者都可安装在普通PC或者服务器上,控制端Console安装在Windows操作系统上,终端Endpoint支持各种主流的操作系统。如:Compaq Tru64 UNIX、FreeBSD UNIX、HP-UX、IBM AIX、IBM MVS、IBM OS/2、Linux、Microsoft Window
4、s 3.1、Microsoft Windows 95/98/Me/NT/2000/XP/XP(64-bit)、Novell Netware、Sco UNIXWare、SGI IRIX、Spirent Communications TeraMetrics、Sun Solaris。控制端Console为该产品的核心部分,控制界面(也可采用命令行方式)、测试设计界面、脚本选择及编制、结果显示、报告生成以及API接口等都由控制端提供。终端Endpoint可根据实际测试的需要安装在单个或者多个终端处,负责从控制端接收指令、完成测试并将测试数据上报到控制端。IxChariot 通过内置的脚本,由控制端控制
5、终端相互主动发包,对设备进行功能、压力和性能等测试,测试结果包括吞吐量、时延、抖动、丢包、错包等等,它能够得到定量的数据并提供详尽的测试报告,从而使得用户可以主动地把握设备的性能状况,并及时地发现问题并采取措施。IxChariot 通过各种机制可以仿真任意的应用。首先,通过内置的脚本,IxChariot 发送不同的数据流,可以模拟现在常见的 125 种应用,而且这种数据流是双向的,真正与协议栈进行交互。IxChariot 对各种应用的支持是基于在 Endpoint 之间发送的多种数据流,数据流的传送可基于多种协议,包括 TCP、UDP、RTP、SPX、IPX 和 SNA,目前也已经支持IPv6
6、。IxChariot 还支持 Multicast、QoS 等多种先进技术,而且将一直保持同步。IxChariot 允许对脚本进行定制,改变数据流的各种参数,比如起始的启动间隔、发送窗口、接受窗口的大小,发送文件的大小,发送的速率、发送的比特流类型、使用端口等等,而且这些参数不但可以是一个由用户指定的典型数值,而且还能选用在最大、最小值之间符合平均分布、正态分布、泊松分布或者指数分布的随机值,从而真正地仿真网络中各种特定的数据流,全面地测试网络或者网络设备在复杂的网络环境下的性能。IxChariot 已经成为业界公认的性能测试软件,所有熟悉和熟练的掌握 IxChariot 的使用,就显得尤为重要
7、,接下来我们就来具体研究一下如何使用这个功能强大的软件。二、IxChariot 软件的使用1、初始界面运行桌面上的 IxChariot Console,进入 IxChariot 界面,如图:IxChriot 主界面中,有四个选项,分别是“New” 、 “Open”、 “Design”、 “Help”。 选项 说明New 新建一个测试Open 打开一个已保存的测试Design 自己设计测试环境拓扑Help 查看帮助文档点击“New”进入“IxChariot Test”界面,这里是我们控制观察整个测试过程的地方,如图:点击“Open”进入“Open a Test File”界面,我们可以选择打开之
8、前保存过的测试文件,文件类型为“.tst”如图:点击“Design”首先弹出的是“Getting Start”界面,这是一个提示窗口,告诉我们每一个图标都代表什么,如果不想在每次进入绘制拓扑的时候看到这个界面,可以将“Show this on startup”的勾去掉即可。如图:点击“OK”按钮,进入“Visual Test Designer”界面,在这里我们可以自由设计希望搭建的拓扑结构,如图:搭建成功后,我们可以点击鼠标右键,在弹出的快捷菜单里,选择“Export to IxChariot Test”,将本次搭建的拓扑直接保存为一次空白的测试结果,然后点击“Open”打开后,点击“Run”
9、运行即可得出真正的测试结果;或者选择“Export and Launch IxChariot”直接导出保存后运行本次测试。除此之外,我们还可以对本次所搭建的拓扑进行直接保存,选择文件菜单“File”下的“Save”或者“Save as”,将本次的拓扑保存为一个“.xml”格式的文件,这个文件允许我们再次的打开拓扑,进行编辑修改等操作。点击“Help”进入“ChariotHelp”界面,通过目录,我们可以查询到希望了解到的帮助信息,如图:2、软件使用说明2.1 控制台界面对于初始界面的几个选项,我们已经基本了解,下面我们就来具体看一下 IxChariot软件是如何使用的:点击“New”进入“Ix
10、Chariot Test”界面后,这里是整个测试的核心控制观察部分,我们将这个界面分为三部分,分别是红色的控制部分、黄色和蓝色的观察部分,如图:界面上方红色的区域:如上图,这部分是我们对整个测试进行选择和控制的区域,每一部分的功能如下表所示:区域 选项 说明Save:保存Print:打印Run:运行Stop:停止Poll:调查(向终端发送一个请求,返回当前已运行到的测试的记录数)Cut:剪切Copy:复制Paste:粘贴1Delete:删除Add Pair:增加一条测试Add Multicast Group:增加一条多点测试Add VoIP Pair:增加一条 IP 语音测试Add Hardw
11、are Performance Pair:增加硬件性能测试Add VoIP Hardware Performance Pair:增加 IP 语音硬件性能测试Edit:编辑一条测试Replicate:复制一条测试Swap Endpoints:交换终端信息2Renumber Pair:重新按顺序排列所有测试No Grouping:按队列显示所有Group by Network Protocal:按网络协议排序Group by Script Filename:按脚本文件排序Group by Endpoint 1:按终端 1 排序Group by Endpoint 2:按终端 2 排序Group by
12、 Service Quality:按服务质量排序Group by Pair Group Name:按组名排序3Group by Pair Comment:按名称排序Expands Groups:扩展列表Collapse Groups:收缩列表4Help:查看帮助文档Ixia Home Page:访问官方网站界面中的黄色区域:“Test Setup”区域,这里显示的是整个测试所添加的全部 Pairs 的情况,在我们还没有点击“Run”前,我们可以从这里查看到“Group”Pairs 所属的组、 “Run Status”运行状态、 “Timing Records of Completed”记录完成
13、的比例情况等等。在一次测试结束后,这里会显示全部的测试结果,包括:“Throughput” 、 “Transaction Rate”、 “Response Time”、 “Raw Data Totals”、 “Endpoint Configuration”,点击相应模块即可查看结果信息。如图:界面中的蓝色区域:在整个运行过程中以图表的形式实时显示测试结果,对应于黄色区域中的选择,例如我在黄色区域中选择了“Throughput”选择,那么这里显示的就是“Throughput”图表,如图:2.2 应用实例我们以测试吞吐量为例来看一下如何使用 IxChariot 软件。测试拓扑:测试环境:Serve
14、r1 :CPU:Inter(R) Pentium(R) 4 CPU 2.40GHz(2CPUs)内存:1024MB网卡:Inter(R) PRO/1000 CT Network Connection(WAN 10.9.21.71/16 100Mbps)Inter(R) PRO/1000 MT Network Connection(LAN 1.1.1.2/24 1Gbps)Server2:CPU:Inter(R) Pentium(R) 4 CPU 2.40GHz(2CPUs)内存:1024MB网卡:Inter(R) PRO/1000 CT Network Connection(WAN 10.9.
15、21.70/16 100Mbps)Inter(R) PRO/1000 MT Network Connection(LAN 2.1.1.2/24 1Gbps)NG-5020GS:*Welcome to LinkTrust Security Gateway!Device Type : NG-5020GSDevice Name : LinkTrust Security GatewayManufacturer : LinkTrust Technologies Development Co., Ltd.Our URL : http:/Serial Number : Egq+RexnqK1Go+CAmuv
16、+Kw=App Version : 8.2.0.001038 (2010-10-20 18:05)Kernel Version : 1.2.0*CPU:Intel(R) Core(TM)2 Quad CPU Q8400 2.66GHz内存:1024MB测试前的准备工作:我们设置 server1 和 server2 运行 Endpoint 终端程序,server1 上运行 IxChariot Console 控制台程序。server1 的 LAN 口与 NG-5020GS 的 eth1 口相连,server2 的 LAN 口与 NG-5020GS 的 eth2 口相连。IP 的配置如图所示,将
17、server1 的 LAN 口网关指为1.1.1.1,server2 的 LAN 口网关指为 2.1.1.1,NG-5020GS 上配置相应策略,保证 server1和 server2 的 LAN 口之间可以互相通信。Console 控制台的运行参考前面的讲解。Endpoint 终端的运行,在 server1 和 server2 上双击 endpoint.exe 即可。如图:那么,我们如何确认本机已经成功运行了 Endpoint 呢?如果在双击 endpoint.exe 后弹出如图提示的对话框,即表示已经成功运行了 endpoint 终端程序,如图:或者在任务管理器中找到 endpoint 进
18、程就证明已经运行成功了。如图:测试步骤:进入“IxChariot Test”界面,选择控制区域的“Add Pair”,由于测试环境是两台服务器与防火墙直连,所以选择一对一这种模式,如图:弹出“Add an Endpoint Pair”对话框,这里我们主要设置如下 5 个方面:1 Pair comment:Pair 的名称2 Endpoint 1 network address:终端 1 的 IP 地址3 Endpoint 2 network address:终端 2 的 IP 地址4 Network protocol:使用的网络协议5 Select Script:选择测试脚本这里我们还需要注意
19、一点的就是“Endpoint 1 to Endpoint 2”,已经为我们指定了本次测试是由哪个终端发起,发向哪个终端。本例中,我们设置 Pair comment 为 test,Endpoint 1 的地址为 1.1.1.2,Endpoint 2 的地址为 2.1.1.2,Network protocol 为 TCP,Script 脚本为 throughput.scr,如图:点击 OK 按钮后,可以看到我们新添加的一条单向测试连接就已经成功了,也就是我们只检测 server1 到 server2 的带宽吞吐量。但吞吐量的测试应该是双向的,所以我们必须再添加一条从 server2 到 serve
20、r1 的测试连接,设置 Endpoint 1 的 IP 地址为2.1.1.2,Endpoint 2 的 IP 地址为 1.1.1.2,其余选项不变。建立一对两条双向的测试连接,这样一组比较符合吞吐量测试的用例就完成了。如图:点击“Run”按钮,运行本次测试,得出测试结果,如图:得出测试结果后,我们可以选择将结果导出为一份报告,可选类型有:HTML、Text、CSV 格式(三种不同格式的报告结果请参见附件) ,为便于浏览测试结果,我们需要将结果导出为 HTML 格式文件,如图:除了对测试结果进行导出操作外,我们还可以将本次测试的全部内容进行保存,可以当作是一个测试用例模板,方便以后操作。选择文件
21、 File 菜单下的 Save 或 Save As,进行保存,如图:3、测试脚本分析通过以上的介绍,我们基本上了解了 IxChariot 软件的使用方法,接下来,我们对其中两个比较重要的部分进行具体分析,一个是对脚本分析,一个是对结果分析。编写脚本:在 IxChariot 中,为我们内置了很多脚本,这在前面已经介绍过了,其实 IxChariot还提供了脚本编写的功能,如果我们对网络协议及脚本编写比较熟悉的话,我们可以选择自己编写合适的脚本进行测试。点击桌面上的“IxChariot Console”图标,在 IxChariot 界面中选择菜单栏里的“Tools”下的“Edit Scripts”选
22、项,进入脚本编辑界面,如图:界面中的黑色区域,是命名区域,我们要在这里填写本次编辑的脚本的名称。界面中的黄色区域,代表我们可以向脚本中插入的内容,比如循环结构、终端发送数据的大小等,全部可以插入的内容都可以从菜单栏的“Insert”下找到,如图:界面中的红色区域,是整个脚本的代码区域。 “Line”表示代码行数, “Endpoint 1”和“Endpoint 2”分别表示代码中各终端所包含的内容。我们可以在任意适当的位置进行插入代码、删除代码、修改代码中的参数等等操作。界面中的蓝色区域,对应于代码区域中所有带有“() ”括号标志的部分,这里所有选项都是我们可以手工更改的,比如:“initial
23、_delay”休眠时间、“number_of_timing_records”发送的总的记录数等等。每一列代表的含义如下:Variable Name:变量名称;Current Value:当前值;Default Value:默认值;Comment:代表内容。(注意:在需要更改这些参数的时候,我们只需要修改“Current Value”当前值,而“Default Value”默认值不要修改。 )脚本编写完成后,点击菜单栏“File”下的“Save”或“Save As”进行保存即可。脚本分析:其实 IxChariot 内置的脚本已经很丰富并且实用,我们可以直接进行使用,对于不同的测试环境,我们只需要
24、改变其中的一些参数值即可,在本例中我们选择的是用来测试吞吐量的 Throughput.scr 脚本。下面我们就具体分析一下 Throughput.scr 脚本。首先我们来大致看一下 Throughput.scr 的内容,如图:我们可以看到,Throughput.scr 脚本里的内容主要就是循环结构,其中带“() ”的参数都是我们可以手工修改的。Throughput.scr 脚本中主要包含以下几个参数:在实际性能测试中,我们可以根据情况对这些参数进行修改。参数 说明Initial_delay Pause before the first transcation 控制终端的在第一次传输前的休眠时间
25、Number_of_timing_records How many timing records to generate 控制测试的总的记录数Transcations_per_record Transactions per timing record 每一条记录内的发包数File_size How many bytes in the transferred file 每一个包中数据的大小Send_buffer_size How many bytes of data in each SEND 设置发送缓冲区的大小Receive_buffer_size How many bytes of data
26、 in each RECEIVE 设置接收缓冲区的大小Transcation_delay Milliseconds to pause 设置每一条记录之间的时间间隔,单位是微秒Send_datatype What type of data to send 设置发送数据的类型Send_datarate How fast to send data 设置发送数据的速率Destination_port What port to use for Endpoint2 设置目的端口Close_type How collection are terminated 设置连接的终止Source_port What
27、port to use for Endpoint1 设置源端口虽然一个 Throughput.scr 脚本中包含如此多的参数,但具体应用中,主要设置的参数也只有以下几个:Number_of_timing_records、Transcations_per_record 和 File_size。其余选项均可以选择默认即能完成测试任务。例如:我们将 Number_of_timing_records 设置为 100(默认值 100) ,也就是说我们这一次的测试记录总计会执行 100 次,这个数值会反应在“Test Setup”中的“Timing Records Completed”里,如果我们将这个数
28、值更改为 200,则“Timing Records Completed”的显示如图:Transcations_per_record 设置为 100(默认值 1) ,设置为 100 的意思也就是说在每一条测试记录(即 Number_of_timing_records)中会执行 100 次传输。Number_of_timing_records 和 Transcations_per_record 的乘积将会反应在“Raw Data Totals”中的“Transaction Count”里。例如我们将 Number_of_timing_records 设置为200,Transcations_per_
29、record 设置为 10,则结果如图:File_size 设置为 512(默认值 100000) ,这个数值的大小即决定每次发送的一个数据包所包含的数据的大小,而 Number_of_timing_records、Transcations_per_record 和File_size 这三项的乘积也就是我们在这一次 Throughput 测试中,我们将总共发送100100512bytes 的数据。这个数值将反应在“Raw Data Totals”中的“Bytes Sent by E1/E2”中,如图:Transcation_delay 设置为 100(默认值 0) 。这个参数意味着,而每一条记
30、录中间的间隔时间是 1 秒。而 Number_of_timing_records 和 Transcations_per_record 这两项的乘积再加上 Transcation_delay 的时间将决定一次测试所需的时间。如何指定数据帧长?通过使用 Wireshark 抓包分析,指定过滤条件为“ip.addr eq 2.1.1.2 and ip.addr eq 1.1.1.2 ”,显示的抓包结果,数据大小是 512bytes,也就是我们设置的 File_size 大小。而整个数据帧的大小包括 20 bytes 的 tcp 包头,20 bytes 的 ip 包头,14 bytes 的数据链路层包
31、头,再加上 512 bytes 的数据,在实际中传输的帧长度是 566 bytes,源地址是 2.1.1.2,目的地址是 1.1.1.2,如图:再随便设定一个数值比如 700bytes,其余选项不变,我们再抓包看一下是否生效,如图:我们可以看到 File_size 的设置已经生效。通过这个参数,我们就可以用不同大小的数据进行吞吐量的测试。但有两点需要我们注意:一是,当我们设置的 File_size 的大小超过 1460 的时候,IxChariot 会对数据报进行分片处理,比如我们将数据的大小设置为 1600,再通过抓包分析,我们会看到数据已经被分割为两个数据报,一个数据报的数据大小是 1460
32、,一个数据报的数据大小是 140,如图:二是,如果我们要按照 RFC 2544 的标准,进行 64、128、256、512、1518 bytes 不同大小的数据帧进行吞吐量测试,我们就需要计算一个数据帧中除去 54 bytes 的包头后数据的大小应设置为多大,也就是 File_size 的大小。以 64 bytes 大小的数据帧为例,一个64 bytes 的数据帧 =54 bytes(包头)+ 10 bytes(数据) ,所以我们应该在脚本中将File_size 的大小设置为 10 bytes。4、测试结果分析接下来,我们再对测试出来的结果报告进行分析。对报告的分析,我们可以从“IxChari
33、ot Test”界面中的黄色区域,也就是我们刚才提到的用来观察整个测试过程的那一部分来介绍,如图:图中所示的红色区域中的每一个选项,都与我们导出的报告(格式为 HTML、Text)是一样的,所以通过这里我们就可以看到整个测试的结果。首先第一项, “Test Setup”我们已经讲过了,是整个测试过程的一个状态的显示。第二项, “Throughput”吞吐量,是指在没有帧丢失的情况下,设备的最大速率。里面主要包含以下结果,如图:选项 说明Timing Records Completed 测试记录完成的情况95% Confidence Interval 95%可靠区间 1Average(Mbps)
34、 平均吞吐量,单位是 MbpsMinimum(Mbps) 最小吞吐量,单位是 MbpsMaximum(Mbps) 最大吞吐量,单位是 MbpsMeasured Time(sec) 测量时间,单位是 second(秒)Relative Precision 相对精度 2第三项, “Transaction Rate”传输速率,这里的传输速率并不是指每秒传输的数据量大小,而是指每秒脚本传输执行的量(可以参考帮助文档里的 The Transaction Rate Tab on page 7-17) 。里面主要包含以下结果,如图:选项 说明Timing Records Completed 测试记录完成的情
35、况95% Confidence Interval 95%可靠区间Transaction Rate Average 平均传输速率Transaction Rate Minimum 最小传输速率Transaction Rate Maximum 最大传输速率Measured Time(sec) 测量时间,单位是 second(秒)1 “95%可靠区间 ”,表示总体参数有 95%的概率在某一范围内。通俗的理解就是做 100 次抽样,算得 100个可信区间,平均有 95 个估计正确,估计错误的只有 5 次,得出的结果这个值就是最终的参考区间。2 “Relative Precision”的值的大小与 Tim
36、ing Records 有关(越小越好) 。Relative Precision 相对精度第四项, “Response Time”反应时间,是指一个传输记录完成需要的时间。主要包含以下结果,如图:选项 说明Timing Records Completed 测试记录完成的情况95% Confidence Interval 95%可靠区间Response Time Average 平均响应时间Response Time Minimum 最小响应时间Response Time Maximum 最大响应时间Measured Time(sec) 测量时间,单位是 second(秒)Relative Pr
37、ecision 相对精度第五项, “Raw Data Totals”原始数据合计,主要包含以下结果,如图:选项 说明Timing Records Completed 测试记录完成的情况Transaction Count 传输记录总数 3Bytes Sent by E1 Endpoint1 发送的数据总量 4Bytes Received by E1 Endpoint1 接收的数据总量 5Measured Time(sec) 测量时间,单位是 second(秒)Relative Precision 相对精度第六项, “Endpoint Configuration”终端的配置信息,包含以下结果,如图
38、:3 这个值也就是脚本中的 Transcations_per_recordNumber_of_timing_records 的值。4 这个值也就是脚本中的 Transcations_per_recordNumber_of_timing_recordsFile_size 的值。5 这个值与 Transaction Count 相等选项 说明Timing Records Completed 测试记录完成的情况E1 Version 终端 1 的版本信息E1 Build Level 终端 1 的构造级别 6E1 Product Type 终端 1 的产品类型E1 Operating System 终端
39、 1 的操作系统E2Version 终端 2 的版本信息E2 Build Level 终端 2 的构造级别E2 Product Type 终端 2 的产品类型E2 Operating System 终端 2 的操作系统除了,查看这些测试结果外,我们还可以对比分析不同的测试结果。双击桌面的“IxChariot Console”图标,在弹出的初始界面中,选择菜单栏“Tools”下的“Compare Tests”选项,如图:通过选择“Compare Tests”我们可以将多个测试结果进行对比分析,从而更加直观的查看到,哪一条测试的结果更接近于我们理想的状况。点击“Compare Tests”将弹出“
40、IxChariot Comparison”界面,在文件菜单“File”下,选择“Open Test”打开我们需要进行对比分析的测试结果文件。由于一次只能打开一个文件,所以要对比分析多个结果的时候,需要重复此步骤。通过对比分析数据和图表,我们就可以清晰的看到不同测试结果的性能状况,如图:6 这个数值是由 IXIA 建立的内部使用的一个数值,是用来与 IXIA 进行技术支持的时候使用的。进行对比分析后,我们还可以对本次对比的情况进行保存。点击菜单栏“File”下的“Save Comparison”或者“Save Comparison As”将本次结果保存,直接命名即可,无需选择保存位置,等到需要再次浏览的时候,点击菜单栏“File”下的“Open Comparison”在下拉菜单中选择打开即可。如图: