html tool

2012年4月5日星期四

转:openSTA 脚本学习

来源地址:http://blog.csdn.net/zengweifu/article/details/3943959
【popexizhi:目的,试用opensta for web ,sql 的test 和分析】
---------------------------原文-------------------------------------

2.3.1什么是脚本?

脚本构成了你用网页进行性能测试的内容。
脚本记录了使用者向服务器发出的请求,当测试开始后,脚本重现了浏览者的行为,这就是说网络应    用环境(WAE)接收了从模拟的用户传过来的并发异步的连接和需求,像真实的最终用户一样。
通过代理服务器,网关等传输http/s过程,用scl代替了http/s原始的命令。网关界面和脚本模型及scl语言一起记录了http/s活动。
用scl写脚本使你能控制脚本的内容,使你可以用变量代替它们录制的不变值。由此可以使你更好地进行性能测试。
当你录制web任务时,产生了一个.HTP文件和一个.ALL文件。.HTP文件包含了http浏览器的请求,这个文件就是被设计用来模拟和回放web任务的脚本;.ALL文件主要有.HTP文件有关,保存WAE的一些响应,包括DOM(用来模拟和跟踪脚本)。注:所有的脚本保存在存储库中。

2.3.2理解OpenSTA脚本

1.测试test:一个测试是一组使用者对精确性解释的控制,包括脚本,性能指标和测试中用到的参数。其中脚本定义了测试的内容。
2.网关gateway:网关是OpenSTA的一个组件,它的功能就像是代理服务器,连接在浏览器和web服务器。它可以通过脚本模型越过浏览器的网络设置,强迫使用代理服务器,从而记录浏览器和WAE之间的web活动和使用scl产生脚本。脚本可以用脚本模型进行模拟。
3.脚本Scripts和脚本控制语SCL:脚本控制语言ScriptControlLanguage(SCL),由CYRANO研制,用来表示脚本。SCL就是用来控制和描述录制的http/S活动。用来写脚本。
4.虚拟用户VirtualUsers:虚拟用户在OpenSTA中起着重要的作用。在测试中用来模拟真实的用户进行web活动。
5.文档对象模型地址DOMAddressing:文档对象模型dom是一个htmlorxml文档的应用程序接口,它定义了本地文档的结构和访问及操纵一个文档的方法。

2.3.3OpenSTA脚本结构

通过双击录制完的脚本我们可以打开一个脚本,查看其代码如下图所示:
注:(1)你可以使用标准工具栏来创建,保存和打开脚本,编辑打印,全屏,查找文字和显示URL的细节.
(2)Capture/ReplayToolbar(捕捉和回放工具栏):你可以用这个工具栏来记录,结束记录和回放,编译(语法检查)脚本。如下图:
(3)VariableToolbar变量工具栏:添加和编辑变量
(4)URLAddressBar网页地址栏:显示脚本中获得,GET,POST网页地址和HEAD命令。
单击可以选择一个网页地址进行测试。
(5)TitleBar标题栏:显示当前脚本的名称。
这时在代码中你会发现脚本有如下代码(部分):可以看出它主要有三个部分:
Environment测试环境部分:
浏览器,日期,以及一些全局变量。
         !Browser:IE5//
         !Date:2005-12-26
         Environment
            Description""
            Mode        HTTP
Definitions部分:包含了脚本中所有的定义:变量,常量,计时器和文件的定义。RESPONSE_CODES.INC文件包含对应http/s响应的常量的定义;GLOBAL_VARIABLES.INC文件包含了在测试中为虚拟用户所共享的全局和脚本范围内的定义的变量。
            Wait        UNITMILLISECONDS
    Definitions
            !StandardDefines
            Include"RESPONSE_CODES.INC"
            Include"GLOBAL_VARIABLES.INC"
            CHARACTER*512MY_USERNAME,LOCAL
        CHARACTER*512MY_PASSWORD,LOCAL
             ………
Code代码部分包含了你记录和定义的脚本行为来表示web活动的命令,由控制脚本行为的SCL(脚本控制语言)命令组成。
         Code
             ……………
        
           
(注意,代码中的不同颜色代表不同的意义:scl关键字命令和子句用蓝色注释绿色,字符串是红紫色,算子是红色,数字和文本是黑色)

2.3.4OpenSTA脚本的创建和建模

1.脚本模板中options菜单的使用
在你操纵新脚本之前,option菜单中有几个命令需要你修改和设置:浏览器,网关和变量。
(1).Browser(浏览器)设置:Browser(浏览器):如果你的机器上装有多个浏览器,你就要选择一个浏览器来进行脚本的录制。目前OpenSTA支持InternetExplorer4和5,以及NetscapeNavigator4.7等浏览器。(如下图)
注:如果你选择使用NetscapeNavigator4.7来进行录制,就会出现一个浏览器信息栏单击按钮定位到Netscapepreferences文件prefs.js.点击ok即可。
(2).Gateway(网关):你是想在本机器上测试还是远程的机器上测试,(Local或Remote),这时就用到gateway设置了。它提高你记录脚本的质量和记录过程的可见度。下面是选择local(左图)Remote(右图)的界面:
修改AdministrationPortPort,也可以用默认设置。Administration     Port是用来提供脚本和网关间的联系。
对于Remote(右图):在对proxy,你在远程计算机代理服务器的设置中包括:ProxyAddressandPort:你要用到的代理服务器地址和端口号。
SecureandPort:输入你要用到的安全代理服务器地址和端口号。
Bypassproxyserverforlocaladdresses:迂回代理服务器。如果你不想为所有的局部地址包括企业内部互联网使用代理服务器,就选择这个选项。
(注:你可能会更快获得地址)
Donotuseproxyserveraddressesbeginningwith:输入你不需要的网络地址。
其他选项:Console控制台选项:在脚本录制记录过程中显示一个命令行窗口,记录网关的活动(连接网页和接收到响应)。
Trace:轨迹
AddCommentforcookie为cookie添加注释。
PageTimers记录计时器。
AutomaticCookieGeneration:选择这个选项来自动化你的脚本记录的信息,如果你测试的网络应用环境WAE产生了cookies,选择这个选项会加速你的脚本的创建。它用变量唯一标识你从WAE收到的每个cookie。(cookie是当你访问某个站点时,随某个html网页   一起发到你机器上的一小段信息,好让服务器用来识别你的计算机。
(1)             Variables(变量)如下图:当你创建变量时为变量加上的前缀。
2.脚本的特征和格式:SyntaxColoring(语法颜色):略
产生计时器:产生和插入代码以计算发送http/s的请求和加载网页及脚本回放之间所消耗的时间。
产生等待时间:产生和插入代码来限定一段时间延缓脚本的执行,就是将浏览器活动先暂停一下。
创建和修改Cookies变量:自动产生和创建一些新变量(在脚本的Definitions部分)代替从WAE发过来的cookie变量,从而把脚本作为测试的一部分像一个或多个虚拟用户那    样进行回放。
HTTP命令:提供了简洁的命令来进行http请求,响应消息,检查,询问和同步的请求。命令如下:
GET命令:向接收的网址发送一个HTTPGET请求.
POST命令:为WAE发送一个HTTPPOST请求来接收一些从客户端发过来的信息.
HEAD命令:向接收的URI发送一个HTTPHEAD请求,但WAE不会返回相关的网页和对象.
LOADRESPONSE_INFOBODY命令:用全部或部分从http响应消息体发过来的数据加载一个特征变量来对tcp连接情况进行说明。它在以上三个命令后使用。
LOADRESPONSE_INFOHEADER命令:用全部或一个http响应消息标题字段加载一个特征变量来对tcp连接情况进行说明。
SYNCHRONIZEREQUESTS同步请求命令:使当前的线程立即暂缓执行,直到线程发出的所有的请求收到响应。
CONNECT命令:建立一个到名为host的计算机上的tcp连接。
DISCONNECT命令:关闭一个或全部用connect命令建立的连接。
另外,还要注意要正文左对齐等,以增强易读性。
3.       变量及Variable菜单的使用:在脚本模板中,variable菜单如下,你可以创建和修改变量。
创建变量variable>create界面如下所示:
(1)变量类型:文本Character和数字Integer两种类型
(2)变量范围scope,主要有四种:
局部范围Local:只对当前脚本中运行的虚拟用户起作用。如下图所示:
变量只在virtualUser定义该变量的脚本中起作用(而且不允许别的脚本和用户存取,它们只能参考引用和使用该变量,相似地,一个脚本不能对它引用的其他脚本中的变量进行存取)。例如变量只能在virtualuser1_script1中使用。
脚本范围Script:对当前脚本中运行的任何虚拟用户起作用。如下图所示:
变量只对脚本1中的所有用户起作用
线程Thread:对被一个特殊的虚拟用户运行的任何脚本和定义这些变量的线程起作用。例如变量可以在virtualuser1_script1-4中用,而不能被其他用户使用。但每个脚本要包含定义变量的Global_Variables.INC文件。
全局Global:对任何虚拟用户和任何脚本都起作用.是对同一个测试管理者下的任何进程有效。每个脚本要包含定义变量的Global_Variables.INC文件。
(3)变量的取值来源:
Valuelist:自己输入变量值.
File:使用文件中存在地变量值.
Database:使用数据库中保存的变量值.
(4)变量值的顺序:
Sequential:使变量从你的取值列表中连续的取值.
Random:使变量从你的取值列表中随机取值.
注意当你选择Valuelist后,单击Next后出现如下对话框:
注意:选择addvalue进行添加变量值;deletevalue删除变量值;单击GenerateValues按钮则会出现如下对话框:你可以输入变量值的前缀和后缀,值的范围,递增大小step。
好了现在你应该可以创建变量了吧,例如:CHARACTER*512USER("user1","user2","user3"),LOCAL,RANDOM。其中*512是指文本变量USER最大的字符长度,变量名后边是它的取值列表。
1)   修改变量:选择variable>motify菜单后出现的对话框和创建变量时的对话框基本相似,这里就不详细介绍了
2)       字符串替换:选择菜单variable>ReplaceInString,示例如下:
查找字符串‘ss’,查找到后替换为‘ff’,MatchCase为区分大小写之用。
4.       互斥体MUTEXlocking:
(1)
(2)AQUIREMUTEX命令
(3)RELEASEMUTEX命令
(4)使用互斥体MUTEXlocking;一定在PRIMARYPOSTURI之前插入MUTEX命令。
例如:
ACQUIREMUTEX "LOGIN"
NEXT USERNAME
NEXT PASSWORD
SET MY_USERNAME=USERNAME
SET MY_PASSWORD=PASSWORD
RELEASEMUTEX "LOGIN"
NEXT命令加载USERNAME和PASSWORD变量的一个值,SET命令使NEXT命令加载的变量本地化。
当然你要对互斥体成员进行声明如:CHARACTER*512MY_USERNAME,LOCAL,CHARACTER*512MY_PASSWORD,LOCAL

5.       CallScript
CallScript"SHOP_1"
CallScript"SHOP_1"[USER_AGENT,USE_PAGE_TIMERS]

2.4创建和编辑测试

2.4.1创建和编辑性能指标收集器

这里我们主要介绍NTPerformanceCollectors。
参照2.1创建新的性能指标,并双击它。单击按钮,弹出如下对话框:
Intervale:设定间隔一段时间来控制收集数据的频率。默认5秒。
Delta Value:记录每个时间间隔所收集的数据的差异,默认为不选。
单击Browse Queries按钮,进行性能指标的添加,出现如下对话框
在红色圆圈处你可以选择你要测试的性能指标所属的计算机。选择你想测试的性能对象和计数器
l         使用本地计算机计数器(L):收集你正在使用的计算机上的数据。
l         从计算机选择计数器(M):选择你想测试的计算机上的数据。
l         另外你还可以选择某个指标并双击它,来对其进行编辑,或选择按钮来删除它。
    单击【说明】按钮查看每个指标的详细说明,
l         性能对象和指标参照附录2

2.4.2创建和编辑测试

测试test的创建参照2.1。测试界面如下:
1)        测试面板
(1)Configuration结构(重点):设置测试的结构,包括脚本和性能指标收集器。
(2)Monitoring:用来对测试进程进行跟踪。

(3)Results
2)        测试构成:由脚本和性能指标收集器,它们可以为多个。
你可以将建好的脚本和性能指标拖到task1后的栏中就将脚本和性能指标收集器添加上了
3)        测试属性窗口
(1)                                                                       Start属性窗口(见下图):主要控制目标测试的时间表。
Start Task Group:目标开始时间设置
Scheduled:预定
Days:天;Time:时间,小时:分:秒
Immediately:立即
Delayed:延时或定时执行
Days:天;Time:小时:分:秒
Stop Task Group:目标停止时间设置
After fixed time:在固定时间之后:Time:小时:分:秒
Manually手动停止,测试直到你点击stop才停止。
另外脚本的start属性窗口中多了一个On Completion(完成n次Iteratio 设定的重复测试次数后停止),Iteratio重复次数。如下图所示:
(2)                                                                       Task1属性窗口:

Task(Termination)任务结束:
On Completion设置一个用户在测试中重复运行脚本的次数值。
Number of times each user will run this the Script during a Test-run:
After Fixed Time:设置一个任务持续的时间。
Duration of this task:任务持续时间。
Delay between each iteration of a Script Task:脚本重复运行之间的时间间隔。
Fixed delay:固定延迟
Delay:延迟的时间(秒)
Variable delay:用变量设置延迟
Mininum和Maxinum:延迟的最大和最小时限
(3)                             VUs(虚拟用户)属性窗口:
Total number of Virtual Users for the Task Group本次任务虚拟用户的总数
Number of virtual users for performance statistics用于性能统计的用户数目
Number of virtual users for Timers用于计时器的用户数目
Generate Timers For Each Page记录为在脚本中运行的每个虚拟用户加载网页所需的时间。
Introduce Virtual Users inbatches如果你想用你分配执行的虚拟用户数目来控制增加负载,就选择这个选项。
Interval between batches:每次增加负载的时间间隔,这个时段中没有新的用户产生。
Number of Virtual Users perbatch:每次增加用户的数目
Batch ramp up time(秒):每次虚拟用户加载的时间。
例如上图中是总共5个用户,在5秒钟内加载2个用户,下一次再加载2个用户时间隔10秒。
其他属性:host的属性窗口中可以更改host的名称。Status运行测试的状态。
在菜单test中用Delete Selection可以将你选中的列删除。
(4)           右键的操作:在test的构成中的性能指标对应栏(下图中为login1_1)单击右键,显示如下图:
Duplicate Task Group:复制工作负载。
Delete Task Group:删除工作负载。
当你在对应脚本一行中(login1_2)单击右键时会多出一项:
Single Step TaskGroup:单步执行工作负载。这个我们将在下边单独介绍。

2.4.3Single Step Task Group单步测试

按照上面选择右键菜单Single step Task Group选项,出现如下界面:(变化很多)
一.概述单步执行网页加载测试
    提供这个功能主要是方便你检查和解决一些测试过程中可能发生的错误,
1.工具栏:
单击按钮来结束单步测试任务,返回原来的界面,
运行
单步运行
暂停
停止
SecondaryURLs:显示次要的url
计时器
注释
处理计时器
等待时间
调用脚本
注意:你的选择都应用到了脚本中,你可以双击singleStep窗口中对应的项查看scl命令。
或者选中某项单击右键如下图:选择GotoScript查看脚本中scl命令。
还有一个Insert/RemoveBreakpoint插入或删除断点,插入的断点有图标标识。
断点也可以在重放的过程中添加。

2.面板:只有监控和结果显示面板,在结果中你会发现测试结果的图标变成了,而不是。

3.SingleStep窗口

2.4.4测试结果显示和分析

result结果面板中,右边的栏目中选择TestConfiguration选项
出现下面的图给出了test构成和定义的情况。
选择TestAuditlog选项,这个选项包含了主要的测试中发生的事件。
选择HTTP Response Time(Average per Second) v Number of Responses Graph
出现下图显示了每秒请求数目及其对应的响应时间。

2.4.5测试练习实例

附录1.OpenSTA术语表(词典)

1.性能指标(Collectors):是在测试运行时,要查看服务器性能信息的一组使用者定义的问题.它们收集的信息可以帮助你评价系统的性能。性能指标保存在存储库中,当你改变性能指标的时候,会很快影响到所有用到它的测试。
2.CORBA是Common Object Request Broker Architecture的缩写,简称通用对象请求代理体系,它由国际对象管理组织OMG制定,这个组织是一个国际性组织,现已拥有包括生产厂商、软件开发商、政府和研究机构等800多个会员。这种标准为各OMG适用对象提供了标准接口界定。它通过OMG的ORB中介,为异构型平台建立了不同应用软件之间的互操作性,提供了一种各对象之间透明通讯的机制。其目的是在分布计算机环境下为应用软件的开发提供一个通用框架。通过CORBA,一台计算机上的对象可以调用另一台计算机上的对象方法。
3.文档对象模型(DOM)属于VBScript客户端扩展部分,在文档对象模型中提供了大量的对象,这些对象应用于浏览器上,这些对象在我们编写脚本时发挥着重要的作用。
4.Cookie当浏览器访问web服务器时,服务器随网页一起发到你机器上的一段信息,用来识别你的计算机。
5.详情见http://cyrano.com/
公司名,成立于1989年,总公司在法国巴黎,地区性的指挥总部在英国和美国.
6.URL: Uniform Resource Locator.统一资源定位符
7.Virtual User:虚拟用户:A Virtual User is the simulation of a real life browser user that performs the Web activity you want during a Test-run. The activity of Virtual Users is controlled by recording and modeling the Scripts that represent the Web activity you want to Test. They are generated when a Script-based Task Group is executed during a Test-run and are used to produce the load levels you need against target WAEs.

没有评论:

发表评论