当前位置: 首页 > 工具软件 > OpenSTA > 使用案例 >

OpenSTA介绍

庞鸿骞
2023-12-01

OpenSTA 基于CORBA的分布式软件测试构架。使用OpenSTA,测试人员可以模拟大量的虚拟用户。OpenSTA的结果分析包括虚拟用户响应时间、web服务器的资源使用情况、数据库服务器的使用情况,可以精确的度量负载测试的结果。网址:http://opensta.org/ 

摘要:

    本文将介绍一个免费的、源代码开放的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任务栏的右侧看到图标 ,如果没有正常运行或者被停止了,图标显示为。)

★ 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的三个工具程序,如下图:

图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

--------------------------------------------------------------------------------

 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=310392

转载于:https://www.cnblogs.com/Simplife/articles/1132654.html

 类似资料: