设为首页 收藏本站
查看: 1652|回复: 0

[经验分享] 利用 Rational Functional Tester 实现 ITCL (或者 IBM) 框架

[复制链接]

尚未签到

发表于 2015-10-4 12:35:08 | 显示全部楼层 |阅读模式
  IBM 框架以前被称作为 ITCL 框架,由质量软件工程(Quality Software Engineering) 和 IBM 中有经验的自动化团队合作开发而成的。这个框架由三层架构组成,架构的实现贯穿了应用对象、任务和测试用例包(IBM 包)。
  潜在于应用对象、任务和测试用例包之下的基本原理是:


  • 层次化的体系架构
  • 将“做什么”与“如何做”分离开来
  • 代码重用
  • 一致和清晰的组织结构
  • 快速增强的能力
  • 迅速的调试
  • 有效地组织文件
  • 启用协作
  • 学习他人
  下面是对应用对象、任务和测试用例的解释说明:


  • 应用对象:储存有关你的应用程序中的GUI元素信息。同时在这里也可以编写你的Getter 方法,这些 Getter 方法可以返回对象,使 调用者能够对这些GUI元素进行查询和操作。一般情况下,这些方法在Task层中进行调用。
  • 任务:在这里你将编写可重用的方法,这些方法在你的应用程序中执行通用功能。同时在这里,你将编写可以处理和查询复杂的特定应用程序控件的方法。在任务中的方法可以被测试用例调用。
  • 测试用例:导航一个应用程序,验证其状态,并记录其结果的方法。

DSC0000.gif
DSC0001.jpg


DSC0002.jpg
回页首

  实施方法论
  在本章节中概述的方法论详细说明了实施IBM框架的5个步骤。
  步骤1. 首先,在你的本地驱动器上创建一个新的项目。这个项目中有一个你可以储存、维护、编译和运行你的自动化代码的储存库。在Functional Tester中,选择File > New > Functional Test Project。给这个项目命名,并点击Finish
  步骤2. 将 IBM 的包― 它包括将在自动化脚本中广泛使用的工具类 ― 导入到你的项目中。尽管这可能只是简单地将路径关联到ibm.jar文件,但是将 IBM 的包导入到你的项目中就可以使你更容易地检查这个包的内容,然后在调试的时候进入到包中。这个IBM的包可以在这篇文章末尾的下载部分中进行下载。
  导入 ibm.jar 包


  • 在 IBM Rational Functional Tester中,进入屏幕左边的Projects视窗,点击在步骤1中创建的项目
  • 选择File > Import。选择Zip file然后点击Next。使用Browse按钮在你储存这个文件的指定位置上查找ibm.jar 或者ibm.zip 文件。
  • 保留所有默认设置并点击Finish
  • 你现在应该可以在Functional Test Projects视窗中扩展你项目的名称。你可以在它下面看到一个名为ibm的文件夹。
  步骤3. 创建一个名为AppObject的包


  • 在IBM Rational Functional Tester中,进入屏幕左边的Projects视窗,在步骤1中创建的项目上点击。
  • 选择File > New > New Test Folder
  • 给文件夹命名为AppObject
  • 点击Finish
  • 重复1-4的步骤,创建TasksTestCase文件夹
  什么是 AppObject 包?
  在这个包中你必须映射所有被测试应用的对象。一个最常见的建议是为每一个屏幕准备单独的脚本,以此确保更好的对象以及分类的的重用和组织。比如,创建一个名为login的脚本,它将使所有的对象跟login界面保持相关。你同样可以创建其它sentinbox 界面等等相关的脚本。
  使用 AppObject 文件夹进行工作


  • 在 AppObject 包中建立一个空脚本
  • 选择 AppObject 包,点击右键并选择 Add Empty scrīpt,如图1所示。

图1. 添加一个空脚本
DSC0003.jpg

  • 将其命名为Login,并点击Finish
  • 从脚本资源管理器中双击Private Object Map
  • 确保 mail.yahoo.com site 网站(或者被测试应用)是打开的。
  • 从 Private Object 图中,点击Test Object > Insert Object(s),如图2所示。

图2. 插入一个测试对象
DSC0004.jpg

  • 将指针图标工具从下面的对话框拖到你想映射的目标位置,如图3和图4所示。

图3. 通过拖拽选择一个对象
DSC0005.jpg
图4. 选择的对象
DSC0006.jpg

  • 点击Finish
  • 你的Private Object Map窗口应该看起来如图5所示。

图5. 已完成的 Private Object Map
DSC0007.jpg

  • 选择你最近添加的对象,点击右键并选择Add to scrīpt AppObject.Login
  • 对所有你想要添加到这个脚本的对象重复6-10的步骤。
  • 点击File > Save并关闭它。你的脚本资源管理器应该看起来如图6所示。

图6.Login的脚本资源管理器
DSC0008.jpg

  • 类似地,你可以尽可能创建更多的脚本到你的项目中,并添加相关的对象。
  自动产生 AppObjects 代码
  一旦你将你的对象添加到你的对象地图中,就可以通过编写几行代码自动产生你的getter 方法。这些getter 方法将帮助你访问跨越或在项目中被添加的脚本中的对象。你将在AppObject文件夹中创建一个空的脚本,编写如列表1中所示的代码来自动产生getter方法


  • 在AppObject文件夹中创建一个名叫getter的空脚本文件。
  • 创建列表1中的代码。

列表1.自动生getter的代码
//IMPORT THESE 2 STATEMENTS AT THE TOP OF scrīpt
import java.util.Vector;
import ibm.tools.ClassGenerator;
//WRITE DOWN  THE BELOW CODE IN TESTMAIN FUNCTION
public void testMain(Object[] args)
{
Vector v = new Vector();
v.addElement (new AppObject.Login ());
//ADD ELEMENT FOR ALL THE scrīptS YOU HAVE IN YOUR AppObject
new ClassGenerator().updatescrīpts(v);
}


  • 你的Getter脚本内容看起来应该如图7所示。

图7. Getter 脚本
DSC0009.jpg

  • 选择scrīpt > Run来运行这个脚本。
  • 运行一次以后,当你点击你的Login脚本时,它将查询你是否要装载这些变更。
  • 点击Yes,你应该可以看到你的Login脚本已经有了Getter功能,如图8所示。

图8. 用 Getter 脚本登陆系统的功能
DSC00010.jpg
  步骤4. 创建任务
  任务是你可以编写最大限度重用和最复杂代码的位置。


  • 首先在Tasks文件夹中创建一个脚本(跟前面的AppObject Folder操作一样)
  • 选择Tasks文件夹,右键点击它并选择Add Empty scrīpt
  • 指定详细的名称并点击Finish
  • 将列表2中的代码插入到脚本中。

列表2. 登陆任务
//DECLARE THE OBJECT OF THE scrīptS EXIST IN APPOBJECT
public AppObject.Login lgn = new AppObject.Login();
….
….
public AppObject.Login lgn = new AppObject.Login();
public void AssignLoginInfo()
{
lgn.getText_login().setText("abc");
lgn.getText_passwd().setText("New1");
}
public void testMain(Object[] args)
{
}


  • 你的脚本内容应当看起来如图9所示。

图9. 修正脚本内容


  • 你可以在同一个脚本或者新的脚本中根据每个应用程序的需要随意增加各种功能。
  接下来,你将使这些功能实现自动化
  步骤5. 创建测试用例
  在测试用例中,你可以编写现有的步骤来完成这些行为,这将继承一些 Tasks 和 Appobject的属性特征。


  • 首先在Tasks文件夹中创建一个脚本(跟前面的AppObject Folder操作一样)
  • 选择Tasks文件夹,右键点击它并选择Add Empty scrīpt
  • 指定详细的名称并点击Finish
  • 将列表3中的代码插入到脚本中。

列表3. 测试用例
//DECLARE THE OBJECT OF THE scrīptS EXIST IN TASKS
//OBJECT CREATION OF TASKS LOGINTASK scrīpt
public Tasks.LoginTask lt = new Tasks.LoginTask();
….
….
public void testMain(Object[] args)
{
//INVOKING THE BROWSER
startBrowser("mail.yahoo.com");
//ASSIGNED THE USER NAME AND LOGIN INFO
lt.AssignLoginInfo();
//CLICKED ON LOGIN/SUBMIT BUTTON
lt.lgn.getButton_signInsubmit().click();
//FURTHER ACTION CAN BE WRITTEN ACCORDIUNLGY
}


  • 你的脚本内容看起来应当如图10所示

图10. 最后的脚本


  • 现在运行这个脚本,打开浏览器,输入用户名和密码,然后登陆到Yahoo帐户

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-122574-1-1.html 上篇帖子: IBM发布Lotus Notes/Domino蓝图 下篇帖子: IBM RSA (IBM rational software architect ) V8 学习之四 C++类图转换成c++代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表