OpenSTA使用详解.docx

上传人:b****3 文档编号:2287535 上传时间:2022-10-28 格式:DOCX 页数:21 大小:789.09KB
下载 相关 举报
OpenSTA使用详解.docx_第1页
第1页 / 共21页
OpenSTA使用详解.docx_第2页
第2页 / 共21页
OpenSTA使用详解.docx_第3页
第3页 / 共21页
OpenSTA使用详解.docx_第4页
第4页 / 共21页
OpenSTA使用详解.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

OpenSTA使用详解.docx

《OpenSTA使用详解.docx》由会员分享,可在线阅读,更多相关《OpenSTA使用详解.docx(21页珍藏版)》请在冰豆网上搜索。

OpenSTA使用详解.docx

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,不会等待其他

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1