IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Rational  >

IBM Rational Test RealTime V7.5 与 IBM Telelogic Rhapsody V7.4 的集成

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

英文原文

英文原文


级别: 中级

Luc Auvray, 软件质量工程师,团队负责人, IBM

2009 年 10 月 12 日

IBM® Rational® Test RealTime是组件测试和运行时分析的跨平台软件。本文解释了怎样将其与 IBM® Telelogic® Rhapsody® 集成起来,以及怎样测试集成。

安装 Rational Test RealTime integration for Rhapsody

安装需要以下三步:

  1. 在 Rhapsody 中创建 Rational Test RealTime 菜单。

  2. 在 Rhapsody 中创建一个新的 Rational Test RealTime 配置。

  3. 更新 Rational Test RealTime 的批处理文件。

在 Rhapsody 中创建 Rational Test RealTime 菜单

  1. 通过打开提供有以下产品的范例来启动 Rhapsody :

    C:\Program Files\Telelogic\Rhapsody 7.4\Samples\CSamples\pacemaker\pacemaker.rpy

  2. 在 Rhapsody 中,点击 Tools > Customize。然后 Helpers 窗口就会打开了。

  3. 点击 New 按钮以创建一个名为 Test RealTime 选项的新定制菜单。

    Command 区域中,输入以下的行:

  4. C:\Program Files\Rational\TestRealTime\bin\intel\win32\TestRTcl.exe

  5. Arguments 中,输入 TestRTRhap.opt

  6. 选择 Show in Tools menu,如图 1 所示,然后点击 Apply


图 1. New Test RealTime 选项菜单
 Helper 参数上的菜单列表


  1. 点击 New 按钮以创建一个名为 Test RealTime Results 的新定制菜单。

  2. Command 中,输入以下的命令行:C:\Program Files\Rational\TestRealTime\bin\intel\win32\studioreport.exe

  3. Arguments 中,输入:*/*/attolccReport.xtp

  4. 选择 Show in Tools menu,如图 2 所示,然后点击 Apply


图 2. New Test RealTime Results 菜单
 Helper 参数上的相同菜单列表


  1. 点击 New 按钮以创建一个名为 Test RealTime Clean 的新定制菜单。

  2. Command 中,输入以下的命令行:C:\Program Files\Rational\TestRealTime\bin\intel\win32\studioreport.exe

  3. Arguments中,输入:-clean */*/attolccReport.xtp

  4. 选择 Show in the Tools 菜单,如图 3 所示,然后点击 Apply


图 3. New Test RealTime Clean 菜单
 Helper 参数下更长的菜单的列表


  1. 点击 New 按钮以创建一个名为 Test RealTime Clean All 的新定制菜单。

  2. Command 中,输入以下的命令行:C:\Program Files\Rational\TestRealTime\bin\intel\win32\studioreport.exe

  3. Arguments 中,输入: -cleanAll */*/attolccReport.xtp

  4. 选择 Show in the Tools menu ,如图 4 所示,然后点击 OK


图 4. NewTest RealTime CleanAll 菜单
菜单的更新列表


在 Rhapsody 中创建一个新的 Rational Test RealTime 配置

  1. 在 Rhapsody 项目树形结构中,右击<<Executable>>EXE,如图 5 所示,然后点击 Set as Active。


图 5. Entire Model View 中的 Rhapsody 项目树形结构
EXE 在树的 pacemaker 组件之下


  1. 为了创建一个新的配置,复制已经存在 Host 配置并重命名复制为 Host_Coverage

  2. 在 Configurations 节点中创建一个 Host 配置的拷贝。新的配置会自动命名为 Host_copy,如图 6 所示。


图 6. Host 的拷贝
 EXE 下面的 Host, Host_copy, 以及目标配置


  1. 右击 Host_copy,如图 7 所示,然后点击 Set as Active

图 7. Host_拷贝
 Rhapsody 树中高亮显示的 Host_copy


  1. 双击 Host_copy 配置并将其重命名为 Host_Coverage


图 8. 重命名 Host 拷贝
 带有 8 个项和 General tab 的 Name 区域


  1. 点击 Settings 项,并在 Environment 下拉列表中,选择合适的编辑器,如图 9 所示。


图 9. 选择一个汇编器
选择的 Microsoft,右边是默认的按钮

点击查看大图



  1. 确保 Instrumentation Mode 被设置成 Animation,如图 10 所示。


图 10. 设置 Instrumentation 模式
左边是下拉列表,右边是 Advanced 按钮

点击查看大图



  1. 点击 Properties 项并选择 View Common > All,如图 11 所示。


图 11. 选择所有
菜单项


  1. 展开 C_CG 属性并选择构建环境。

  2. InvokeMake 属性从 msmake.bat 更改为 msmakeRTRT.bat,如图 12 所示(或者从 CygwinMake.batCygwinMakeRTRT.bat,根据您的环境而定)。


图 12. 更改属性名
Properties 是 8 个项之一


点击查看大图

  1. 点击 OK

为 Rational Test RealTime 更新“Make batch file”

这个段落描述了怎样更新“Make batch file”,以汇编 Cygwin(一种在 Windows 中模拟 Linux® 的环境)或者 Microsoft® Visual Studio® Version 6。

  1. 对于 Cygwin:更新 CygwinMake.bat 文件。

  2. 对于 Microsoft Visual Studio V6:更新 msMake.bat文件。

更新 CygwinMakeRTRT.bat 文件

  1. 复制并重命名以下的文件:<RhapsodyInstallDir>\Share\etc\CygwinMake.bat到:<RhapsodyInstallDir>\Share\etc\CygwinMakeRTRT.bat

  2. 编辑 CygwinMakeRTRT.bat 文件并作出以下的更改:设置环境变量 ATLTGT 为已选择的构建环境:设置 ATLTGT=%TESTRTDIR%\targets\cpcgnu 添加以下的代码:set RT_OPT=-opt=../../TestRTRhap.opt -act=../../TestRTRhap.opt_act -treatmt=Rhaptrmt.pl -env_OMROOT=<RhapsodyInstallDir> -env_OMROOT="C:\Progra~1\Telelogic" -noinstrdir="C:\Program Files\Telelogic\Rhapsody74\Share"在每一行的结尾添加以下代码:CC="attolcc %RT_OPT% -- gcc" LINK_CMD="attolcc %RT_OPT% -- g++"

故障排除
确保行 RT_OPT=-opt...在您的文本编辑器中。如果您从您的 Adobe PDF 阅读器中粘贴这行的话,那么在汇编阶段您可能会出现问题:代码有三行。

列表 1 显示了 CygwinMakeRTRT.bat文件应该是什么样的。








列表 1. 范例 CygwinMakeRTRT.bat 文件
				
				
@echo off
PATH=c:\cygwin\bin;%PATH%
if "%2"=="" set target=all
if "%2"=="build" set target=all
if "%2"=="rebuild" set target=clean all
if "%2"=="clean" set target=clean

set RT_OPT=-opt=../../TestRTRhap.opt 
-act=../../TestRTRhap.opt_act -treatmt=Rhaptrmt.pl 
-env_OMROOT="C:\Progra~1\Telelogic" 
-noinstrdir="C:\ Progra~1\Telelogic\Rhapsody74\Share"

echo Setting environment for Cygwin
echo "make.exe"
make -s %target% -f %1 CC="attolcc %RT_OPT% -- gcc" LINK_CMD="attolcc %RT_OPT% -- g++"

更新 msmakeRTRT.bat 文件

  1. 复制并重命名以下的文件:<RhapsodyInstallDir>\Share\etc\msmake.bat
    到:
    <RhapsodyInstallDir>\Share\etc\msmakeRTRT.bat

  2. 编辑msmakeRTRT.bat文件以进行以下的更改:
    • 添加以下的代码行:
      set RT_OPT=-opt=../../TestRTRhap.opt -act=../../TestRTRhap.opt_act -treatmt=Rhaptrmt.pl -env_OMROOT=<RhapsodyInstallDir> -env_OMROOT="C:\Progra~1\Telelogic" -noinstrdir="C:\Program Files\Telelogic\Rhapsody74\Share"

    • 在每一行的结尾添加以下的代码行:CC="attolcc %RT_OPT% -- cl" LINK_CMD="attolcc %RT_OPT% -- link"

  3. 编辑 Vcvars32.bat 文件以设置环境变量 ATLTGT 为选择的构建环境:set ATLTGT=%TESTRTDIR%\targets\cvisual6

故障排除
确保 set RT_OPT=-opt... line 在您的文笔编辑器中。如果您从您的 PDF 阅读器粘贴这行的话,那么您在汇编阶段可能会出现问题:代码有三行。

列表 2 显示了文件 msmakeRTRT.bat 应该是什么样的。








列表 2. 范例 msmakeMakeRTRT.bat 文件
				
@echo off
if "%2"=="" set target=all
if "%2"=="build" set target=all
if "%2"=="rebuild" set target=clean all
if "%2"=="clean" set target=clean
rem ensure that the following bolded code is on one line 
set RT_OPT=-opt=../../TestRTRhap.opt -act=../../TestRTRhap.opt_act -treatmt=Rhaptrmt.pl 
-env_OMROOT="C:\Progra~1\Telelogic" -noinstrdir="C:\ Progra~1\Telelogic\Rhapsody74\Share"

set MAKEFLAGS=
call "C:\Program Files\Telelogic\Rhapsody 7.4\Share\etc\Vcvars32.bat" x86
echo ''nmake.exe
rem ensure that the following bolded code is on one line
nmake /nologo /S /F %1 %target% %3 %4 %5 %6 CC="attolcc %RT_OPT% -- cl" LINK_CMD="attolcc 
%RT_OPT% -- link"

列表 3 显示了Vcvars32.bat文件应该是什么样的。


列表 3. 范例 Vcvars32.bat 文件
				
@echo off
rem
rem Root of Visual Developer Studio Common files.
....

set VcOsDir=
set VSCommonDir=

rem ATLTGT for TestRealTime
set ATLTGT=%TESTRTDIR%\targets\cvisual6

Rhapsody with Microsoft Visual Studio V6 中工具的范例

编辑 Host_Coverage 配置

  1. 打开 Host_Coverage 配置,并在 Settings 窗格中,选择 Microsoft。

  2. 确保以下的选项设置成如图 13 所示。

    • Instrumentation 模式设置成 Automation;

    • Environment 被设置成 Microsoft

    • Build 被设置成 Debug

图 13. 验证 Host_Coverage 设置
指定选项显示在 Settings 项上

点击查看大图



  1. Properties 项上,选择 View all

  2. C_CG 中,Microsoft ® 之下,将 InvokeMake 设置从 msmake.bat 更改为 msmakeRTRT.bat,如图 14 所示。


图 14. 属性
更改的 InvokeMake 设置

点击查看大图



  1. 点击 OK

使用 Rational Test RealTime 来实现

  1. 从 Rhapsody 项目中,选择 Tools > Test RealTime 选项,如图 15 所示。


图 15. Open工具
菜单项


  1. 点击 Enable,如图 16 所示。


图 16. Enable按钮
窗口右边的方形按钮


  1. 如有需要,您可以更改设置。例如,在 Other Options 中添加 -verbose,如图 17 所示。


图 17. Specify 选项
Runtime Analysis Setup 选项


  1. 点击 Apply,然后点击 OK

向模型添加 Rational Test RealTime 转储点

Rational Test RealTime 是为嵌入式和实时系统设计的,它通常都是设置成从不停机的。在这种情况下,运行时分析结果都在目标内存中得到评价,直到您决定将其返回至主机为止 。

因此,您必须添加一个转储命令到 Pacemaker 转变中。您可以这样做:

  • 从 Packages 树中:

  • 从 PaceMaker 状态表中:

从 Packages 树添加一条转储命令

  1. 点击 Enable。

  2. 在 Packages 树中选择转储命令(图 18)。


图 18. 选择“from On”
 Incoming 转变的关闭状态


  1. General 项上,操作代码中( Action 区域中)添加以下的声明,如图 19 所示。#pragma attol insert _ATCPQ_DUMP(1); printf("TestRT results dumped!\n");


图 19. 指定转变操作
Name, Stereotype, Target, Trigger, Guard, 以及 Action

点击查看大图



向 PaceMaker 状态表添加一条转储命令

  1. 选择并双击 evOFF 转变,如图 20 所示。


图 20. evOFF 转变
有 OFF 和 AVIMode 元素的表


  1. General 项上,Action 代码中,添加以下的声明,如图 21 所示。#pragma attol insert _ATCPQ_DUMP(1); printf("TestRT results dumped!\n");


图 21. 指定转变操作
Name, Stereotype, Target, Trigger, Guard, 和 Action


  1. 点击 OK

生成并构建代码

  1. 为了生成代码,选择 Code > Generate > Ctrl-F7 并点击 Yes,如图 22 所示。


图 22. 创建 Host_Coverage 目录
Rhapsody 对话框提醒您创建一个目录


  1. 为了构建生成的代码,选择 Code > Build > Build EXE.exe (F7),如图 23 所示。


图 23. 构建代码
菜单命令


注意:只会处理带有更改配置的组件。

当构建完成时,Build 项会显示为 Build Done 状态,如图 24 所示。


图 24. 构建信息
Severity, Model Element, 以及 Description


运行操作程序

  1. 点击 Exclamation (!)按钮,如图 25 所示。


图 25. Exclamation 按钮
 Save 图标下的按钮


  1. 点击以下的图标,如图 26 所示。


图 26. 点击 Run 按钮
带有前置三角形的图标


  1. 选择 Tools > Animated State chart ,如图 27 所示。


图 27. 选择 Animated 状态表
菜单命令


  1. 选择 Pacemaker[0] 实例,如图 28 所示,然后点击OK


图 28. 选择实例
列表显示了 Instance 和 Class


状态表会以默认的 OFF 状态打开,如图 29 所示。


图 29. OFF 状态下的状态表
有 9 个元素的表

点击查看大图



  1. 您可以与测试下的系统相交流。点击 Event Generator 按钮,如图 30 所示。


图 30. 点击 Event Generator
按钮显示红色图标


  1. 点击 Select 并选择 Pacemaker[0]实例。在 Event 列表中,选择一个事件,如图 31 所示。


图 31. 选择一个事件
下拉列表中选择的 evAAIMode


  1. 点击 OK

检查 Rational Test RealTime 结果

  1. 打开 Rational Test RealTime GUI 中的 Coverage 结果。点击 Stop 按钮以停止执行,如图 32 所示。


图 32. 点击 Stop
按钮显示红色的停止符号


  1. 在 Rhapsody 中,选择 Tools > Test RealTime Results。这会打开带有结果的 Rational Test RealTime ,如图 33 所示。


图 33. Code Coverage [attoIccReport]
左边是报告树,中间是图表,右边是项目浏览器

点击查看大图



添加工具到 Rhapsody 框架

内存文件报告可以向您展示许多内存外泄。这是因为 Rhapsody 框架执行在程序层次不能见的内存分配。为了处理它,您必须在工具中包含 Rhapsody 框架。

  1. 复制原始的 msbuild.mak文件,它位于C:\Program Files\Telelogic\Rhapsody74\Share\LangC

  2. 对于 Microsoft 文件编写,您构建带有标准库的工具库。为了做到这一点,复制组成库(不是.dll)的行:一旦清除前面构建中生成的文件,那么第二次将会构建相同的带有 Rational Test RealTime 工具和 Rational Test RealTime 前缀的库:

列表 4 显示了在更改 .axf 库之间的范例。


列表 4. 更改之前的代码
				

oxflibs :
	cd oxf
	$(MAKE) -f msoxf.mak CFG="oxf" $(BUILD_TARGET)
	$(MAKE) -f msoxf.mak CFG="oxfinst" $(BUILD_TARGET)
	$(MAKE) -f msoxf.mak CFG="distrib_oxf" $(BUILD_TARGET)
	$(MAKE) -f msoxf.mak CFG="distrib_oxfinst" $(BUILD_TARGET)
	cd ..

列表 5 显示了更改之后的相同范例。


列表 5. 带有复制行的代码
				
oxflibs :
	cd oxf
	$(MAKE) -f msoxf.mak CFG="oxf" $(BUILD_TARGET)
	$(MAKE) -f msoxf.mak CFG="oxf" $(BUILD_TARGET) LIB_PREFIX=RTMS clean
	$(MAKE) -f msoxf.mak CFG="oxf" $(BUILD_TARGET) LIB_PREFIX=RTMS 
	CPP="Attolcc -memprolib --no_sys_include -noTDP -- cl"
	$(MAKE) -f msoxf.mak CFG="oxfinst" $(BUILD_TARGET)
	$(MAKE) -f msoxf.mak CFG="oxfinst" $(BUILD_TARGET) LIB_PREFIX=RTMS clean
	$(MAKE) -f msoxf.mak CFG="oxfinst" $(BUILD_TARGET) LIB_PREFIX=RTMS 
	CPP="Attolcc -memprolib --no_sys_include -noTDP -- cl"
	etc ... 
   cd ..

  1. 重构有合适内存文件 Rhapsody 框架的库:点击 Code > Build Framework,如图 34 所示。


图 34. 重构库
菜单命令


在框架执行和构建过程结束之后(大概会花 5 分钟),重构 PacemakerEXE 文件以集成框架的新执行库到最终的可执行代码中。

生成更多运行时分析的结果

  1. 在 Rhapsody 中,选择 Tools > Test RealTime Options。

  2. 选择您想要使用的 Runtime Trace, Memory, or Performance Profiling 工具,如图 35 所示。


图 35. 选择工具进行激活
代码覆盖层次和特性激活 (C/C++)


  1. 点击 OK 再点击 Code > Rebuild 以重构您的组件,如图 36 所示。


图 36. 重构
菜单命令


  1. 多运行程序几次以检查活动状态表中的结果。不要忘记关闭事件 evOFF ,它允许停止包含转储命令的转变。

  2. 在 Rhapsody 中,选择 Tools > Test RealTime Results 以在 Rational Test RealTime 显示相应的报告,如图 37 所示。


图 37. 检查结果
左边是树形视图,右边是图表

点击查看大图



所学知识的总结

首先,为了安装 Rational Test RealTime integration for Rhapsody,您可以完成以下步骤:

  1. 在 Rhapsody 中创建 Rational Test RealTime 菜单

  2. 创建一个新的配置

  3. 更新编写批文件

接下来,您使用 Rhapsody with Microsoft Visual Studio V6 中的 Rational Test RealTime 的范例。您完成了这些任务:

  1. 编辑 Host_Coverage 配置

  2. 使用 Rational Test RealTime 工具

  3. 向模型添加 Rational Test RealTime 转储点

  4. 生成并构建代码

  5. 运行执行的程序

  6. 检查 Rational Test RealTime 结果

  7. 向 Rhapsody 框架添加工具

  8. 生成更多的运行时分析结果

查看参考资源以得到更多的信息。



参考资料

学习

获得产品和技术
  • 下载 IBM Rational Test RealTime V7.5,一个跨平台的自动化测试解决方案,面向正在创建复杂嵌入式系统、实时及其它跨平台、分布式应用程序的系统开发人员。

  • 试用 IBM Rational Rhapsody,该产品能够使工程师团队在一个协作环境开发实时嵌入式应用程序, 共享和沟通跨学科的设计工作产品。

  • 下载 IBM Rational 软件的试用版

  • 下载这些 IBM 产品评估版,并着手使用来自于 DB2® 、Lotus® 、Tivoli® ,以及 WebSphere® 的应用程序开发工具和中间件产品。

讨论


关于作者

Luc Auvray 是一名 IBM 软件质量工程师,以及法国 Rational Toulouse 开发研究室的团队负责人。他目前从事于系统验证团队的 IBM Rational Test RealTime 以及 IBM Rational Service Tester for SOA 和 Performance Tester 的相关工作。




对本文的评价








IBM 和 IBM 商标属于国际商业机器公司,包括美国以及其它国家。 Java 和所有基于 Java 的商标属于 Sun 微系统公司,包括美国和其它国家。 其他公司、产品或服务的名称可能是其他公司的商标或服务标志。

IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款