基于 STAF/STAX + Autoit 的性能测试方案实现桌面云扩展性测(3)

发表于:2012-03-16来源:IBM作者:董文涛点击数: 标签:性能测试
STAX XML 脚本用于灵活控制 STAF Agent 的运行的事务,并可以作为通用框架来重用,该脚本是实现并发执行的核心,主要实现思想:根据性能测试的负载定义,

  STAX XML 脚本用于灵活控制 STAF Agent 的运行的事务,并可以作为通用框架来重用,该脚本是实现并发执行的核心,主要实现思想:根据性能测试的负载定义,把每个产生负载的机器(安装了 STAF 的远程机器)定义为 虚拟用户,根据一系列参数输入(如 IP 列表,初始启动虚拟用户,负载稳定时长,负载爬升高度等)传入 XML 调度文件,执行 XML 任务时,先针对每个虚拟用户创建一个任务,并且挂住(STAX 提供的 hold 方法)所有的任务,然后

  并发(利用 STAX 的 paralleliterate 方法)释放指定数目的虚拟用户任务,每隔一段时间(即负载稳定一段时间),并发释放一定数目的虚拟用户任务,于是虚拟用户开始执行,根据 XML 中调用的命令,运行定义好的一系列事务,每个事务结束后继续执行下一个事务,重复释放的动作,就可以实现负载的阶梯上升,从而观察系统在不同的负载,以及随着负载渐增时的性能表现。

  主要实现是基于下面的示例,详细范例请参考 Getting Started with STAF V3 Guide

  并发执行元素 paralleliterate

  清单 1. XML 并发执行的元素

				
 <paralleliterate var="machine" indexvar="i" in="machineList" maxthreads="20"> 
  <block name="'#%s: %s' % (i + 1, machine)"> 
    <call function="'RunTest'">machine</call> 
  </block> 
 </paralleliterate> 

  挂住和释放任务

  清单 2. XML 挂住和释放任务

				
 <function name="ReleaseBlock" scope="local"> 
      <function-list-args> 
         <function-required-arg name="parentBlock" /> 

         <function-required-arg name="blocknameList" /> 

         <function-required-arg name="sleeptime" /> 
      </function-list-args> 

      <sequence> 
 <script> 
   import time 
   time.sleep(int(sleeptime))   
 </script> 

         <message>'ReleaseBlock: sleep time=%s, 
         then paral to release specific blocks num:%s' %(sleeptime, 
         len(blocknameList))</message> 

         <paralleliterate var="block" indexvar="i" in="blocknameList"> 
            <sequence> 
               <message>'ReleaseBlock: release blocks:%s.%s' 
               %(parentBlock,block)</message> 

 <script> 
 BlockChain = '%s.%s' %(parentBlock, block) 
 </script> 

               <release block="BlockChain" /> 
            </sequence> 
         </paralleliterate> 
      </sequence> 
   </function> 

  编写模拟用户行为的 Autoit 脚本:

  1). 模拟用户行为的用例示范:

  表 1. 用例设计示例

用例序号 行为 响应时间检查点
用例1:浏览网页
1-1 按下 Win+R 组合键  
1-2 在“运行”中,输入浏览器路径,回车  
1-2 思考时间  
1-3 按顺利访问 URL 加载完每个网页的时间
1-4 关闭浏览器  
用例2: 记事本输入
2-1 按下 Win+R 组合键  
2-2 打开 notepad,输入文字 输入的文字完全显示的时间延迟
2-3 思考时间  
2-4 关闭记事本  
用例3: 打开 Word 文档、翻页
3-1 按下 Win+R 组合键  
3-2 打开 Word 文档  
3-3 思考指定时间,翻页 从翻页动作发生到下页显示完全的时间
3-4 关闭文档  

原文转自:http://www.ltesting.net