• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    用 STAF/STAX + LAMP 實現多任務的自動化測試框架

    發布: 2009-5-25 18:55 | 作者: 網絡轉載 | 來源: 測試時代采編 | 查看: 145次 | 進入軟件測試論壇討論

    領測軟件測試網

      清單 2. 生成任務參數文件并啟動任務隊列的代碼

    MILY: Verdana, Arial, 新宋體; BACKGROUND-COLOR: rgb(230,230,230); WORD-WRAP: break-word">$isTestStarted = false;
    $testQueueDir=opendir("$testQueuePath");
          
    while($fileName=readdir($testQueueDir)){        
      if ($fileName!="." and $fileName!="..") {
        $isTestStarted = true;    
        break;
      }
    }
    //Here should be the code to create a parameter file for this task, using parameters set
    by user from the web UI.
    if(!$isTestStarted){
     exec("STAF local STAX EXECUTE FILE /usr/local/staf/xml/queuemanager.xml CLEARLOGS");
    }
    header('Location: / viewTestList.PHP');

    在這里我們并沒有去檢查任務處理進程是否在系統中存在,而是根據任務文件文件夾是否為空來判斷。這一判斷是基于若隊列中有未執行完的任務,則應該有隊列處理進程在進行處理的簡單假設。當然偶爾也會有測試任務出錯,任務處理進程非正常中止的情況發生,使得該假設失準。因此,我們要在 PHP 代碼中查詢任務處理進程的日志,判斷其運行狀態,并在頁面中向測試執行人員顯示出來。如果任務文件夾中尚有文件未執行,而隊列處理進程又處于停止狀態,就要提示測試人員排查錯誤并手動重啟任務隊列處理進程。

      STAX 任務啟動后,我們也可以隨時讓 PHP 代碼執行 exec("STAF local STAX TERMINATE JOB $JobID") 來中止任務編號為 JobID 的 STAX 任務。

      監控 STAX 運行情況:

      STAX 一旦出錯,意味著任務無法運行,如果能夠實時監控 STAX 任務運行狀態,可提高可靠性。

      清單 3. 監控 STAX 任務狀態

    exec("./viewStaxLog.sh $staxJobID 2>&1", $outPut);
    $isStopped = false;
    foreach($outPut as $outputline){
      $pos = strpos($outputline, "Stop  JobID:");
      if($pos !== false){
        $isStopped = true;
      }
    }
    if($isStopped){
      echo "<fond color="blue">Stopped</font><br>";
    }
    else{
      echo "<fond color="red">Running</font><br>";
    }

      上面清單中調用了查看 STAX 日志的 shell 腳本。STAX 日志分為兩種,一種是系統對任務運行情況和錯誤的自動記錄,另一種是測試開發人員在 STAX 任務腳本中用 <log></log> 標簽主動記錄的日志?梢酝ㄟ^ STAF 命令實時查詢任何 STAX 任務的日志。在獲得日志后可以根據日志中的關鍵字(如上面代碼中的“Stop JobID: ”)判斷 STAX 任務的狀態。

     STAX 的日志可以用 STAF 命令進行查詢,其代碼如下。

      清單 4. 查詢 STAX 日志

    if [ $1 = “user” ]
    then
    staf local log query machine mytest.cn.ibm.com logname STAX_Job_$2_User
    else
    staf local log query machine mytest.cn.ibm.com logname STAX_Job_$1
    fi

      遠程程序調用:

      在測試過程中,可以讓 STAX 遠程執行要運行的程序,這里給出實際應用中經常會調用 shell 腳本的示例,其 STAX 代碼如下。

      清單 5. STAX 遠程調用 shell 腳本

    <process>
      <location>'local'</location>
      <command mode="'shell'" >'"./%" result %s %s'
                      % (testScriptName,testParam1,testParam2)</command>
      <workdir>'%s' % testScriptDir</workdir>
      <stderr mode="'stdout'"/>
      <returnstdout/>
    </process>
    <if expr="RC != 0">
      <log>'Error: RC=%s, STAXResult=%s, Error running test script'
         % (RC, STAXResult)</log>
      <else>
       <log>'Running test script: STAXResult=%s' % (STAXResult)</log>
      </else>
    </if>

      分析測試結果:

      STAX 使用 Python 處理其腳本中的表達式。為了便于文本分析,使用者可以在 STAX 腳本中嵌入 Python 腳本。用這種方式可以方便地利用 Python 強大的正則表達式處理能力。下面的代碼示范如何從日志文件中提取相關文字并進行對比判斷。

    <stafcmd>
      <location>'%s' % logServer</location>
      <service>'fileman'</service> 
      <request>'grep file "%s" machine "%s" for "%s" last CODEPAGE ascii'
            % (testLogName,logServer,testCaseName)</request>
    </stafcmd>
    <!—- Some other code here -->
    <script>
      import re
      import string
      result = str(STAFResult[0])
      testCaseMatch = re.search("%s %s"
       % (testCaseName.upper(),expectedResult.upper()),result.upper())
    </script>

      配置使用

      配置這樣一個自動化測試框架,需要安裝 Apache Server,MySQL,PHP,如何安裝該環境,這里就不贅述。我們開發的測試框架由于其功能比較多,也需要在測試中不斷的更改配置,有時還要增加測試內容。為了便于其配置,我們將PHP代碼中有可能需要修改的變量都放在一個單獨的 PHP 文件中,而與測試用例相關的變量用 PHP 數組的形式存放在另一個 PHP 文件中。所有要用到這些配置的 PHP 文件對其進行包含。

      總結

      LAMP 是功能強大的 Web 應用程序平臺,STAF/STAX 具有很好的自動測試功能,把二者結合起來就可以形成更加靈活可靠,易于功能擴展的新的自動化測試框架,本文也通過在 WVS 產品測試中使用該框架從而獲得了很好的測試效果。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    44/4<1234

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>