VSTS2010的一个新功能–CodedUI Test简介

VSTS2010 Beta 1 终于出来了,安装的体积不大,只有1.22GB。之前看了很多VSTS2010的新特性,尤其是测试方面的,非常期待,昨天从MSDN下下来以后,失望了一下,因为很多新功能都是基于TFS2010的,我没有装,所以很多新功能都体验不了。例如让人很激动的Lab Manager,这个需要TFS,还有支持虚拟化技术的CPU。

如果你对VSTS的测试员版本感兴趣,而又没有TFS2010,只装了VSTS2010 BETA 1,那么就只能体验一下VSTS2010的一个新功能–CodedUI Test。微软在VSTS2010以前的版本都不太重视手工测试和功能测试的支持,估计是因为Visual Studio本来是一个集成开发环境的原因吧,不过到了2010,情况完全不一样了,微软想把VS改造成为一个贯穿整个ALM(Application lifecycle management)的主要工具,所以在VSTS2010中加强了对测试计划,测试用例,相关报告等的支持,CodedUI Test就是面向功能测试工程师,给他们提供自动化测试支持的这么一个新功能。

下面我一步步演示一下怎么用CodedUI Test来对WINDOWS自带的计数器实现简单的自动化功能测试。

1. 新建一个测试项目,这个步骤与前几个版本的VS一样,就不重复累赘了。

2. 在该测试项目中新建一个CodedUI Test,如图所示

add-coded-ui-test

3. 当CodedUI Test被创建以后,VS会提示用户,是否立刻创建相关的自动化测试代码,如图所示:

after-create-options

这里会看到3个选项

  1. Use an action recording associated with a test case or shared steps,这个选项是建立在有TFS的情况下才能实现的,因为在2010中,测试工程师可以编写测试用例,并且保存在TFS中,当有人要用CodedUI Test来实现某个测试用例的时候,就可以通过这个选项来把自动化测试和测试用例关联起来,不过可惜我没有TFS……
  2. Use the recorder,这个选项比较常用,就是启动一个VSTS自带的录制工具来实现自动化测试,这个也是下面要详细分享的。
  3. User the UI control Locator,这个选择会直接用VS的UI Control Locator来对被测程序的控件进行识别。本文不会详细描述。

4. 选择User the recorder,然后就会弹出一个录制的窗口,如图:

record-step

点击那个“Record Actions”就能开始录制了。VS的录制器做的挺人性化的,如果焦点不在录制器上,那么录制器就会变成透明,方便用户对被测软件的关注,下面是两个比较的图片。

recorder

选中录制器

recorder-on-top

没有选中录制器,而且在被测软件的标题栏中还有一个状态提示,表面现在录制器在工作。

5. 开始执行测试用例,录制器会记录下所有的步骤,如图:

record-detail

我是在计算器上进行了1+1的操作。录制器记录下了所有操作(大家可以看到是Click ‘1’ button, Click ‘+’ button等操作),现在把这3个操作合并成为一个方法,填入方法名,然后点击“Generate Method”,测试方法就被生成了,回到刚才的Record Actions的TAB,我们可以看到所有已经被录制的操作,如图:

all-actions

这里每一个操作,到最后对应的都是一个方法,也意味着这些操作都是可以被重用的,所以每一个Action的颗粒度大家可以自己把握,个人认为不应该做太大颗粒度的Action,首先不利于重用,其次也不利于维护。

6. 增加检查点,对于一个自动化测试来说,自动化执行和自动化检查都是必不可少的。

add-assertion

现在把标签从Record Actions切换到 Add Assertions中,选中“UI Control Map”下方那个唯一可用的按钮,系统会弹出一个新的窗口,如图:

select-control

拖动右上角的那个十字按钮到某个控件上,这里可以把这个十字拖动到计算器的结果栏中。这时候VS识别出这是可以Edit控件,我也确定这个就是我想要对之进行验证的地方。点击ADD

add-control

选择了正确的控件,还需要对正确的属性进行比较。第一步是显示该控件的所有属性

show-prop

如图:

control-property

图中,上面的部分是公共的属性,例如类名,名称,是否激活等;下面的部分是该控件特有的属性,例如它的文字属性(Text),是否是只读的等等。我现在只需要比较Text属性是等于2.的就可以了。因为很简单,1+1=2. 完成这一步以后就能看到一个控件被添加到了UI Control Map中,里面已经记录了那些属性需要进行比较。

control-added

7. 回放检查,浏览到刚才生成的测试,然后点进运行,我们就会看到VSTS在重复我们刚才的操作,并且对结果进行了比较,测试执行完毕。

至此,我们已经完成了一个简单的CodedUI Test。微软的VSTS2010提供了与其他类似的自动化功能测试软件的录制回放功能,但是与常见的功能测试自动化工具(例如QTP,微软的RFT)比较而言,VSTS2010所提供的Recordor使用起来并不是十分方便,感觉操作起来都不如其他测试工具用起来方便。不过有一点是非常值得肯定的,就是微软没有大肆宣扬他的工具能够实现录制回放功能,而解除过自动化测试的朋友都知道,用录制回放来实现自动化测试是相当地危险的,而且成功的机会也很小。这可能就是微软把VSTS2010提供的功能测试自动化的功能命名为CodedUI Test的原因吧。首先这是一种测试,其次,它还是一种针对UI的测试,而其实现是代码。这个对于以后修改和维护测试来说,是比较方便的。

由于没有TFS,所以没有能把自动化测试和测试用例联系起来,我个人觉得,如果单独使用CodedUI Test的话,实现自动化测试真的比较费劲(可能由于BETA,加上我在虚拟机上安装,奇慢无比),而且看不出来VSTS2010比其他商业软件或者开源解决方案有什么优势。不过我感觉如果能把CodedUI Test与测试用例管理结合起来,然后再利Lab Manager上的一些功能,一定会有不错的效果。不过Lab Manager这个东西太大太重,在中小公司估计是比较难推广的。

VSTS版本不断升级,慢慢地从一个纯粹的集成开发环境,过度到贯穿整个应用程序开发生命周期管理的平台了。

Leave a Reply

Your email address will not be published. Required fields are marked *