51Testing软件测试论坛

标题: CheckPoint 疑问 [打印本页]

作者: anson_xiong    时间: 2007-8-22 00:02
标题: CheckPoint 疑问
----------------------------------------


QTP版本:9.2
QTP插件:.Net Add-In
测试对象:.Net 2.0 平台开发的程序

问题描述:

    原来用QTP建立了一个SwfTable对象的CheckPoint(附图一)“報表結果”,后来因为数据有问题,把原来的CheckPoint删除,重新做了一次CheckPoint(附图二),在CheckPoint属性对话框中把CheckPoint Name修改为和原来一样的“報表結果”时,提示说“報表結果”已经存在了,要我重新定一个名字!(附图三)

    这时才发现原来QTP并没有将原来定义的CheckPoint属性删除,而是依然还存在,这时,如果你在Expert View中将CheckPoint代码重新修改为“報表結果”:

    SwfWindow("ERP").SwfWindow("COM").SwfTable("報表結果").Check CheckPoint("報表結果_2")

改回

    SwfWindow("ERP").SwfWindow("COM").SwfTable("報表結果").Check CheckPoint("報表結果")

然后再去Keywords View查看该CheckPoint属性的时候,你会发现刚才的CheckPoint属性居然还是存在的!!!并没有删除!!!

那如果是这样的话,我们编写的QTP脚本在历经多次这样的反复之后,冗余的东西不是会原来越多?而且,我实在没有找到哪里可以将这些冗余的CheckPoint对象找出来,并删除的地方。

    当我再把写好的一支QTP脚本作为范本另存为成另外一支脚本准备做一些修改的时候,发现上一支录制的CheckPoint还会一直存在,新建立的CheckPoint只能不断在CheckPoint名称后加上“_2”,“_3”,“_4”,……这样延续, 严重影响我的脚本的可读性,还会造成冗余。


    有没有朋友也遇到这样的疑问或者有办法能够解决我的困扰的?探讨一下?

    我现在的做法是写一些干净的 Action ,其他测试人员编写类似脚本的时候,直接 Call to Copy of Action,这样才不会不断堆积冗余的东西。


    any ideas?

[ 本帖最后由 anson_xiong 于 2007-8-22 00:10 编辑 ]
作者: walker1020    时间: 2007-8-22 00:44
这样的问题的确存在,好像是 QTP 自动 给CheckPoint名称后加上“_2”,“_3”,“_4”,如果你对同一个对象多次增加 CheckPoint.
作者: walker1020    时间: 2007-8-22 00:49
个人的建议是:
1,不要删除 带有CheckPoint的语句。如果需要修改对象需检查的属性,那么可以先把光标放在CheckPoint的名字上,然后 修改它。
2,自己写代码去检查它。你还可以参考http://bbs.51testing.com/viewthread.php?tid=86742
作者: winfood    时间: 2007-8-22 09:29
版主的建议比较好,如果想彻底避免这样的问题还是用自定义检查点比较好。

QTP里面自带的CheckPoint和Output Value都有这样的问题:在录制过程中他们是作为一类对象被录制下来的,CheckPoint和Output Value类型对象的形式都是CheckPoint(****)的。但是这些对象却被隐藏了,在对象仓库(Object Repository)里面无法管理(查找和编辑)他们。

我试过QTP9.0里面只有Database CheckPoint类型被保存到对象仓库里面。
作者: anson_xiong    时间: 2007-8-22 10:45
Thank you all,

QTP這種把CheckPoint當作對象保存起來的做法,直接的後果就是會導致腳本中會存在冗餘的CheckPoint,而且,無法清除.文件越來越大,間接導致測試人員維護測試腳本時容易對CheckPoint常生疑惑.引起不必要的麻煩.

To walker1020

1. 在實際運作過程中,事實上是不太容易做到的,腳本有維護,就會有CheckPoint的增刪,當然,您的建議也說明了對CheckPoint的刪除要謹慎.
2.(To winfood also)
    對於一般測試人員而言,直接填加CheckPoint要比自行編寫腳本進行檢查要來得簡單而且容易的多,尤其是像我們公司使用SwfTable來顯示報表查詢結果的情況而言,直接對SwfTable做CheckPoint,似乎要比自己定義檢查點要快捷簡單的多,畢竟SwfTable的CheckPoint,QTP會自動替你取得整個Table的結構和數據,測試人員只要在上面填寫,修改好自己預期的數據就勿須再做更多.也畢竟報表查詢出來的內容和Fields往往很多很多.

     不過,你們的建議倒是讓我重新審視CheckPoint的使用時機,呵呵呵呵,我覺得簡單的檢查就可以直接使用自寫腳本檢查了,比如檢查某個Control的Text等屬性的時候.呵呵,這樣腳本的可讀性也會更好.


     接觸QTP不久,因為本身是開發主管,所以多從開發人員角度看問題,如有不妥處,大家見諒,多多討論哈,呵呵呵呵.


sdlkfj3
作者: anson_xiong    时间: 2007-8-22 10:50
寫腳本對於開發人員而言自是沒有太大的問題, 我所考量的是腳本的可讀性, 以及對於一般測試人員能夠兼顧到, 讓一般測試人員也可以就理解,併處理一些簡單的QTP應用.對於他們而言和程序關聯太大的地方,都會是難點和制肘的地方.

呵呵,在一定的情況下,簡單而又實用會是一個比較有產出原則吧.


sdlkfj3
作者: walker1020    时间: 2007-8-22 22:45
原帖由 anson_xiong 于 2007-8-22 10:50 发表
寫腳本對於開發人員而言自是沒有太大的問題, 我所考量的是腳本的可讀性, 以及對於一般測試人員能夠兼顧到, 讓一般測試人員也可以就理解,併處理一些簡單的QTP應用.對於他們而言和程序關聯太大的地方,都會是難點和 ...


这些观点值得借鉴和学习,特别是 “简单而又实用”这个原则
作者: 牛牛是乖乖    时间: 2007-8-22 23:10
原帖由 walker1020 于 2007-8-22 00:49 发表
个人的建议是:
1,不要删除 带有CheckPoint的语句。如果需要修改对象需检查的属性,那么可以先把光标放在CheckPoint的名字上,然后 修改它。
2,自己写代码去检查它。你还可以参考http://bbs.51testing.com/ ...



walker:
怎么修改对象需检查的属性呀.
我刚学.
是右键吗
文档里没写这个功能.
有深入的文档吗?
作者: anson_xiong    时间: 2007-8-23 09:55
原帖由 牛牛是乖乖 于 2007-8-22 23:10 发表



walker:
怎么修改对象需检查的属性呀.
我刚学.
是右键吗
文档里没写这个功能.
有深入的文档吗?



你看下面的圖片:
作者: walker1020    时间: 2007-8-23 16:44
选择 checkpoint Property后, 出现一个对话框,前面带有对号的属性表示你要检查的属性。QTP会默认为你要检查这些属性。根据需要,可以增加或减少要检查的属性。我记得有个Add/ 按钮,就可以实现这些。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2