开发测试组件——测之重器(5)

发表于:2017-8-09 16:48

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:张俊卿    来源:51Testing软件测试网原创

分享:
  2.2用Eclipse来DebugFitNesse
  在上一节里,简单地讲解了FitNesse脚本和后台代码之间的关系,这是为编写开发组件的代码做准备。但在编写代码之前,有一个技能必须要掌握,那就是——Debug。
  说起Debug,我想起了一个朋友和我谈过的一件事情。我的这个朋友在一家外资公司上班,这家公司主要在云计算领域做人事管理软件,他们公司准备要上自动化,就开会为自动化框架做选型。在选型会议中,一个小伙子推荐了一款可以在txt文件里写脚本去调后台Java的框架模型,大家都觉得不错,因为用这种框架写测试案例非常容易。这时有人问了一个问题:它可以Debug吗?一片寂静。
  那时他们的框架是全Java框架,包括编写测试案例也必须用Java。这样的话,如果测试案例的某一步出错,可以在Eclipse加断点,然后用Debug去发现问题,虽然这种框架必须要招聘Java程序员编写案例,但是用它编写案列风险小,有问题Debug一下就知道原因出自哪里。
  如果不是全Java框架,是不是就不能用Debug了呢?答案是否定的,试想一下,如果我们用FitNesse搭建的框架连Debug都不能做,那么谁还会有信心搭好这个框架呢?下面就说一下如何用Eclipse来DebugFitNesse。
  1.在eg包下创建一个新类,命名为DebugTest。内容如下:
  packageeg;
  publicclassDebugTest{
  privateString_name;
  privateString_team;
  publicvoidsetName(Stringname){
  _name=name;
  }
  publicvoidsetTeam(Stringteam){
  _team=team;
  }
  publicStringpersonInfo(){
  Stringinfo="mynameis"+_name+"andmyteamis"+_
  team;
  returninfo;
  }
  }
  2.在TwoMinuteExample这个测试案例中,单击“编辑”按钮,把所有的内容进行如下替换。
  !***<Hidden
  !defineTEST_SYSTEM{slim}
  '''此处导入后台代码包名'''
  !|import|
  |eg|
  |FitNesse.fixtures|
  *!
  '''此句话专门用来Debug'''
  !defineCOMMAND_PATTERN{java-Xdebug-Xrunjdwp:transport=dt_sock
  et,server=y,suspend=y,address=1044-cp%p%m}
  '''测试脚本'''
  !|script|debugtest|
  |setname|james|
  |setteam|lakers|
  |check|personinfo||
  3.保存后不要立刻单击“Test”按钮。先在Eclipse做以下配置。
  (1)打断点,如图2-2-1所示。
图2-2-1打断点
  (2)右键选择“DebugAs”→“DebugConfigurations”。具体操作如图2-2-2所示。
  图2-2-2选择DebugConfigurations
  (3)在弹出的对话框里选择“RemoteJavaApplication”,然后按图2-2-3所示进行配置,Port为“1044”,单击“Apply”按钮,此时不要单击“Debug”按钮。
  图2-2-3选择“RemoteJavaApplication”
  (4)现在开始在你的前台案例里单击“Test”按钮。注意页面会如图2-2-4所示一直停在加载过程中。
 图2-2-4单击“Test”按钮
  (5)回到Eclipse面板,此时单击“Debug”按钮,如图2-2-5所示。
  图2-2-5单击“Debug”按钮
  (6)熟悉的Debug控制台呈现在我们面前,如图2-2-6所示。
  图2-2-6Debug展示
  简单介绍一下RemoteJavaApplication(Java远程调试),Sun在设计JPDA(JavaPlatformDebugArchitecture)时就留下了这个接口,我们只需在服务器上运行Java程序时,给JVM传递几个参数,设定一个监听端口,然后用Debug客户端(Eclipse内置RemoteJavaApplication)来访问这个端口,就可以进行远程调试了。
  以下是决定FitNesse是否能调试的关键语句,脚本里要加入这句话:
  !defineCOMMAND_PATTERN{java-Xdebug-Xrunjdwp:transport=dt_sock
  et,server=y,suspend=y,address=1044-cp%p%m}
  作业:
  1.观察本节测试用例和后台代码之间的映射关系,留意脚本里setname、setteam,以及personinfo与后台代码之间的关系。观察它们的调用方法和上一节中的表格型调用方法是否有所不同。
  2.自己编写一个Java类,然后写一个前台脚本去调用,并Debug。

本文选自《测之重器——自动化测试框架搭建指南》第二章,本站经电子工业出版社和作者的授权。
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关文章
基于Web Service 的测试案例—测之重器(4)
22/2<12
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号