OpenSTA使用详解.docx
- 文档编号:2287535
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:21
- 大小:789.09KB
OpenSTA使用详解.docx
《OpenSTA使用详解.docx》由会员分享,可在线阅读,更多相关《OpenSTA使用详解.docx(21页珍藏版)》请在冰豆网上搜索。
OpenSTA使用详解
OpenSTA使用详解
官方网站www.opensta.org
OpenSTA是一个免费的、源代码开放的web性能测试工具。
李娜
2010-5-16
1OpenSTA简介
1.1总括
OpenSTA是一个免费的、源代码开放的web性能测试工具,本文档主要介绍OpenSTA的原理、组成部分、录制脚本的过程等等。
OpenSTA是专用于B/S结构的、免费的性能测试工具。
它的优点除了免费、源代码开放的优点外,还能对录制的测试脚本进行,按指定的语法进行编辑。
测试工程师在录制完测试脚本后,只需要了解该脚本语言的特定语法知识,就可以对测试脚本进行编辑,以便于再次执行性能测试时获得所需要的参数,之后进行特定的性能指标分析。
OpenSTA以最简单的方式让大家对性能测试的原理有较深的了解,其较为丰富的图形化测试结果大大提高了测试报告的可阅读性。
总括图:
1.2OpenSTA的组成部分
OpenSTACommander——主要控制应用程序;NameServer——CORBA背景处理器,保证OpenSTA各个组成部分之间的交流。
(NameServer是安装OpenSTA时自动安装的,正常运行时可以在Windows任务栏的右侧看到图标,如果没有正常运行或者被停止了图标显示为红色巴叉。
)
1.3什么是性能指标收集器
性能指标收集器(即Collector)是用户定义的一组问题,决定在测试过程中哪些性能指标需要记录。
包括两种类型:
1)NTPerformanceCollectors用于采集运行WinNT或Win2000的主机的性能指标.。
2)SNMPCollectors用于采集主机和其他运行SNMPagent或proxySNMPagent的SNMP数据。
Collector的设置将在下面如何录制测试脚本中介绍。
2OpenSTA的安装
2.1OpenSTA的安装图解
下载OpenSTA安装包,双击安装即可。
安装OpenSTA后,在“所有程序”中出现OpenSTA的三个工具程序,如下图:
3OpenSTA的使用
3.1如何录制测试脚本
3.1.1检查OpenSTANameServer状态为运行中,即图标显示为,。
(NameServer是安装OpenSTA的同时被安装的,正常运行时,可以在Windows任务栏的右侧看到图标。
)
3.1.2运行“OpenSTACommander”,界面显示为下图:
3.1.3鼠标点“Scripts”,通过右键菜单“NewScript”->“HTTP”生成新脚本,脚本名称缺省为NEWSCRIP。
还可以菜单栏"file"->“NewScript”->“HTTP”。
3.1.4双击新脚本,打开ScriptModeler窗口,在Options菜单中设置Browser和Gateway,一般情况下,保持Gateway的缺省设置。
3.1.5按工具栏中的红色圆钮,自动打开指定的浏览器,输入需要录制的系统URL,显示被测试网站的首页内容。
在登陆成功之后,执行各个既定的操作步骤。
按工具条上的方框按钮,或直接退出浏览器,可以停止脚本的录制,这是在ScriptModeler窗口中将看到被录制下来的脚本语句。
3.2生成性能指标收集器
3.2.1鼠标点“Collectors”,通过右键菜单生成新指标收集器,缺省为NEWCOLLECTOR。
3.2.2通过browseQueries浏览并设置需要收集的性能指标,如下图:
3.3组成测试环境
3.3.1在Tests中新建一个NEWTEST,将测试脚本和性能指标收集器拖到该Test中,(注意:
按住图标拖到task1或task2中)如下图:
3.3.2按工具栏中的绿色箭头,执行测试,测试过程中可以查看“Monitoring”页签的内容,测试结束后,该页签为空。
3.3.3测试结束后,点工具按钮下方的Results页签,显示所记录的测试结果数据,如下图:
3.4并发测试
OPENSTA支持并发测试,可以模拟多个用户同时多次发出http请求,要在机器上运行多个用户测试任务,需要在组织测试案例时,设定VUs属性,见下图:
3.5Script变量实现参数化
3.5.1创建变量
通过ScriptModeler的菜单Variables-Create来创建变量,如下图:
1、Name——设置变量名。
2、Scope——设置变量范围,非常重要的一个属性!
有以下几种范围:
1)Local
某变量范围设置为Local后,虚拟用户只能在自己当前运行的脚本内使用该变量,而无法使用其他用户或其他脚本内的该变量。
可能刚开始不好理解,让我们用下面的图来表示虚拟用户(VirtualUser)、脚本(Script)、变量访问范围(Scope)的关系:
2)Script
变量范围设置为Script,则表示运行时所有虚拟用户共用同一个Script里的变量。
比如4个用户虚拟用户一起运行脚本A,假设脚本A中有一个设置为Script范围的变量B,则4个虚拟用户共用变量B,如果有人对变量B进行修改,则会影响到其他人。
如下图:
3)Thread
OpenSTA中,每个虚拟用户是一个单独的线程,单变量范围设置为Thread后,则表示该变量在单个虚拟用户的线程内共享,很奇妙的是它定义在Script中却能够跨越Script共享同一变量。
因此,如果要设置Thread范围多个Script共享同一变量,必须在每个Script中定义它。
通常我们会把这样的变量定义在Global_Variables.INC文件中。
这是一个全局变量文件,我们的每个脚本都会在中引用它,如:
Include"GLOBAL_VARIABLES.INC"
Thread范围的变量范围使用如下图:
4)Global
设置为Global的变量可想而知范围最大,即变量在所有虚拟用户,所有脚本中共享。
同样,变量必须在每个脚本中定义或是在Global_Variables.INC中定义。
如下图:
3、Value——设置值的来源,可以是自己输入的数值(Variable)、数组(ValueList)、文件中的数据(File)、数据库中的数据(Database)等。
4、Order——变量取值的顺序,分为:
按顺序取(Sequential)和随机取(Random)。
注意,当数据取完时,会从头开始取数据。
5、Type——变量类型,分为字符串(Character)和数字(Integer)。
3.5.2使用定义好的变量
假如我们在刚才的步骤中创建了USERNAME和PASSWORD两个变量,Scope定义为SCRIPT,再创建MY_USERNAME和MY_PASSWORD两个Local变量。
在Definitions中的定义如下:
CHARACTER*512USERNAME("phillip","allan","david","robert","donna"),SCRIPT
CHARACTER*512PASSWORD("pillihp","nalla","divad","trebor","annod"),SCRIPT
CHARACTER*512MY_USERNAME,LOCAL
CHARACTER*512MY_PASSWORD,LOCAL
为了让所有用户在同一个脚本中使用同一个变量,解决并发的问题,我们必须在使用变量前使用互斥锁(MUTEXLocking)。
如下:
ACQUIREMUTEX"LOGIN"
NEXTUSERNAME
NEXTPASSWORD
SETMY_USERNAME=USERNAME
SETMY_PASSWORD=PASSWORD
RELEASEMUTEX"LOGIN"
过程:
首先,加锁(ACQUIREMUTEX),并取名为LOGIN,然后使用NEXT语句获取USERNAME、PASSWORD变量的下一个数据,然后使用SET语句将取出的值赋值给本地变量MY_USERNAME、MY_PASSWORD,然后释放锁(RELEASEMUTEX)。
有了上面的四种不同范围的变量,相信要实现不同类型的参数化就变的相当的简单和方便了。
3.6DOM对象实现关联
DOM是DocumentObjectModel文档对象模型的缩写。
DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标准组件。
通过DOM,我们可以动态的获取返回的HTML或XML,并方便的取出里面相应节点的内容进行检查或他用。
OpenSTA在录制时会把这些信息记录在一个后缀为.ALL的文件中,光标定位到PRIMARYPOSTURI或是PRIMARYGETURI处,点击工具栏黄色右箭头按钮,如图:
现在我们要动态的获取页面的返回值:
“Youaregreat!
”,我们选中DOMtab中的HTMLTree,找到“Youaregreat!
”,选中,右键点击“Address”,如图:
在弹出的对话框中输入变量的名字,比如:
ReturnText,确定后,代码中添加了如下内容:
LOADRESPONSE_INFOBODYON1&
INTOReturnText&
WITH"HTML(0)/BODY(0)/FONT(0):
TEXT:
(0)"
然后就可以直接使用ReturnText变量了,我们可以用REPORT函数输出ReturnText来检查是否正确。
REPORTReturnText
每次访问页面的时候Cookie的值都会不一样,OpenSTA自动为我们处理了这个需要动态获取的东西,处理的方式和刚才的ReturnText是一样的。
3.7设置负载生成器
负载生成器机器即被控制执行测试的机器(Loader),必须运行OpenSTANameServer,右键-Configure-RepositoryHost-输入运行了OpenSTACommander的主控机器(Controller)的IP。
注意修改了RepositoryHost后要重启服务。
这样,在主控制机器(Controller)的Commander中的设置HostName-输入负载生成器机器的IP。
搞定。
这样做似乎有一些确定,因为假如我要控制别的机器运行测试案例,需要在别的机器上指定我的机器的IP,当我要用另一台机器做控制端(Controller)时,又需要修改那些机器的设置,不像LoadRunner一样方便,不需要修改什么。
3.8如何添加TaskGroup
在Commander中添加一个TaskGroup,首先点击Tests右键创建一个Test,然后在左边的目录树中把要运行的Script或是Collector拖动拖到TaskGroup的TaskX(1,2,3...)列,可以看到,一个TaskGroup可以有多个Task,这里要注意的是:
Collector不允许和Script放在同一个TaksGroup。
TaskGroup有多个Task时,执行顺序是按Task编号执行,比如有四个Task,执行顺序是:
Task1→Task2→Task3→Task4。
如果是多用户执行多个Task,某个用户先执行完Task1,不会等待其他
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OpenSTA 使用 详解