手把手教你TestComplete_行为模式设计和分析

 

 

 

本来以为不会再写TestComplete的系列文章了,没想到工作上又用到了,场景是这样的,先看下图:

 

001.jpg

 手把手教你TestComplete_行为模式设计和分析_第1张图片

 

 

这是一个测试工具叫做Clearquest,用于记录defect,在查询出结果后,导出列表,但是由于列表中的Description内容太长,不单无法显示完整内容,导出的文件中,该字段的内容也是不全的。找了半天,也没有找到设置方法。只好决定写个小工具来将每个defect的Description的内容贴出来,写进excel文件(这个内容此处不做讨论和讲解)。

 

首先描述一个普通操作者的行为模式:

1.         保证页面的初始状态,光标在第一页;

2.         点击列表中的第一条

3.         点击下面显示的Description

4.         按键ctrl+a和ctrl+c

5.         点击列表中的下一条

6.         点击下面显示的Description

7.         按键ctrl+a和ctrl+c

8.         当页操作完成后,点击右边的滚动条

9.         找到相应的记录,进行点击

 

这个行为模式有几个问题:

1.         如何判断什么时候该点击右边的滚动条

别跟我说当页完成就该点了,需要用技术语言来描述。

如果知道该表的总行数,还得知道当页的行数,你可以写死当页的行数,技术上是可以实现的

 

2.         如何确定点击哪一行

首先需要知道自己该点击哪行,这个有循环记数,应该知道的,到时候点就是了

 

3.         如何点击滚动条

别点击中间,要点击整个滚动条的最下端,如果数据多的话,这个最下端需要非常的精确,否则可能页面没有翻到最后一页。

 

4.         如何知道滚动条点击后,页面刷新完成

注意这是代码实现的,在人看来,点击滚动条后瞬间完成了,但是对于代码来说,很可能要点击相应的行的时候,该行还没有出现在页面上呢。需要设置多长的自动等待时间比较合适呢,这个可以估摸着来,设置长了,等待时间太多,设置短了,很快就会报错说找不到某某行,或者报错说某某行不在屏幕上

 

 

 

 

优化后的行为模式:

1.         保证页面的初始状态一致,光标停留在第一行;

2.         点击Result Set

3.         按向下的箭头

4.         点击下面显示的Description

5.         按键ctrl+a和ctrl+c

6.         点击Result Set

7.         按向下的箭头,直到结束

8.         点击下面显示的Description

9.         按键ctrl+a和ctrl+c

 

可以看到,这个行为模式更简单,避免了翻页滚动条的操作和行的定位与显示的匹配。

 

不过实际上,实现的时候仍然有问题需要注意,在粘贴出Description的内容后,不可以立刻用代码取出来,而是需要等待一下,具体时间跟粘贴出的内容大小有关,以我的这个情况,最长的也就三五百个字,有100毫秒就可以了,否则读取的时候系统粘贴板里面还没来得及写进去呢。

 

 

 

在自动化测试中,有几个地方需要考虑周到一些:

 

1.  能使用键盘尽可能减少鼠标操作;

2.  在操作完成后,下一个动作执行的前提条件是否能够迅速实现。经常出现的意外情况是,上一个操作完成了,页面进行自动刷新,在刷新的过程中,某个对象已经进入了内存,于是调用了点击动作,但是该对象还没有来得及在页面上显示出来,于是该点击动作是无效的,新的窗口没有弹出,于是报错,提示窗口找不到。比较狠的处理方式是在这个老是出问题的地方,别直接点击对象,看下该对象的VisibleOnScreen是否为True。要还有问题,试试改为SendKey(“[Enter]”);

3.  保持环境的干净,常见情况是QQ弹出来一个消息框,告诉你最新的新闻是啥,刚好挡住了操作的页面,回头又该提示你找不到什么对象了。

 

 

这个代码非常简单,就不附录了。

 

 

 

 

 

你可能感兴趣的:(手把手教你TestComplete_行为模式设计和分析)