性能测试工具 IxChariot:Tcl脚本调用方法介绍

这篇具有很好参考价值的文章主要介绍了性能测试工具 IxChariot:Tcl脚本调用方法介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ixChariot是一款功能强大的性能测试软件,可用来测试有线和无线性能,可以模拟真实应用程序流量,并提供关键性能指标,包括吞吐量、丢包、抖动、延迟、MOS等。本文简单介绍如何使用IxChariot Tcl API来实现自动化跑流。

IxChariot测试网络

一个基本的IxChariot测试网络主要包括三个部分:

  • IxChariot控制端:可以安装IxChariot软件的Windows PC
  • Endpoint 1:接收IxChariot控制端的测试脚本和数据,与Endpoint 2 进行跑流测试,并将所有测试结果返回到IxChariot控制端。
  • Endpoint 2:与Endpoint 1通信,接收Endpoint 1的测试脚本和数据,并将测试结果返回给Endpoint 1

性能测试工具 IxChariot:Tcl脚本调用方法介绍

通常在IxChariot控制端电脑的IxChariot软件配置跑流脚本,在Endpoint 1Endpoint 2 两个电脑上安装并启动Endpoint。然后就可以在IxChariot控制端运行跑流脚本,测试结果会返回到控制端。

IxChariot软件页面的手动配置这里就不介绍了,下面主要介绍如何使用Chariot API来实现自动化跑流。

IxChariot API简介

IxChariot API支持使用C语言和Tcl脚本来驱动IxChariot跑流,我们可以通过IxChariot API来创建、执行、保存和提取测试结果。

下图是IxChariot包与IxChariot API、endpoint之间的工作流程。

性能测试工具 IxChariot:Tcl脚本调用方法介绍

IxChariot API中的对象是分层的,其包含的分层结构如下图:

性能测试工具 IxChariot:Tcl脚本调用方法介绍

以下对象在测试对象中单独实例化,然后添加到测试对象示例中:

pair

hardware pair

VoIP pair

VoIP hardware pair

application group

video pair

multicast group

video multicast group

multicast pair

channel

receiver

IxChariot测试必须至少包含一个 pair 对象:pair,hardware pair, VoIP pair, video pair, multicast group, 或者 video multicast group对象实例。当测试开始执行时,会自动创建时间记录(timing record)对象实例。

IxChariot Tcl包提供的方法可在帮助文档中查看。

性能测试工具 IxChariot:Tcl脚本调用方法介绍

IxChariot环境安装

本文主要介绍IxChariot Tcl API的简单使用,这里介绍Tcl跑流的环境安装步骤。

1. 安装IxChariot

在IxChariot控制端电脑(Windows系统)上安装,我使用的是默认安装路径:C:\Program Files (x86)\Ixia\IxChariot

2. 安装endpoint

安装系统平台对应的endpoint,支持Windows、Linux和macOS系统。

1、Windows系统安装

Windows系统双击安装即可。

启动endpoint的cmd命令:

$ net start IxiaEndpoint

停止endpoint进程的cmd命令:

$ net stop IxiaEndpoint

2、Linux系统安装

Linux rpm包安装方法:

$ rpm -ivh pelinux_amd64_95.rpm

Linux 源码包安装方法:

$ cd endpoint
$ tar -xvzf pelinux_amd64_730.tar.gz
$ ./endpoint.install accept_license

启动endpoint:

$ setsid  /usr/local/Ixia/endpoint

停止endpoint进程:

$ /usr/local/Ixia/endpoint –k

3. 安装Tcl

使用IxChariot Tcl API时,建议在命令行执行Tcl脚本来运行IxChariot:

$ tclsh myTest.tcl

因此需要安装一下Tcl环境,Tcl下载地址:https://www.tcl.tk/software/tcltk/download.html

安装完成后,需要将tcl安装bin目录添加到环境变量。

IxChariot Tcl API

下面列举一些 IxChariot Tcl 包创建普通 pair 的一些常用方法。

chrRunOpts

用于定义和获取测试运行选项,比如设置跑流时间:

set test [chrTest new]
#设置测试时间值
set runOpts [chrTest getRunOpts $test]
chrRunOpts set $runOpts TEST_END FIXED_DURATION
chrRunOpts set $runOpts TEST_DURATION 30

必须将 TEST_END 设置为 FIXED_DURATION时,TEST_DURATION 值才会生效。

chrPair set

设置pair属性

chrPair set pair1 PROTOCOL $pro; # 设置协议
chrPair set pair1 E1_ADDR IP地址; # 设置Endpoint 1 address
chrPair set pair1 E2_ADDR IP地址; # 设置Endpoint 2 address

chrPair useScript

给pair设置测试脚本

chrPair useScript pair1 Throughput.scr;

chrPair setScriptVar

设置脚本变量,比如

chrPair setScriptVar pair1 file_size $filesize};#发送字节数
chrPair setScriptVar pair1 send_buffer_size $buffersize; # buffer大小
chrPair setScriptVar pair1 send_data_rate $datarate};#发送速率

读取结果

可以使用 chrCommonResults getchrPairResults get 方法来读取测试结果。

set runingtime [chrCommonResults get pair1 MEAS_TIME; # 运行时间
set throughput [chrPairResults get pair1 THROUGHPUT; # THROUGHPUT结果

更多API用法可参考接口文档,下面列举创建pair和VoIPPair的示例。

Tcl脚本示例

pair创建实例

set e1 "localhost"
set e2 "localhost"
set script "c:/Program Files/Ixia/IxChariot/Scripts/Throughput.scr"
set testFile "c:/Program Files/Ixia/IxChariot/tests/lbtest.tst"
set timeout 60

# (1)加载Chariot包
load ChariotExt
package require ChariotExt

# (2)创建测试对象
set test [chrTest new]
set runOpts [chrTest getRunOpts $test]
chrRunOpts set $runOpts TEST_END FIXED_DURATION
chrRunOpts set $runOpts TEST_DURATION $timeout; #设置测试运行时间
    
# (3)创建pair对象
set pair [chrPair new]

# (4)设置pair属性
chrPair set $pair E1_ADDR $e1 E2_ADDR $e2
chrPair set $pair PROTOCOL TCP; #设置协议

# (5)设置测试脚本
chrPair useScript $pair $script
chrPair setScriptVar $pair file_size 1000000;#发送字节数
chrPair setScriptVar $pair send_buffer_size 1500;#buffer大小
chrPair setScriptVar $pair send_data_rate "20 Mb";#发送速率

# (6)添加pair到测试对象中
chrTest addPair $test $pair

# (7)运行测试
chrTest start $test

# (8)等待测试结束
set $timeout [expr 10 + $timeout]
if {![chrTest isStopped $test $timeout]} {
 puts "ERROR: Test didn’t stop"
 chrTest delete $test force
 return
}

# (9)打印

puts "==========="
puts "Test setup:\n----------"
puts "Number of pairs = [chrTest getPairCount $test]"
puts "E1 address : [chrPair get $pair E1_ADDR]"
puts "E2 address : [chrPair get $pair E2_ADDR]"
# We didn’t set the protocol, but let’s show it anyway.
puts "Protocol : [chrPair get $pair PROTOCOL]"
# We’ll show both the script filename and
# the application script name.
puts "Script filename : [chrPair get $pair SCRIPT_FILENAME]"
puts "Appl script name: [chrPair get $pair APPL_SCRIPT_NAME]"

# (10)读取测试结果: 吞吐量
puts ""
puts "Test results:\n------------"
puts "Number of timing records = \
[chrPair getTimingRecordCount $pair]"

set throughput [chrPairResults get $pair THROUGHPUT]
set avg [format "%.3f" [lindex $throughput 0]]
set min [format "%.3f" [lindex $throughput 1]]
set max [format "%.3f" [lindex $throughput 2]]
puts "Throughput:"
puts " avg $avg min $min max $max"

# (11)保存测试结果
puts "Save the test..."
chrTest save $test $testFile

# (12)清理
chrTest delete $test force

return

VoIPPair创建实例

set e1 "localhost"
set e2 "localhost"
set timeout 60

# (1)加载Chariot包
load ChariotExt
package require ChariotExt

# (2)创建测试对象
set test [chrTest new]
set runOpts [chrTest getRunOpts $test]
chrRunOpts set $runOpts TEST_END FIXED_DURATION
chrRunOpts set $runOpts TEST_DURATION $timeout; #设置测试运行时间

# (2)创建voippair对象
set voippair1 [chrVoIPPair new]; # VoIP Pair创建

# (3)设置pair属性
chrPair set $voippair1 E1_ADDR $e1 E2_ADDR $e2
chrPair set $voippair1 QOS_NAME "VoIPQoS";
chrVoIPPair set $voippair1 CODEC "G711u";    

# (4)添加voippair1到测试对象中
chrTest addPair $test $voippair1

# (5)运行测试
chrTest start $test

# (6)等待测试结束
if {![chrTest isStopped $test $timeout]} {
 puts "ERROR: Test didn’t stop in 2 minutes!"
 chrTest delete $test force
 return
}

# (7)读取测试结果
# MOS
set mos [chrPairResults get $voippair1 MOS_ESTIMATE]
set mos_avg [format "%.3f" [lindex $mos 0]]
puts "MOS_avg $mos_avg"        

# 时延
set delay [chrPairResults get $voippair1 END_TO_END_DELAY]
set delay_avg [lindex $delay 0]
set delay_avg [format "%.1f" $delay_avg]
puts "END_TO_END_DELAY $delay_avg"

# 丢包率
set bytes_recv_e2 [chrCommonResults get $voippair1 BYTES_RECV_E2]
# puts ""
# puts "BYTES_RECV_E2: $bytes_recv_e2"
set bytes_sent_e1 [chrCommonResults get $voippair1 BYTES_SENT_E1]
# puts "BYTES_SENT_E1: $bytes_sent_e1"
set bytes_lost_rate [format "%.4f" [expr ($bytes_sent_e1 - $bytes_recv_e2)/$bytes_sent_e1]]
set bytes_lost_rate [expr $bytes_lost_rate*100]
puts "BYTES_LOST_RATE $bytes_lost_rate"

# (11)保存测试结果
puts "Save the test..."
chrTest save $test $testFile

# (12)清理
chrTest delete $test force

return

其它

执行tst文件

可以使用runtst工具来执行创建的tst文件:

$ cd C:\Program Files (x86)\Ixia\IxChariot
$ runtst.exe -t20 C:\\Users\DELL\\Documents\\IxChariot\\TESTS\\demo.tst d:\\test\\demo.tst

Python执行TCL脚本

除了使用Python的 os.popen 或者 subprocess.Popen 调用编写好的Tcl脚本执行测试外,也可以使用Python的Tcl库来执行Tcl命令:

from Tkinter import Tcl

tcl = Tcl()
# 加载ChariotExt库
tcl.eval("load ChariotExt")
tcl.eval("package require ChariotExt")

注意:文章来源地址https://www.toymoban.com/news/detail-478895.html

  1. 执行此Python脚本的电脑必须安装好IXChariot控制端软件,否则无法加载ChariotExt.dll动态链接库。
  2. 如果ChariotExt.dll为32位VC++环境编译,Python也需要32位。
--THE END--

到了这里,关于性能测试工具 IxChariot:Tcl脚本调用方法介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • H5性能测试以及H5性能测试工具

    背景由于公司最近项目有一个H5测试项目,功能测试不用多说,但是H5性能测试是一个大难题,于是研究下H5性能测试,下面总结下,希望能帮助自己回顾项目也希望能帮到测友。 H5性能测试的常用指标: 白屏时间:用户首次看到网页内容的时间,即第一次渲染流程完成的时间

    2024年02月14日
    浏览(61)
  • 前端性能测试必备测试工具

    我们在使用网站过程中,经常会遇到慢的问题,为了找到原因,一般需要借助工具进行检测,通过工具,可以检测出前端站点加载资源的相关详细情况。 今天,就给大家介绍几款前端性能测试分析工具,结合性能测试工具,实现通过量化的方式测试网站中诸如首字节加载时间

    2024年02月05日
    浏览(53)
  • 功能测试(八)—— APP之专项测试、性能测试、性能测试工具SoloPi

    目录 APP测试要点 目标 一、APP专项测试 1.1 兼容性 1.2 安装 1.3 卸载 1.4 升级 1.5 干扰测试(交叉事件测试) 1.6 Push推送 1.7 用户体验 二、 性能测试工具 2.1 APP性能测试工具介绍 —— SoloPi简介 2.2 APP性能测试工具 —— SoloPi使用 三、APP性能测试 3.1 CPU 3.2 内存 3.3 流量 3.4 电

    2024年02月03日
    浏览(56)
  • jmeter 性能测试工具的使用(Web性能测试)

    1、下载 该软件不用安装,直接解压打开即可使用。 2、使用 这里就在win下进行,图形界面较为方便 在目录apache-jmeter-2.13bin 下可以见到一个jmeter.bat文件,双击此文件,即看到JMeter控制面板。主界面如下: 3、创建线程组 测试计划--右键——》添加——》hreads——》线程组 设

    2024年02月10日
    浏览(71)
  • 开发工具-网络测试工具 POSTMAN 的脚本使用

    POSTMAN 是网络编程中最常用的接口测试工具之一,能够使用脚本进行连续的自动测试。这里是以本地应用版为基础环境。 参考资料: Postman接口自动化测试 postman 可以在发送请求前使用脚本进行预处理,收到响应后使用脚本进行测试。 脚本的一些测试过程可以使用类似浏览器

    2024年02月13日
    浏览(49)
  • 扒开源安卓性能测试工具moblieperf源码——开发属于你自己的性能稳定性测试工具

    moblieperf由阿里巴巴开源的Android性能测试工具 下载:官方源码地址 mobileperf github 使用: 使用pycharm打开下载的项目 使用只需要修改配置文件 config.conf 即可 运行采集:a.mac、linux 在mobileperf工具根目录下执行sh run.sh ; b.windows 双击run.bat 配置图:(简单使用只需要修改包名和设

    2024年02月19日
    浏览(57)
  • 性能测试怎么做?测试工具怎么选择?

    在当前软件测试行业,熟练掌握性能测试已经是测试工程师们面试的敲门砖了,当然还有很多测试朋友们每天的工作更多的是点点点,性能方面可能也只是做过简单的并发测试,对于编写脚本,搭建环境方面也比较陌生。今天这篇文章就给大家梳理一下如何去做性能测试,和

    2024年02月13日
    浏览(55)
  • iOS性能指标和性能测试工具

    作为一名软件测试工程师,在测试 iOS 应用的性能时,需要关注以下几个方面: 1. 响应时间:应用的启动时间、页面加载速度、接口响应时间等。 2. CPU 使用率:应用在各种操作下的 CPU 占用情况。 3. 内存使用:应用在各种操作下的内存占用情况。 4. 网络性能:应用在各种

    2024年02月13日
    浏览(54)
  • 网络性能测试工具

    网络的基本目的是有效地共享资源。利用可靠的网络测试工具建立定期的网络测试对于:了解网络的状态、确保配置更改按预期工作、检测瘫痪网络攻击、提供一流的终端用户体验。那么网络性能也是非常关键的。只要是需要快速而且大量的网络数据传输的应用都可以作为网

    2023年04月15日
    浏览(51)
  • Linux性能测试工具

    在Linux Benchmark Suite Homepage网站上列举了诸多Linux性能测试工具,包括CPU/RAM/ROM/Cache/net等性能测试。 测试工具 这个工具集中包含以下几种测试工具,我们主要使用到bw_mem工具进行Memory read和write测试。 Bandwidth benchmarks(带宽测试) Cached file read Memory copy (bcopy) Memory read Memory write Pi

    2023年04月08日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包