注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

OpenSTA介绍  

2011-03-14 16:55:38|  分类: 软件测试 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
摘要:
        本文将介绍一个免费的、源代码开放的web性能测试工具OpenSTA,包括它的原理、组成部分、录制脚本的过程。另外,还将介绍如何在OpenSTA的测试脚本中引入变量,并给变量赋不同值,比如,将登陆被测试网站的用户名称设置为一个变量,在执行性能测试时,虚拟多个不同的用户同时登陆被测试网站,通过将访问网站的用户名称打印出来的方法,验证该变量在测试执行过程中被赋与了不同值。
 
正文:
        作为测试工程师,不能只关注系统的功能,还必须对系统的性能进行全面的测试,才能确认系统是否满足用户的需求。那么什么是性能测试呢?
        “中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。应用在客户端性能测试的目的是考察客户端应用的性能,测试的入口是客户端。它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。”(《性能测试:软件测试的重中之重》作者:中国软件评测中心 发文时间:2003.08.26)?
        目前比较著名的并发性能测试工具Rational Robot、QALoad、LoadRunner微软的WAS等。这其中QALoad、LoadRunner、Rational Robot都是比较不错的商业测试工具(价格也很贵哦),微软的WAS是一个免费的测试工具,使用起来比较简单,但是由于不能显示和编辑所录制的测试脚本,其可控性和图形化测试结果都较弱,故造成一定的局限性。
         OpenSTA是专用于B/S结构的、免费的性能测试工具。它的优点除了免费、源代码开放的优点外,还能对录制的测试脚本进行,按指定的语法进行编辑。测试工程师在录制完测试脚本后,只需要了解该脚本语言的特定语法知识,就可以对测试脚本进行编辑,以便于再次执行性能测试时获得所需要的参数,之后进行特定的性能指标分析。OpenSTA以最简单的方式让大家对性能测试的原理有较深的了解,其较为丰富的图形化测试结果大大提高了测试报告的可阅读性。
         OpenSTA是基于Common Object Request Broker Architecture (CORBA)的结构体系。它是通过虚拟一个proxy, 使用其专用的脚本控制语言,记录通过proxy 的一切HTTP/S traffic。测试工程师通过分析OpenSTA的性能指标收集器收集的各项性能指标,以及HTTP数据,对被测试系统的性能进行分析。
        首先,OpenSTA都有哪些组成部分?
★OpenSTACommander – 主要控制应用程序;
★ NameServer – CORBA背景处理器,保证OpenSTA各个组成部分之间的交流;(NameServer是安装OpenSTA的同时被安装的,正常运行时,可以在Windows任务栏的右侧看到图标qqq?,如果没有正常运行或者被停止了,图标显示为qq。)
★ ScriptModeler – 配置、启动HttpGateway的工具程序,同时也是录制脚本的工具程序;
★ HttpGateway – 模拟proxy 处理器,执行录制;(接受用户手工配置的proxy设置,不接受任何自动配置proxy机制);
★ TestExecuter – 真正执行测试的背景处理器;
★ WebRelayDaemon? –使用XML RPC在internet上过滤 CORBA限制;
★ Repository–测试脚本、配置和测试结果存贮目录;
★ TestManager–管理测试运行的背景程序;
★ TaskGroupExecuter–运行TaskGroup的处理器。
 
         其次,什么是性能指标收集器(即Collector)呢?这是用户定义的一组问题,决定在测试过程中哪些性能指标需要记录。包括两种类型:
1)NT Performance Collectors 用于采集运行WinNT或Win 2000的主机的性能指标.
2)SNMP Collectors 用于采集主机和其他运行 SNMP agent 或 proxy SNMP agent的SNMP数据. Collector的设置将在下面如何录制测试脚本中介绍。
 
        第三,如何录制测试脚本呢?
1、安装OpenSTA后,在“程序”中出现OpenSTA的三个工具程序,如下图:

eee

1-1安装后的界面
        检查OpenSTA NameServer状态为运行中,即图标为q
 
        运行“OpenSTA Commander”,界面显示为下图:

eeee

1-2运行后的界面
2、录制新脚本
         1)鼠标点“Scripts”,通过右键菜单“New Script”->“HTTP”生成新脚本,脚本名称缺省为NEWSCRIP(如下图);

r

1-3脚本界面
        2) 双击新脚本,打开Script Modeler窗口,在Options菜单中设置Browser和Gateway,一般情况下,保持Gateway的缺省设置;

rrr

1-4录制脚本界面
        3)按工具栏中的红色圆钮,自动打开指定的浏览器,输入需要录制的系统URL, 显示被测试网站的首页内容。
        在登陆成功之后,执行各个既定的操作步骤。按工具条上的方框按钮,或直接退出浏览器,可以停止脚本的录制,
        这是在Script Modeler窗口中将看到被录制下来的脚本语句。

3、生成Collector
1)鼠标点“Collectors”,通过右键菜单生成新指标收集器,缺省为NEWCOLLECTOR;

rr

1-5生成收集器
2)通过browse Queries浏览并设置需要收集的性能指标。(各个性能指标的含义不是这篇文章所包含的内容,这里不做介绍)
 
4、组成测试环境
        与脚本和性能收集器同样的方法,在Tests中新建一个NEWTEST(下图中已将新建的Test进行了重新命名), 将测试脚本和性能指标收集器拖到该Test中,如下图;

rrrr

1-6 测试环境界面
5、按工具栏中的 ,执行测试,测试过程中可以查看“Monitoring”页签的内容,测试结束后,该页签为空;
6、 测试结束后,点工具按钮下方的Results页签,显示所记录的测试结果数据,如下图。

t

1-7 测试结果界面
        至此,读者对如何使用OpenSTA这个测试工具应该有了一个大概的了解,如果需要详细了解使用的细节,可以查看该工具的使用手册,不过是E文的哦:)。需要下载OpenSTA工具的朋友可以访问网站http://www.opensta.org/,使用手册也可以在这个网站上下载。下面,介绍如何在OpenSTA的测试脚本中引入变量,并给变量赋不同值的过程。网络应用系统一般都会有一个登陆网页,需要用户输入正确的用户名称和密码,经过系统验证后,用户才能进入该应用系统。在使用OpenSTA录制测试脚本时,输入的用户名称和密码将被OpenSTA记录在脚本中,录制完成后,可以在脚本文件中发现如下语句:

w

        这里“mike”、“ekim”就是录制脚本时登陆系统所输入的用户名称和密码。

        问题是在执行性能测试时,往往需要模拟很多个不同的用户同时登陆系统,观察系统的各项性能指标。
        为每个不同的系统用户录制单独的测试脚本是不现实的。那么,如何修改已录制好的测试脚本,使其在
        测试过程中可以模拟多个不同的虚拟用户,而每个虚拟用户的用户名称和密码都被写入测试脚本中呢?
1、首先,在测试脚本的Definition部分中增加变量USERNAME、PASSWORD的定义:

qqqq

        这里假设mike、allan、david、robert是该系统正确的用户名称,ekim、nalla、divad、trebor
        分别是这些用户的登陆密码(说明:OpenSTA测试脚本分三个部分, Environment、Definition、Code)
2、同时,在脚本的Definition 部分增加变量MY_USERNAME、MY_PASSWORD的定义:
 
CHARACTER*512 MY_USERNAME, LOCAL
CHARACTER*512 MY_PASSWORD, LOCAL
(注意,这两个变量范围是LOCAL型)
3、在发送登陆请求的语句“PRIMARY POST URI"http://demosite.opensta.org/gsg-v1 HTTP/1.0"ON 2…….”
之前, 添加下列语句:
   ACQUIRE MUTEX "LOGIN"
  NEXT USERNAME
  NEXT PASSWORD
  SET MY_USERNAME = USERNAME
  SET MY_PASSWORD = PASSWORD
RELEASE MUTEX "LOGIN"
        其中:AQUIRE MUTEX命令 的含义是: 将变量USERNAME 和PASSWORD 设置为用户名称和密码这两个变量选择
        值序列中的第一个值,并设置为local 形式,避免其他虚拟用户使用这个值;RELEASE MUTEX命令 的含义是:
        释放Mutex, 其他虚拟用户可以选择序列中的第一个值(序列中的值是被循环使用的);这里需要解释一下
        MUTEX锁定机制 的含义,是为了避免多个虚拟用户测试时,自动从变量选择值序列中进行选择时,出现选择
        同一值的现象(即选择了同一个用户的现象);
 
4、将发送登陆请求的PRIMARY POST语句中BODY的用户名和密码替换成变量:

ww

        至此,对测试脚本的修改已经完成。按照本文前面所介绍的OpenSTA操作步骤,设置性能测试收集器,
        设置虚拟用户的个数为4,开始执行测试,OpenSTA就会模拟mike、allan、david、robert这4个不同的用户
        同时登陆系统的情况。说到这里,读者可能又会问,怎么验证在测试执行过程中,确实是模拟了这几个用户
        进行登陆的呢?我们可以通过将所有登陆系统的用户名称打印出来的方法进行验证。方法是,在发送登陆
        请求的PRIMARY POST语句之后,添加Report语句:REPORT? "USER ", MY_USERNAME
        这样在测试执行完成后,Test Report Log中就可以看到打印出来的登陆用户名称。
        (是不是很简单?大家可以来试试)作者在自己的测试脚本中进行实验,设置虚拟用户为3个,在登陆
        请求语句之后增加Report语句,以下是测试结束后Test Report Log信息
   ee
1-8 测试结果
这里,“admin”、“sjcj”、“data”是被测试系统的三个用户名称。
        通过上边的一系列阐述,大家对Web性能测试工具OpenSTA应该有了一定的了解。
        如何更有效的利用这个工具,收集系统的性能指标进行性能分析,希望大家共同探讨。
  评论这张
 
阅读(632)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017