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

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

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

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

    Eclipse Test and Performance Tools Platform 簡介

    發布: 2007-10-19 16:49 | 作者: 網絡轉載 | 來源: 網絡轉載 | 查看: 1115次 | 進入軟件測試論壇討論

    領測軟件測試網



    安裝 Eclipse V3.1 SDK
    下載適合自己平臺的 Eclipse 3.1 SDK?梢栽 Eclipse Downloads 上找到這個 SDK。通常,安裝時只需將 Eclipse .tar.gz 文件釋放到您選擇的目錄中。例如,如果使用 Linux,那么下載 Eclipse V3.1 SDK tarball,然后使用以下命令將它釋放到一個目錄中,比如 ~/java/:

    % cd ~/java
    % mv ~/eclipse-SDK-3.1.1-linux-gtk.tar.gz .
    % tar zxvf eclipse-SDK-3.1.1-linux-gtk.tar.gz

    如果想檢驗 Eclipse 是否已經成功安裝了,那么留在釋放 Eclipse 的目錄中,確保 java 可執行文件在 PATH 中并運行 java -jar eclipse/startup.jar。例如:

    清單 2. 檢驗 Eclipse 是否已經成功安裝了


    % export JAVA_DIR=$HOME/java
    % export JAVA_HOME=$JAVA_DIR/j2sdk1.4.2_08/sdk
    % export PATH=$JAVA_HOME/bin
    % export CLASSPATH=$JAVA_HOME
    % cd $JAVA_DIR
    % java -jar eclipse/startup.jar

    如果提示您為工作空間選擇目錄,那么輸入 $HOME/java/workspace。這個目錄將保存您在 Eclipse 中創建的所有項目。(當然,如果有許多項目,以后可以選擇其他目錄,讓一個工作空間只包含一個項目。)

    安裝 EMF SDK V2.1
    如果 Eclipse 正在運行,就退出它并下載 EMF SDK V2.1。(根據 EMF Web 站點所說,“EMF 是一種建?蚣芎痛a生成設施,用于根據結構化數據模型構建工具和其他應用程序!保┰谙螺d文件之后,進入包含 Eclipse 文件夾的目錄并運行 unzip emf-sdo-SDK-2.1.0.zip。例如:

    清單 3. 運行 unzip emf-sdo-SDK-2.1.0.zip


    % cd $JAVA_DIR
    % ls
    eclipse j2sdk1.4.2_08
    % mv ~/emf-sdo-SDK-2.1.0.zip .
    % unzip emf-sdo-SDK-2.1.0.zip
    creating: eclipse/features/
    creating: eclipse/features/org.eclipse.emf.ecore.sdo_2.1.0/
    creating: eclipse/features/org.eclipse.emf_2.1.0/
    inflating: ...

    安裝 XSD SDK V2.1
    下載 XSD SDK V2.1。(根據項目 Web 站點所說,“XSD 是一個庫,它提供了一個應用編程接口(API),用于按照 World Wide Web Consortium(W3C)XML Schema 規范的描述操作 XML 模式的組件!保┰谙螺d文件之后,進入包含 Eclipse 目錄的目錄并運行 unzip xsd-SDK-2.1.0.zip。下面是一個例子:

    % cd $JAVA_DIR
    % mv ~/xsd-SDK-2.1.0.zip .
    % unzip xsd-SDK-2.1.0.zip

    如果提示您確認覆蓋任何文件,那么只需按 y(小寫)對每個問題回答 Yes。

    安裝 UML V2.0 Metamodel Implementation
    要使用 TPTP 的 Unified Modeling Language(UML)特性,就需要安裝 UML V2.0 Metamodel Implementation。如果正在使用 Eclipse V3.1.1,那么下載 V1.1.1 of UML2,然后在包含 Eclipse 的目錄中釋放它的存檔文件:

    % cd $JAVA_DIR
    % mv ~/uml2-1.1.1.zip .
    % unzip uml2-1.1.1.zip

    安裝 TPTP 運行時
    對于下一步,下載 TPTP 運行時,這包含所有 TPTP 特性和集成兩個系統所需的 Eclipse 插件。要安裝 TPTP,進入包含 Eclipse 的目錄并運行 unzip tptp.runtime-TPTP-4.1.0.zip。下面是一個例子:

    % cd $JAVA_DIR
    % mv ~/tptp.runtime-TPTP-4.1.0.zip .
    % unzip tptp.runtime-TPTP-4.1.0.zip      

    安裝 Agent Controller
    Agent Controller 是 TPTP 的一個重要組件,它使 Eclipse 能夠啟動應用程序并與這些應用程序進行交互,從而提取分析數據。下載適合您的操作系統的 Agent Controller 運行時。接下來,在包含 Eclipse 的目錄中創建一個稱為 tptpd 的目錄,并將 Agent Controller 存檔文件釋放到這個目錄中。要運行的命令是:

    % mkdir $JAVA_DIR/tptpd
    % cd $JAVA_DIR/tptpd
    % mv ~/tptpdc.linux_ia32-TPTP-4.1.0.zip .
    % unzip tptpdc.linux_ia32-TPTP-4.1.0.zip

    如果看到兩個下面這樣的錯誤:

    linking: lib/libxerces-c.so    
    warning: symbolic link (lib/libxerces-c.so) failed

    linking: lib/libxerces-c.so.24  
    warning: symbolic link (lib/libxerces-c.so.24) failed

    那么必須通過輸入以下命令來手工重新創建這兩個鏈接:

    % cd $JAVA_DIR/tptpd/lib
    % rm libxerces-c.so libxerces-c.so.24
    % ln -s libxerces-c.so.24.0 libxerces-c.so
    % ln -s libxerces-c.so.24.0 libxerces-c.so.24

    添加 Agent Controller 目錄
    要使用 Agent Controller,必須將它的 lib 目錄添加到 LD_LIBRARY_PATH 中。例如,如果正在運行 Linux 并采用以上步驟中給出的目錄結構,那么用以下命令添加 $JAVA_DIR/tptpd/lib:

    % export LD_LIBRARY_PATH=$JAVA_DIR/tptpd/lib:$LD_LIBRARY_PATH

    還必須確保 Controller 的 lib 和 bin 目錄的內容是可執行的。為此,運行:

    % chmod +x $JAVA_DIR/tptpd/{bin,lib}/*

    現在將配置和啟動 Agent Controller 的腳本添加到 PATH:

    % export PATH=$JAVA_DIR/tptpd/bin:$PATH

    針對環境配置 Agent Controller
    最后,要配置 Agent Controller 以便匹配環境。進入 Agent Controller 的 bin 目錄,然后運行 SetConfig.sh。

    % cd $JAVA_DIR/tptpd/bin
    % ./SetConfig.sh

    當配置腳本提示您進行選擇時,接受默認設置。運行配置腳本會在 Agent Controller 的文件層次結構中創建文件 config/serviceconfig.xml。

    測試 Agent Controller
    為了測試 Agent Controller,運行 RAStart.sh。為了停止 Agent Controller,運行 RAStop.sh:

    清單 4. 停止 Agent Controller
    db% RAStart.sh
    Starting Agent Controller
    RAServer started successfully
    % RAStop.sh
    RAServer stopped, pid = 5891
    RAServer stopped, pid = 5892
    RAServer stopped, pid = 5893
    RAServer stopped, pid = 5894
    RAServer stopped, pid = 5895
    RAServer stopped, pid = 5896
    RAServer stopped, pid = 5897
    RAServer stopped, pid = 5898
    RAServer stopped, pid = 5899
    RAServer stopped, pid = 5900
    RAServer stopped, pid = 5901
    RAServer stopped, pid = 5902
    RAServer stopped, pid = 5904
    RAServer stopped, pid = 5905
    RAServer stopped, pid = 5906

    現在完成了!重新啟動 Eclipse。在 Eclipse 工具欄上應該會看到一個新按鈕,如圖 1 所示。這是 TPTP Profile 按鈕。TPTP 已經安裝了,您可以繼續學習本教程了。
    圖 1. TPTP Profile 按鈕


    對 Java 應用程序進行分析
    既然已經安裝了 TPTP 和底層軟件,現在就運行 Eclipse。

    示例應用程序

    要分析的 Java 應用程序見清單 5。

    清單 5. 由少量對象組成的簡單 Java 應用程序


    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;

    public class SpaceShipToy {
      /*
      * To build a spaceship, you need a capsule, a booster,
      * three stages, and two monkeys (borrowed
      * from a Barrel of Monkeys).
      */
      public Capsule capsule = new Capsule();
      public Booster booster = new Booster();
      public Stage[] stage = new Stage[3];
     
      public SpaceShipToy()
      {
        for (int i = 0; i < 3; i++)
        stage = new Stage();
      }

      private void _killTime(int seconds)
      {
        if (seconds <= 0)
          return;
         
        for (int i = 0; i < seconds; i++);
      }
     
    static final int MINUTE = 60;
      static final int CAPSULE = 2 * MINUTE;
      static final int BOOSTER = 5 * MINUTE;
      static final int STAGE = 3 * MINUTE;
      static final int MONKEY = 10 * MINUTE;
     
      class Capsule {
        public Monkey chimp1 = new Monkey(), chimp2 = new Monkey();

        public Capsule() {
          System.out.println("Start building the capsule...");
          _killTime(CAPSULE);
          chimp1.build();
          chimp2.build();
          System.out.println("Capsule complete.");
        }
      }
     
      class Booster   {
        public Booster() {
        System.out.println("Start booster...");
        _killTime(BOOSTER);
        System.out.println("Blast off.");
        }  
      }
     
      class Stage {
        public Stage() {
        System.out.println("start stage...");
        _killTime(STAGE);
        System.out.println("Stage complete.");
        }  
      }
     
      class Monkey {
        public void start() {
        System.out.println("Start the monkey business...");
        }
       
        public void build() {
        start();
        _killTime(MONKEY);
        finish();
        }
       
        public void finish() {
        System.out.println("Monkey business complete.");
        }
      }


      public static void main(String[] args) throws java.io.IOException
      {
        final int NUMBERTOYS = 9;
       
        BufferedReader in = new
          BufferedReader(new InputStreamReader(System.in));
        SpaceShipToy[] toys = new SpaceShipToy[NUMBERTOYS];
        String input = in.readLine().trim();
       
        System.out.println("Toy factory is up and running...");
        System.out.flush();

        for (int i = 0; i < NUMBERTOYS; i++)
          toys
    = null;
         
        while (!input.equalsIgnoreCase("q")) {
        if (input == null || input.length() != 1
          || !Character.isDigit(input.charAt(0))) {
          System.err.println ("Unknown option. Try 0-9, q");
          input = in.readLine().trim();
          continue;
        }
       
        int number = Integer.valueOf(input).intValue();
        if (number == 9) {
          new SpaceShipToy();
          System.out.println("Whoops... Lost one...");
        }
        else {
          if (toys[number] != null) {
            System.out.println("Shipping toy # " + number);
            toys[number] = null;
          }
          else {
            System.out.println("Building toy # " + number);
            toys[number] = new SpaceShipToy();
          }
        }
       
        input = in.readLine().trim();
      }
    }
    }

    這個 Java 應用程序很簡單:它 “構建” 玩具飛船并將它們 “發射” 到商店。每個玩具由一個 Java 對象代表,這個對象包含幾個其他對象,這些對象各自代表玩具的一個部件。每個玩具部件都要花一定的時間來構建。
    為了使用這個應用程序,按 0 到 8 數字鍵來構建玩具。如果再次按同一個鍵,構建的玩具就被 “發射”,相關聯的對象被取消引用,從而可以被垃圾收集。因此,在任何時候在內存中最多可以有 9 個玩具(如果構建了所有 9 個玩具,而且都沒有發射)。
    按 9 鍵會創建一個未被引用的對象,這模擬了內存泄漏。按 q(小寫)可以退出應用程序。

    延伸閱讀

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

    43/4<1234>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(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>