OpenSTA使用详解
![OpenSTA使用详解_第1页](https://file2.zhuangpeitu.com/fileroot2/2021-12/28/9e68d4f6-93df-497b-9381-c0a2d47b816b/9e68d4f6-93df-497b-9381-c0a2d47b816b1.gif)
![OpenSTA使用详解_第2页](/images/s.gif)
![OpenSTA使用详解_第3页](/images/s.gif)
《OpenSTA使用详解》由会员分享,可在线阅读,更多相关《OpenSTA使用详解(11页珍藏版)》请在装配图网上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除 [ 官方网站 www.opensta.org OpenSTA是一个免费的、源代码开放的web 性能测试工具。 李娜 2010-5-16 目录 1 OpenSTA简介 3 1.1 总括 3 1.2 OpenSTA的组成部分 3 1.3 什么是性能指标收集器 3 2 OpenSTA的安装 4 2.1 OpenSTA的安装图解 4 3 OpenSTA的使用 7 3.1 如何录制测试脚本 7 3.2 生成性能指标收集器 9 3.3 组成测试环境 11 3.4 并发测试 12 3.5 Script变量实
2、现参数化 13 3.6 DOM对象实现关联 16 3.7 设置负载生成器 18 3.8 如何添加Task Group 18 4 附录 21 4.1 小结 21 4.2 参考文献 21 1 OpenSTA简介 1.1 总括 OpenSTA是一个免费的、源代码开放的web 性能测试工具,本文档主要介绍OpenSTA的原理、组成部分、录制脚本的过程等等。OpenSTA 是专用于B/S 结构的、免费的性能测试工具。它的优点除了免费、源代码开放的优点外,还能对录制的测试脚本进行,按指定的语法进行编辑。测试工程师在录制完测试脚本后,只需要了解该脚本语言的特定语法知识,就可以对测试脚本进行
3、编辑,以便于再次执行性能测试时获得所需要的参数,之后进行特定的性能指标分析。OpenSTA 以最简单的方式让大家对性能测试的原理有较深的了解,其较为丰富的图形化测试结果大大提高了测试报告的可阅读性。 总括图: 1.2 OpenSTA的组成部分 OpenSTACommander ——主要控制应用程序;NameServer ——CORBA 背景处理器,保证OpenSTA 各个组成部分之间的交流。(NameServer 是安装OpenSTA 时自动安装的,正常运行时可以在Windows 任务栏的右侧看到图标 ,如果没有正常运行或者被停止了图标显示为红色巴叉。) 1.3 什么是性能指标收集器
4、 性能指标收集器(即Collector)是用户定义的一组问题, 决定在测试过程中哪些性能指标需要记录。包括两种类型: 1)NT Performance Collectors 用于采集运行WinNT 或Win 2000 的主机的性能指标.。 2)SNMP Collectors 用于采集主机和其他运行SNMP agent 或proxy SNMP agent 的SNMP 数据。Collector 的设置将在下面如何录制测试脚本中介绍。 2 OpenSTA的安装 2.1 OpenSTA的安装图解 下载OpenSTA安装包,双击安装即可。 安装OpenSTA 后,在“所有程
5、序”中出现OpenSTA 的三个工具程序,如下图: 3 OpenSTA的使用 3.1 如何录制测试脚本 3.1.1检查OpenSTA NameServer 状态为运行中,即图标显示为,。(NameServer 是安装OpenSTA 的同时被安装的,正常运行时,可以在Windows任务栏的右侧看到图标。) 3.1.2运行“OpenSTA Commander”,界面显示为下图: 3.1.3鼠标点“Scripts ”,通过右键菜单“New Script ”->“HTTP”生成新脚本,脚本名称缺省为NEWSCRIP。还可以菜单栏"file"->“New Script”->“HTTP”。 3
6、.1.4双击新脚本,打开Script Modeler 窗口,在Options菜单中设置Browser 和Gateway,一般情况下,保持Gateway 的缺省设置。 3.1.5按工具栏中的红色圆钮,自动打开指定的浏览器,输入需要录制的系统URL,显示被测试网站的首页内容。在登陆成功之后,执行各个既定的操作步骤。按工具条上的方框按钮,或直接退出浏览器,可以停止脚本的录制,这是在Script Modeler窗口中将看到被录制下来的脚本语句。 3.2 生成性能指标收集器 3.2.1鼠标点“Collectors”,通过右键菜单生成新指标收集器,缺省为NEWCOLLECTOR。 3.2.2通过b
7、rowse Queries 浏览并设置需要收集的性能指标,如下图: 3.3 组成测试环境 3.3.1在Tests中新建一个NEWTEST,将测试脚本和性能指标收集器拖到该Test 中,(注意:按住图标拖到task1或task2中)如下图: 3.3.2按工具栏中的绿色箭头,执行测试,测试过程中可以查看“Monitoring”页签的内容,测试结束后,该页签为空。 3.3.3测试结束后,点工具按钮下方的Results 页签,显示所记录的测试结果数据,如下图: 3.4 并发测试 OPENSTA支持并发测试,可以模拟多个用户同时多次发出http请求,要在机器上运行多个用户测试任务,需要在组织
8、测试案例时,设定VUs属性,见下图: 3.5 Script变量实现参数化 3.5.1 创建变量 通过Script Modeler的菜单 Variables - Create 来创建变量,如下图: 1、Name —— 设置变量名。 2、Scope —— 设置变量范围,非常重要的一个属性!有以下几种范围: 1) Local 某变量范围设置为Local后,虚拟用户只能在自己当前运行的脚本内使用该变量,而无法使用其他用户或其他脚本内的该变量。可能刚开始不好理解,让我们用下面的图来表示虚拟用户(Virtual User)、脚本(Script)、变量访问范围(Scope)的关系
9、: 2) Script 变量范围设置为Script,则表示运行时所有虚拟用户共用同一个Script里的变量。比如4个用户虚拟用户一起运行脚本A,假设脚本A中有一个设置为Script范围的变量B,则4个虚拟用户共用变量B,如果有人对变量B进行修改,则会影响到其他人。如下图: 3) Thread OpenSTA 中,每个虚拟用户是一个单独的线程,单变量范围设置为Thread后,则表示该变量在单个虚拟用户的线程内共享,很奇妙的是它定义在Script中却能够跨越Script共享同一变量。因此,如果要设置Thread范围多个Script共享同一变量,必须在每个Script
10、中定义它。通常我们会把这样的变量定义在Global_Variables.INC文件中。这是一个全局变量文件,我们的每个脚本都会在中引用它,如: Include "GLOBAL_VARIABLES.INC" Thread范围的变量范围使用如下图: 4) Global 设置为Global的变量可想而知范围最大,即变量在所有虚拟用户,所有脚本中共享。同样,变量必须在每个脚本中定义或是在Global_Variables.INC中定义。如下图: 3、Value —— 设置值的来源,可以是自己输入的数值(Variable)、数组(Value List)、文件中的数据(
11、File)、数据库中的数据(Database)等。 4、Order —— 变量取值的顺序,分为:按顺序取(Sequential)和随机取(Random)。注意,当数据取完时,会从头开始取数据。 5、Type —— 变量类型,分为字符串(Character)和数字(Integer)。 3.5.2 使用定义好的变量 假如我们在刚才的步骤中创建了USERNAME和PASSWORD两个变量,Scope定义为SCRIPT,再创建MY_USERNAME和MY_PASSWORD两个Local变量。在Definitions中的定义如下: CHARACTER*512 USERNAME ( "p
12、hillip", "allan", "david", "robert", "donna" ), SCRIPT CHARACTER*512 PASSWORD ( "pillihp", "nalla", "divad", "trebor", "annod" ), SCRIPT CHARACTER*512 MY_USERNAME, LOCAL CHARACTER*512 MY_PASSWORD, LOCAL 为了让所有用户在同一个脚本中使用同一个变量,解决并发的问题,我们必须在使用变量前使用互斥锁(MUTEXLocking)。如下: ACQUIRE MUTEX "LOG
13、IN" NEXT USERNAME NEXT PASSWORD SET MY_USERNAME = USERNAME SET MY_PASSWORD = PASSWORD RELEASE MUTEX "LOGIN" 过 程:首先,加锁(ACQUIRE MUTEX),并取名为LOGIN,然后使用NEXT语句获取USERNAME、PASSWORD变量的下一个数据,然后使用SET语句将取出的值赋值给本地变量MY_USERNAME、MY_PASSWORD,然后释放锁(RELEASE MUTEX)。 有了上面的四种不同范围的变量,相信要实现不同类型的参数化就变的
14、相当的简单和方便了。 3.6 DOM对象实现关联 DOM是Document Object Model文档对象模型的缩写。DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标准组件。通过DOM,我们可以动态的获取返回的 HTML或XML,并方便的取出里面相应节点的内容进行检查或他用。OpenSTA在录制时会把这些信息记录在一个后缀为.ALL的文件中,光标定位到 PRIMARY POST URI 或是 PRIMARY GET URI处,点击工具栏黄色右箭头按钮,如图: 现在我们要动态的获取页面的返回值:“You are great!”,我们选中DOM ta
15、b中的HTML Tree,找到“You are great!”,选中,右键点击“Address”,如图: 在弹出的对话框中输入变量的名字,比如:ReturnText,确定后,代码中添加了如下内容: LOAD RESPONSE_INFO BODY ON 1 & INTO ReturnText & WITH "HTML(0)/BODY(0)/FONT(0):TEXT:(0)" 然后就可以直接使用ReturnText变量了,我们可以用REPORT函数输出ReturnText来检查是否正确。 REPORT ReturnText 每次访问页面的时候Coo
16、kie的值都会不一样,OpenSTA自动为我们处理了这个需要动态获取的东西,处理的方式和刚才的ReturnText是一样的。 3.7 设置负载生成器 负载生成器机器即被控制 执行测试的机器(Loader),必须运行OpenSTA Name Server,右键 - Configure - Repository Host- 输入运行了OpenSTA Commander的主控机器(Controller)的IP。注意修改了Repository Host后要重启服务。这样,在主控制机器(Controller)的Commander中的设置Host Name - 输入负载生成器机器的IP。搞定。 这样
17、做似乎有一些确定,因为假如我要控制别的机器运行测试案例,需要在别的机器上指定我的机器的IP,当我要用另一台机器做控制端(Controller)时,又需要修改那些机器的设置,不像LoadRunner一样方便,不需要修改什么。 3.8 如何添加Task Group 在Commander中添 加一个Task Group,首先点击Tests右键创建一个Test,然后在左边的目录树中把要运行的Script或是Collector拖动拖到Task Group的TaskX(1,2,3...)列,可以看到,一个Task Group可以有多个Task,这里要注意的是: Collector不允许和S
18、cript放在同一个Taks Group。 Task Group有多个Task时,执行顺序是按Task编号执行,比如有四个Task,执行顺序是:Task1 → Task2 → Task3 → Task4。 如果是多用户执行多个Task,某个用户先执行完Task1,不会等待其他用户执行完Task1,而是直接执行后面的Task2。即,用户不会集合,都是单独执行。 Task Group各个参数选项说明,首先看看Task Group有哪些列: Task Group列是Task Group的名称和说明信息。 Start列中可以设置Task Group的开始时间(S
19、tart Task Group),分为:立即开始(Immediately)、某个时间开始(Scheduled)、从现在开始计时多久后开始(Delay)。结束Task Group的条件(Stop Task Group),分为:设置整个Task Group循环执行多少次后完成(On Completion),手动控制完成(Manually),固定多长时间后完成(After fixed time)。 Status列表示当前Task Group的状态,执行前状态为:有效(Enabled),执行后会出现:运行中(Running)、失败(Fail)等状态。 Host列是负载生成器的主机名称或IP
20、,这里可以设置其他远程机器运行负载,后面会介绍如何设置。 VUs列是虚拟用户设置相关的内容。界面上有些内容显示不全,因此使用Spy++取出完整的内容,看下图: * Total number of virtual users for this task group -- 指定task group的总虚拟用户数 * Number of virtual users for Timer results -- 指定需要进行Timer计时统计的虚拟用户数,因为执行过程中,统计事务执行时间等操作也会造成一定的消耗,因此,可以指定只有部分的虚拟用户收集进行自己的时间统计数据,这个和”
21、抽样统计“的思路差不多。 * Number of virtual users for HTTP results -- 指定需要统计HTTP results的虚拟用户数,和上面意思差不多,抽样统计。 * Generate timers for each page -- 为脚本中每个页面进行时间统计。 * Introduce virtual users in batches -- 设置是否将虚拟用户分成几批来执行,选中的话会在右边出现一个Batch Start Options。 * Interval between batches -- 设置每批用户执行的间隔时间。 *
22、Number of virtual users per batch -- 设置每批用户的数量。 * Batch ramp up time (seconds) -- 设置每批执行的时间。 *关于按批执行,执行的规律是比较奇怪的,比如虚拟用户总数设置为20,每批间隔时间设置为2秒,每批用户数为5,每批运行时间为10秒,则相对于每批Batch来看,运行情况如下: 然而,在同一批内的五个虚拟用户是如何执行的呢?是在10秒内同时并发执行一次?多次?还是10秒内按顺序执行?经过试验,发现同一批内的五个虚拟用户是按顺序来执行的,因为每批用户数是5,每批运行时间是10秒,因此,按顺序
23、执行平均分下来每个用户需要执行10/5=2秒,在2秒内,虚拟用户只执行一次,然后2秒后,下一个用户开始执行。同一批内用户执行情况如下图: Task列是设置当天列的Task的一些基本信息,界面上有些字也不全,补全后如图: * Task Termination -- Task 结束方式,分为两种:循环执行指定次数后停止(On Completion)、循环执行指定时间后停止(After Fixed Time)。当选择On Completion时,在下面的文本框中输入需要循环的次数,当选择After Fixed Time时,在下面的文本框中输入需要循环执行的时间。
24、 * Delay between each iteration -- 设置相邻两次迭代之间的时间间隔,分为两种:固定时间(Fixed Delay)、可变时间(Variable Delay)。当选中Fixed Delay时,在下面的文本框中输入固定的间隔时间(Delay),当选中Variable Delay时,则输入间隔时间范围的最小值(Minimum)和最大值(Maximum)。 4 附录 4.1 小结 总体感觉OpenSTA还是不错的,小巧,简洁,在构建一个场景相对简单的性能测试案例时,OpenSTA是一个不错的选择。然而OpenSTA又有着许多不足:脚本语言过于复杂,自定义脚本相当困难;似乎不支持集合点的设置;Results结果报告的图表太简陋,功能太少;负载生成器的被控端设计不合理。总之一句话,不如LoadRunner好使! 4.2 参考文献 丰富的网络资源 《OpenSTA帮助文档》 《World2007实用教程》 清华大学出版社 王诚君编著 【精品文档】第 11 页
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。