性能小工具WAS的试用

上一篇 / 下一篇  2011-12-22 16:35:34 / 个人分类:Web Application Stress

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.1.4双击新脚本,打开Script. Modeler窗口,在Options菜单中设置BrowserGateway,一般情况下,保持Gateway的缺省设置。

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

1.1         生成性能指标收集器

3.2.1鼠标点“Collectors”,通过右键菜单生成新指标收集器,缺省为NEWCOLLECTOR

3.2.2通过browse Queries浏览并设置需要收集的性能指标,如下图:

 

1.2         组成测试环境

3.3.1Tests中新建一个NEWTEST,将测试脚本和性能指标收集器拖到该Test中,(注意:按住图标拖到task1task2中)如下图:

3.3.2按工具栏中的绿色箭头,执行测试,测试过程中可以查看“Monitoring”页签的内容,测试结束后,该页签为空。

3.3.3测试结束后,点工具按钮下方的Results页签,显示所记录的测试结果数据,如下图:

1.3         并发测试

OPENSTA支持并发测试,可以模拟多个用户同时多次发出http请求,要在机器上运行多个用户测试任务,需要在组织测试案例时,设定VUs属性,见下图:

1.4         Script变量实现参数化

3.5.1创建变量

通过Script. Modeler的菜单Variables - Create来创建变量,如下图:

1Name—— 设置变量名。

2Scope—— 设置变量范围,非常重要的一个属性!有以下几种范围:

1) Local

   某变量范围设置为Local后,虚拟用户只能在自己当前运行的脚本内使用该变量,而无法使用其他用户或其他脚本内的该变量。可能刚开始不好理解,让我们用下面的图来表示虚拟用户(Virtual User)、脚本(Script)、变量访问范围(Scope)的关系:

2) Script

  变量范围设置为Script,则表示运行时所有虚拟用户共用同一个Script里的变量。比如4个用户虚拟用户一起运行脚本A,假设脚本A中有一个设置为Script范围的变量B,则4个虚拟用户共用变量B,如果有人对变量B进行修改,则会影响到其他人。如下图:

3) Thread

  OpenSTA中,每个虚拟用户是一个单独的线程,单变量范围设置为Thread后,则表示该变量在单个虚拟用户的线程内共享,很奇妙的是它定义在Script中却能够跨越Script共享同一变量。因此,如果要设置Thread范围多个Script共享同一变量,必须在每个Script中定义它。通常我们会把这样的变量定义在Global_Variables.INC文件中。这是一个全局变量文件,我们的每个脚本都会在中引用它,如:

  Include "GLOBAL_VARIABLES.INC"

  Thread范围的变量范围使用如下图:

4) Global

  设置为Global的变量可想而知范围最大,即变量在所有虚拟用户,所有脚本中共享。同样,变量必须在每个脚本中定义或是在Global_Variables.INC中定义。如下图:

3Value—— 设置值的来源,可以是自己输入的数值(Variable)、数组(Value List)、文件中的数据(File)数据库中的数据(Database)等。

4Order—— 变量取值的顺序,分为:按顺序取(Sequential)和随机取(Random)。注意,当数据取完时,会从头开始取数据。

5Type—— 变量类型,分为字符串(Character)和数字(Integer)

3.5.2使用定义好的变量

  假如我们在刚才的步骤中创建了USERNAMEPASSWORD两个变量,Scope定义为SCRIPT,再创建MY_USERNAMEMY_PASSWORD两个Local变量。在Definitions中的定义如下:

  CHARACTER*512 USERNAME ( "phillip", "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 "LOGIN"

  NEXT USERNAME

  NEXT PASSWORD

  SET MY_USERNAME = USERNAME

  SET MY_PASSWORD = PASSWORD

  RELEASE MUTEX "LOGIN"

  过 程:首先,加锁(ACQUIRE MUTEX),并取名为LOGIN,然后使用NEXT语句获取USERNAMEPASSWORD变量的下一个数据,然后使用SET语句将取出的值赋值给本地变量MY_USERNAMEMY_PASSWORD,然后释放锁(RELEASE MUTEX)

  有了上面的四种不同范围的变量,相信要实现不同类型的参数化就变的相当的简单和方便了。

1.5         DOM对象实现关联

  DOMDocument Object Model文档对象模型的缩写。DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标准组件。通过DOM,我们可以动态的获取返回的HTMLXML,并方便的取出里面相应节点的内容进行检查或他用。OpenSTA在录制时会把这些信息记录在一个后缀为.ALL的文件中,光标定位到PRIMARY POST URI或是PRIMARY GET URI处,点击工具栏黄色右箭头按钮,如图:

  现在我们要动态的获取页面的返回值:“You are great!”,我们选中DOM tab中的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

  每次访问页面的时候Cookie的值都会不一样,OpenSTA自动为我们处理了这个需要动态获取的东西,处理的方式和刚才的ReturnText是一样的。

1.6         设置负载生成器

负载生成器机器即被控制 执行测试的机器(Loader),必须运行OpenSTA Name Server,右键- Configure - Repository Host-输入运行了OpenSTA Commander的主控机器(Controller)IP。注意修改了Repository Host后要重启服务。这样,在主控制机器(Controller)Commander中的设置Host Name -输入负载生成器机器的IP。搞定。

这样做似乎有一些确定,因为假如我要控制别的机器运行测试案例,需要在别的机器上指定我的机器的IP,当我要用另一台机器做控制端(Controller)时,又需要修改那些机器的设置,不像LoadRunner一样方便,不需要修改什么。

1.7         如何添加Task Group

  在Commander中添加一个Task Group,首先点击Tests右键创建一个Test,然后在左边的目录树中把要运行的Script或是Collector拖动拖到Task GroupTaskX(1,2,3...)列,可以看到,一个Task Group可以有多个Task,这里要注意的是:

  Collector不允许和Script放在同一个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的开始时间(Start 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,这里可以设置其他远程机器运行负载,后面会介绍如何设置。

  VUs列是虚拟

TAG:

156881887的个人空间 引用 删除 156881887   /   2011-12-23 11:24:41
这和WAS一点关系都没有嘛!只是一个开源的性能测试工具而已。
156881887的个人空间 引用 删除 156881887   /   2011-12-23 11:23:56
-1
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar