• <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 實現程序更新包的自動部署測試

    發布: 2009-5-21 09:32 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 90次 | 進入軟件測試論壇討論

    領測軟件測試網

      STAF 的安裝比較簡單,只需要按照向導提示進行操作即可。安裝完畢后,可以通過 STAFProc 命令啟動 STAF。關閉 STAF 可以用如下的命令: staf local shutdown shutdown。從這條命令我們可以看出上面提到的 STAF 的命令格式。local 表示 STAF 的本地系統,shutdown 表示服務, 此服務提供了 STAF 的關閉操作。第二個 shutdown 表示傳遞給服務的參數,指示 STAF 把本地的 STAF 服務關閉。

            STAX 的安裝文件也可以從STAF 的網站下載。STAX 本身不需要安裝,只需要更改 STAF 的配置文件以便 STAF 在啟動的時候能夠加載 STAX 服務。 從這個角度來說,STAX 是 STAF 的一種外部服務,可以根據需要來決定是否加載它。

            下載完 STAX 后,將其解壓到 $STAF_Install_Directory\services\stax 目錄中,然后更改 STAF 的配置文件 STAF.cfg。此文件在 $STAF_Install_Directory\bin 目錄下。 在 STAF.cfg 文件末尾加上如下的代碼,然后重啟 STAF。
    代碼1:STAX配置
    SERVICE STAX LIBRARY JSTAF EXECUTE \
      {STAF/Config/STAFRoot}/services/stax/STAX.jar  OPTION J2=-Xmx384m
    SERVICE EVENT LIBRARY JSTAF EXECUTE \
      {STAF/Config/STAFRoot}/services/stax/STAFEvent.jar
    SET MAXQUEUESIZE 10000
            
            STAF重啟之后,運行命令staf local service list,查看輸出結果,如果顯示有STAX和EVENT,如圖1所示,則說明STAX已經成功加載。
    圖 1. STAF 服務列表

            SERVICE STAX LIBRARY JSTAF EXECUTE {STAF/Config/STAFRoot}/services/stax/STAX.jar通知STAF在啟動時以名字STAX(這樣在STAF服務列表中,我們看到的STAX的服務名字就叫做STAX)來加載STAX.jar,也就是STAX服務。 傳遞的參數J2=-Xmx384m表示更改JVM的堆棧大小。如果STAX會出現OutOfMemory錯誤,則需要調整這個參數,增加JVM的堆棧大小。 建議在加載STAX時總是指定這個參數,并且根據系統環境來調整參數大小。

    SERVICE EVENT LIBRARY JSTAF EXECUTE {STAF/Config/STAFRoot}/services/stax/STAFEvent.jar通知STAF在啟動時以名字EVENT來加載STAFEvent.jar。

            如果需要在運行STAX的機器上運行STAX Monitor (STAX任務的監控工具),則需要設置MAXQUEUESIZE,以保證STAXMonitor能夠正確運行。

    2.1 STAF Java 代碼示例

    代碼2所示的是STAF Java代碼示例。


    代碼2:STAF Java代碼示例
    STAFHandle handle = null;
    try {
      handle = new STAFHandle("Java_Sample_Test");
    } catch (STAFException e) {
      System.exit(1);
    }

    STAFResult result = handle.submit2("Linux1", "process",
      "start command ls parms -l wait stdout /root/lsjava.log");
    if (result.Ok != result.rc) {
      System.out.println("Error starting the process ls, RC:  " + result.rc);
    }

    result = handle.submit2("Linux1", "fs", "copy FILE /root/lsjava.log
      TODIRECTORY C:/STAF TOMACHINE windows' % machineName");
    if (result.Ok != result.rc) {
      System.out.println("Error coping file, RC: " + result.rc);
    }
         

            在調用STAF服務之前,首先需要注冊STAFHandle,所有的STAF服務調用都要通過這個句柄來進行,因此一般把這個句柄設置成靜態的。通過handle.submit2()函數可以向STAF服務發送請求并且接收處理結果。

    2.2 STAX腳本示例

            STAX為我們簡化了調用STAF服務的過程,因此我們通過STAX腳本來調用STAF服務。本節將根據一個簡單的示例來簡要介紹STAX腳本的語法。


    代碼3:STAX腳本SampleScript.xml示例
    1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 <!DOCTYPE stax SYSTEM "stax.dtd"> 3 <!-- sample1.xml - Sample of a job definition file for STAX 4 Job Description: 5 This job executes some STAF commands and sends messages to the STAX Job Monitor. 6 --> 7 <stax> 8 <script> LinuxMachine = ['Linux1', 'Linux2'] </script> 9 <defaultcall function="ListDirectory"> 10 </defaultcall> 11 <function name="ListDirectory"> 12 <paralleliterate var = "machineName" in="LinuxMachine"> 13 <testcase name = "'listDirectory'"> 14 <sequence> 15 <stafcmd> 16 <location>'%s' % machineName</location> 17 <service>'process'</service> 18 <request>'start command "ls" parms "-l" wait stdout /root/ls.log'</request> 19 </stafcmd> 20 <if expr="RC == 0"> 21 <sequence> 22 <tcstatus result="'pass'"/> 23 <log message="1">'List directory successfully on %s' % machineName</log> 24 </sequence> 25 <else> 26 <sequence> 27 <tcstatus result="'fail'"/> 28 <log message="1">'Error in listing directory on %s' % machineName</log> 29 </sequence> 30 </else> 31 </if> 32 <stafcmd> 33 <location>'%s' % machineName</location> 34 <service>'fs'</service> 35 <request>'copy FILE /root/ls.log TOFILE ls%s.log TODIRECTORY C:/STAF TOMACHINE windows' % machineName</request> 36 </stafcmd> 37 </sequence> 38 </testcase> 39 </paralleliterate> 40 </function> 41 </stax>

    延伸閱讀

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

    22/2<12

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