• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

点评性能测试工具OpenSTA

发布: 2009-3-23 10:46 | 作者: 缑萍萍 | 来源: 测试时代采编 | 查看: 371次 | 进入软件测试论坛讨论

领测软件测试网

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

 

PRIMARY POST URI"http://demosite.opensta.org/gsg-v1

HTTP/1.0"ON 2 &

HEADER DEFAULT_HEADERS &

,WITH {"Accept: application/vnd.ms-excel, application/msword,

application/vnd.ms-powerp" & "oint, image/gif,

image/x-xbitmap,

image/jpeg, image/pjpeg, */*", &

"Referer: http://demosite.opensta.org/gsg-v1", &

"Accept-Language: en-us", &
   "Content-Type: application/x-www-form-urlencoded", &
   "Content-Length: 22", &
   "Pragma: no-cache"} &

BODY "loginid="mike&passwd=ekim""

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

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

1、首先,在测试脚本的Definition 部分中增加变量USERNAME、PASSWORD 的定

义:

CHARACTER*512

USERNAME ( "mike", "allan", "david" , "robert" ),

SCRIPT

 

CHARACTER*512

PASSWORD ( "ekim", "nalla", "divad" , "trebor" ),

SCRIPT

 

 

这里假设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 的用户名和密码替换成变量:

PRIMARY POST URI"http://demosite.opensta.org/gsg-v1

HTTP/1.0"ON 2 & HEADER DEFAULT_HEADERS & ,WITH {"Accept: application/vnd.ms-excel, application/msword,

application/vnd.ms-powerp" & "oint, image/gif,

image/x-xbitmap, image/jpeg, image/pjpeg, */*", & "Referer: http://demosite.opensta.org/gsg-v1", & "Accept-Language: en-us", & "Content-Type: application/x-www-form-urlencoded", & "Content-Length: 22", & "Pragma: no-cache"} &

,BODY "loginid="mike&passwd=ekim""

,BODY "loginid="mike&passwd=ekim""

改写为:

,BODY "loginid="+MY_USERNAME+"&passwd="+MY_PASSWORD

至此,对测试脚本的修改已经完成。按照本文前面所介绍的OpenSTA 操作步骤,设置性能测试收集器,设置虚拟用户的个数为4,开始执行测试,OpenSTA 就会模拟mike、allan、david、robert 这4 个不同的用户同时登陆系统的情况。说到这里,读者可能又会问,怎么验证在测试执行过程中,确实是模拟了这几个用户进行登陆的呢?我们可以通过将所有登陆系统的用户名称打印出来的方法进行验证。

方法是,在发送登陆请求的PRIMARY POST 语句之后,添加Report 语句:

REPORT "USER ", MY_USERNAME 这样在测试执行完成后,Test Report Log 中就可以看到打印出来的登陆用户名称。(是不是很简单?大家可以来试试)

作者在自己的测试脚本中进行实验,设置虚拟用户为3 个,在登陆请求语句之后增加Report 语句,以下是测试结束后Test Report Log 信息

 

这里,“admin”、“sjcj”、“data”是被测试系统的三个用户名称。

通过上边的一系列阐述,大家对Web 性能测试工具OpenSTA 应该有了一定的了解。如何更有效的利用这个工具,收集系统的性能指标进行性能分析,希望大家共同探讨。

参考文献:

1.OpenSTA user manual

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网