基于 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.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97