Qtp经验杂谈续(一)

上一篇 / 下一篇  2010-02-06 08:19:43

最近一直在忙,好长时间没来了,我们前些日子结束了一个项目,最近一直处于对应阶段。遇到了一点问题,还有一些体会和大家分享一下。

(一) 头疼的Exist

我们做的项目是作成qtp自动化测试脚本,测试对象是一个java application程序。我们用的Qtp9.2,

而且还用的 Java插件。

前天客户给我们指出了一个bug,我都无语了。

是关于一个对话框的判断。

① If JavaWindow("AXXX").JavaDialog("BXXX").Exist(3) Then

②     JavaWindow("AXXX").JavaDialog("BXXX").Close

③ End If

④ JavaWindow("AXXX").Close

出错就出现在第 ④行,Qtp运行停止了。

我一看log,是因为在第1行“JavaWindow("AXXX").JavaDialog("BXXX").Exist(3)”这个判断是false,所以没有执行第2行的对话框关闭操作,所以第4行的主窗体关闭不掉出错。

这时我再看看客户给的截图,当时差点没疯了,截图上显示“BXXX”的dialog是存在的,那么为什么qtp判断是false呢,因为我在以前的日志里也说过,之前的项目中遇到过Exist不好用的时候,怎么又出现了。

然后我就拿具体程序进行测试,重复不断的跑着几行代码,开始还是很正常的,判断都是true的,但是跑着跑着有一次就判断是false了,bug重现了。这是怎么回事呢,我就再跑,结果循环跑了几次,这次又出现了。这说明还真是个问题。

我现在好矛盾

 矛1 不知道是不是对象没有识别。

 盾1 我查看了对象属性,完全符合。

 矛2 不知道是不是Exist方法不好用

 盾2 这个方法经常用,也不是经常出现这种问题,难道是Qtp的bug,不知道。

但是怎么解决呢,考虑过用描述性语言,但是考虑到本次项目都是利用录制方式,为了统一,就没有用描述性语言,再说了如果是Exist方法的问题,那么改成描述性的也得用Exist,那还不是一样啊。

但是也不能不改啊,最后,我将Qtp的 Java插件没有载入,直接用 Window录制,变成下边的代码

① If Window("AXXX").Dialog("BXXX").Exist(3) Then

②     Window("AXXX").Dialog("BXXX").Close

③ End If

④ Window("AXXX").Close

用上边这个 Window代码跑了两天结果没有问题,就这样吧,难道是 Java插件的问题,呵呵,还是迷惑中。

关于这个问题就唠叨这么多,期待以后能解决,希望各位多给意见。

(二)一些想法

做了Qtp也有一年多了,有时间也会想一想,做了这么多的项目,都是应客户的需求做的自动化测试脚本,而且做完之后,我们也不知道客户那边对这些脚本的利用情况。

我们对一个项目连续做了几期Qtp脚本,从一开始的最简单的 测试所有点击menu操作,检查对应的弹出窗体是否被正确打开 开始,到后来的测试可以这么说,将正常的人力测试几乎全部转换成Qtp自动化脚本。在做的时候也遇到过很多困难,随着业务越来越复杂,脚本实现起来也越来越困难,甚至有的测试点是qtp实现不了的,最后只好放弃。

做了这几期之后,我认为这些脚本不是都能利用的很好。

我认为不要为了Qtp自动化就一味的追求全部自动化。我感觉做的第一期的自动化脚本对项目会很有帮助。因为它做的是打开所有menu,然后确认对应的窗体是否正确打开。那么这些操作是比较单一的,机械的,重复的。如果menu比较多的时候,人来进行手工测试难免会不耐烦,或精神不集中。那么利用Qtp来做的话,这些操作作成脚本的话会很简单,而且也会很健壮,那么用这个脚本进行测试的话,测试就变得很简单,而且还很准确。所以,我认为将程序中一些操作简单的,业务逻辑比较简单的,相对重复的一些操作作成自动化会比较好。自动化不能完全代替手工测试的,有很多测试点是自动化不可能实现的。自动化只是手工测试的一个辅助工具,能帮助测试人员减轻一些负担,提高一些测试效率和质量。


TAG:

 

评分:0

我来说两句

日历

« 2024-05-16  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 2755
  • 日志数: 3
  • 建立时间: 2010-01-18
  • 更新时间: 2010-07-03

RSS订阅

Open Toolbar