点评性能测试工具OpenSTA

原创 2005年03月04日 09:54:00

点评性能测试工具OpenSTA.

作者: 缑萍萍
关键字:性能测试,测试工具,OpenSTA
 
摘要:
    本文将介绍一个免费的、源代码开放的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都有哪些组成部分?
u   OpenSTACommander – 主要控制应用程序;
u   NameServer – CORBA背景处理器,保证OpenSTA各个组成部分之间的交流;
(NameServer是安装OpenSTA的同时被安装的,正常运行时,可以在Windows任务栏的右侧看到图标 ,如果没有正常运行或者被停止了,图标显示为 。)
u   ScriptModeler – 配置、启动HttpGateway的工具程序,同时也是录制脚本的工具程序;
u   HttpGateway – 模拟proxy 处理器,执行录制;
(接受用户手工配置的proxy设置,不接受任何自动配置proxy机制);
u   TestExecuter – 真正执行测试的背景处理器;
u   WebRelayDaemon  –使用XML RPC在internet上过滤 CORBA限制;
u   Repository–测试脚本、配置和测试结果存贮目录;
u   TestManager–管理测试运行的背景程序;
u   TaskGroupExecuter–运行TaskGroup的处理器。
    其次,什么是性能指标收集器(即Collector)呢?这是用户定义的一组问题,决定在测试过程中哪些性能指标需要记录。包括两种类型:
1)NT Performance Collectors 用于采集运行WinNT或Win 2000的主机的性能指标.
2)SNMP Collectors 用于采集主机和其他运行 SNMP agent 或 proxy SNMP agent的SNMP数据.
Collector的设置将在下面如何录制测试脚本中介绍。
 
    第三,如何录制测试脚本呢?
1、    安装OpenSTA后,在“程序”中出现OpenSTA的三个工具程序,如下图:
1-1安装后的界面
    检查OpenSTA NameServer状态为运行中,即图标为
 
    运行“OpenSTA Commander”,界面显示为下图:
1-2运行后的界面
2、录制新脚本
    1)鼠标点“Scripts”,通过右键菜单“New Script”->“HTTP”生成新脚本,脚本名称缺省为NEWSCRIP(如下图);
1-3脚本界面
    2) 双击新脚本,打开Script Modeler窗口,在Options菜单中设置Browser和Gateway,一般情况下,保持Gateway的缺省设置 ;
1-4录制脚本界面
    3)按工具栏中的红色圆钮,自动打开指定的浏览器,输入需要录制的系统URL, 显示被测试网站的首页内容。在登陆成功之后,执行各个既定的操作步骤。按工具条上的方框按钮,或直接退出浏览器,可以停止脚本的录制,这是在Script Modeler窗口中将看到被录制下来的脚本语句。
 
3、生成Collector
    1)    鼠标点“Collectors”,通过右键菜单生成新指标收集器,缺省为NEWCOLLECTOR;
1-5生成收集器
    2)    通过browse Queries浏览并设置需要收集的性能指标。(各个性能指标的含义不是这篇文章所包含的内容,这里不做介绍)
 
4、   组成测试环境
    与脚本和性能收集器同样的方法,在Tests中新建一个NEWTEST(下图中已将新建的Test进行了重新命名), 将测试脚本和性能指标收集器拖到该Test中,如下图;
1-6 测试环境界面
5、   按工具栏中的 ,执行测试,测试过程中可以查看“Monitoring”页签的内容,测试结束后,该页签为空;
6、   测试结束后,点工具按钮下方的Results页签,显示所记录的测试结果数据,如下图。
1-7 测试结果界面
    至此,读者对如何使用OpenSTA这个测试工具应该有了一个大概的了解,如果需要详细了解使用的细节,可以查看该工具的使用手册,不过是E文的哦:)。需要下载OpenSTA工具的朋友可以访问网站http://www.opensta.org/,使用手册也可以在这个网站上下载。

    下面,介绍如何在OpenSTA的测试脚本中引入变量,并给变量赋不同值的过程。网络应用系统一般都会有一个登陆网页,需要用户输入正确的用户名称和密码,经过系统验证后,用户才能进入该应用系统。在使用OpenSTA录制测试脚本时,输入的用户名称和密码将被OpenSTA记录在脚本中,录制完成后,可以在脚本文件中发现如下语句:

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

  问题是在执行性能测试时,往往需要模拟很多个不同的用户同时登陆系统,观察系统的各项性能指标。为每个不同的系统用户录制单独的测试脚本是不现实的。那么,如何修改已录制好的测试脚本,使其在测试过程中可以模拟多个不同的虚拟用户,而每个虚拟用户的用户名称和密码都被写入测试脚本中呢?
 
1、首先,在测试脚本的Definition部分中增加变量USERNAME、PASSWORD的定义:
这里假设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的用户名和密码替换成变量:
    至此,对测试脚本的修改已经完成。按照本文前面所介绍的OpenSTA操作步骤,设置性能测试收集器,设置虚拟用户的个数为4,开始执行测试,OpenSTA就会模拟mike、allan、david、robert这4个不同的用户同时登陆系统的情况。说到这里,读者可能又会问,怎么验证在测试执行过程中,确实是模拟了这几个用户进行登陆的呢?我们可以通过将所有登陆系统的用户名称打印出来的方法进行验证。
方法是,在发送登陆请求的PRIMARY POST语句之后,添加Report语句:
REPORT  "USER ", MY_USERNAME
这样在测试执行完成后,Test Report Log中就可以看到打印出来的登陆用户名称。(是不是很简单?大家可以来试试)
作者在自己的测试脚本中进行实验,设置虚拟用户为3个,在登陆请求语句之后增加Report语句,以下是测试结束后Test Report Log信息
 
1-8 测试结果
这里,“admin”、“sjcj”、“data”是被测试系统的三个用户名称。
通过上边的一系列阐述,大家对Web性能测试工具OpenSTA应该有了一定的了解。如何更有效的利用这个工具,收集系统的性能指标进行性能分析,希望大家共同探讨。
 
参考文献:
1.OpenSTA user manual
----------------------------------------------------------------------------------------------
[作者简介]
姓名:缑萍萍:女,在软件行业有将近10年的经历,前后从事过技术支持、C++软件开发、流程管理和软件测试的工作,期间在英国攻读完工程管理的硕士学位。至今,已经做了1年多的web应用系统软件测试工作,对这个工作非常有兴趣,也小有一些心得。测试行业在国外已经发展的比较成熟了,在国内这几年才逐渐引起重视,作者希望能够通过自己的努力将国外先进的技巧、理念引入国内,与国内同行共同交流,以快速提高我国的软件测试水平。

相关文章推荐

OpenSTA使用详解[压力测试工具]

目前比较著名的并发性能测试工具有Rational Robot、QALoad、LoadRunner 和微软的WAS 等。这其中QALoad、LoadRunner、Rational Robot 都是比较不...

apache-jmeter-3.2性能测试工具

  • 2017年08月10日 12:00
  • 15.9MB
  • 下载

网络性能测试工具

  • 2015年05月08日 17:06
  • 4.03MB
  • 下载

测试工具LoadRunner和OpenSTA比较分析(十一)

核心提示:扩展的记录功能支持参数和服务器信息的浏览,还可浏览及比较已录制网页版本与客户端返回的信息,脚本生成器包括了调试工具、支持断点调试和单步跟踪。   项目   描述   Loa...

Jmeter性能测试工具介绍

  • 2015年11月11日 17:37
  • 1.16MB
  • 下载

ceph性能测试工具总结

1.   基础设施性能测试 1.1    磁盘性能测试 dd 1.2 网络测试 1.2.1 iperf工具简介 iperf是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。iperf...
  • Motred_
  • Motred_
  • 2016年08月21日 17:18
  • 5793
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:点评性能测试工具OpenSTA
举报原因:
原因补充:

(最多只允许输入30个字)