IBM Test Framework和Log4j

  一直以来在西安IBM实习,都是干的没有什么技术含量的活。终于,boss给我了一个有点技术含量的——帮一个同事完成一个framework。

  这个framework是基于IBM Rational Functional Tester这个工具的,用户使用RFT进行自动化测试,使用前需要进行操作录制,也就是按照流程在屏幕上做一遍动作,然后RFT把这些动作转换为代码,以便下次能根据代码完成自动化测试。但是,一般来说屏幕录制生成的代码质量是不高的,也就是说把我机器上的代码放在别人的机器上就不能用了。比如A用户录制的代码里面涉及到了点击屏幕坐标为(x,y)的按钮,但是B用户分辩率和A用户不一样,导致屏幕坐标失效,操作失败。为了解决这个问题,用户总是要改一些代码,这样就失去了自动化测试的意义。

  于是,我的同事想出了这样一个方法,放弃提前录制的步骤,直接让用户写xml,描述他要完成的操作,我们在解析xml文件时,通过用户的描述动态的找到屏幕中的控件,然后完成对各种控件的操作。

  比如下面的xml代码

1 <input value="spss">
2 <widget type="textField" text="Password: " />
3  </input>
4  <click>
5 <widget type="button" text="OK" />
6  </click>
  用户要完成的动作是:

  1.向标题为Password:的文本框输入“spss”字符串

  2.点击OK按钮

  看,这样是不是很简单!

  但是,摆在我们前面的问题很明显,提供全部动作和对象。用户描述的widget type可能是各种各样的控件,表格等等。我就负责对表格,列表等控件的实现,花了一天的时间研究了已有的代码,和同事讨论了一下,经过不少时间的努力,总算完成了我的任务,现在,这个IBM Test Framework基本的功能算是完成了。

  现在,需要加入的内容是:

  1.Log

  2.动作模板

  Log我想不用解释了吧,在网上看到对Log4j的评价很高,研究了一下,发现他果然很强大,决定将Log4j加入IBM Test Framework中去,一来是完成Log的功能,二来也算是对Log4j的学习,方便以后的使用。

  动作模板是同事提出来的设想,简单来说就是对于现在的xml,用户是要分解动作的,比如说我想要删除一个文件,我需要先想好怎么删除:在屏幕上找到一个文件,然后点击右键,选择删除,接着确认删除等。这是相当繁琐的,我们可以将上述步骤简化成一个模板,用户使用时只需要说明要删除的文件名即可,具体如何删除对用户透明。

  现在,我的同事现在有一大堆的事情要做,他的framework已经快变成我来实现了,anyway,这是一个学习的好机会,我要努力完成。

  Matthew,不要不给力呀!

原文地址:https://www.cnblogs.com/iammatthew/p/1874910.html