• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

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 是一种建模框架和代码生成设施,用于根据结构化数据模型构建工具和其他应用程序。”)在下载文件之后,进入包含 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 模式的组件。”)在下载文件之后,进入包含 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(小写)可以退出应用程序。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

43/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网