51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3524|回复: 4
打印 上一主题 下一主题

[原创] QTP学习总结

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-11-6 14:55:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如果你已经订完了飞机票,可能不知道下一步该怎么走,我把自己的一些理解写下来,希望大家能够有所帮助

一.理解对象的识别(什么是QTP的对象?所有我们要操作的东东都可以称为对象,Browser、WebEdit等等都是)
        1.描述性编程识别对象
                描述性编程有多种用法,一种如下所示
                        Browser("CreationTime:=0").Page("index:=1").WebEdit("name:=" & edit).Set "ha"
                        (这种方法我没怎么用过,个人感觉不如直接使用对象库方便)
                另一种用法,如下面的函数是用来选中所有的选项框的
                        Public function SelectAllCheckBox()
                                '创建满足下面三条属性的对象(即WebCheckBox对象)
                                Set NewObject = Description.Create
                                NewObject("micclass").value ="WebCheckBox"
                                NewObject("html tag").value="INPUT"
                                NewObject("class").value = "checkBox_class"
                               
                                'Page页面下的所有的满足上面条件的WebCheckBox的集合
                                Set NewObjects = Browser("Browser").Page("page").ChildObjects(NewObject)
                                '统计WebCheckBox的数目
                                Numbers = NewObjects.Count
                               
                                For i = 0 to NewObjects.count - 1
                                        '将每一个WebCheckBox对象选中
                                        NewObjects(i).Set "ON"
                                Next
                        End Function
                        大家可跟据这种模式进行其他的各种操作
                其他的用法我也不了解了~~
        2.对象库识别对象
                对象库大家肯定在用了,但是要注意的问题:
                (1).会用高亮显示查看对象库中的对象在实际中对应的位置。
                (2).如何在对象库中使用正则表达式?(选中那个Regular Expression就可以用了)
                (3).在录制过或添加对象时,同样的对象却添加了个 _2 的新对象,怎么办?(Tools=>Option=>Web=>Page/Frame Option=>全选Different Test Object Descriptions,以及Tools=>Object Identification里的设置要与对象库里的对象一致)
                (4).共享对象库的使用。对象库以xml导出导入。
        个人理解:描述性编程是对象库的补充,它们识别对象的机制是一样的,实际应用应当以对象库为主,描述性为辅(像选中所有选项框的那个函数用对象库就难以实现)
二、学习正则表达式
        用多少学多少吧,我觉得不需要刻意去学,够用就行了~
三、函数化封装与调用
        如何加载外部文件?(1.File=>Setting=>Resources可加载.vbs、.qfl、.txt的文件,加载后在Resource=>Associate Function Liberaries下面可以打开查看 2.ExecuteFile "..\..\Libraries\Enviroment.vbs"的模式)
        使用Function或Sub或Class封装一些操作,设置参数,进行调用。(最近在研究使用Class,呵呵)
四、数据驱动
        Excel中的数据导入导出。在帮助里输入DataTable,所有的知识在那里都可查到。(不知道这算不算数据驱动)
五、到了这里我想就应该拿出时间来把QTP仔细研究一下了,把它所有的菜单下面的条目都看一下,结合着帮助,至少也要知道他们各自是干什么的。
        1.了解相对路径的知识。为了脚本的可移置性,相对路径是要懂得的。
        2.怎样设置运行速度啊,错误处理啊,各种加载的东东啊~~
六、框架。
        现在应该对QTP有了一个大致的把握了吧,可能已经跃跃欲试想做个实际的项目了,但是一旦应用起来,问题又来了:如何实现最大的可重用性、可扩展性和可维护性?这时候就要进行一些取舍,参考论坛上的一些框架的讨论,有的舍弃了对象库,用描述性编程Excel关键字驱动(像梦醒十分的框架),有的保留对象库进行多层模式设计。这方面我的做法是使用对象库,分为三层模式进行设计脚本。
七、写一些通用的函数。
        这时,如果对QTP的Reporter不满意了,可能要自己写个WriteLog()函数将结果写到.log或Excel文件里去。写一些处理xml、excel,连接数据库的通用的函数,积累一些常用的方法,如        SystemUtil.CloseProcessByName("iexplore.exe")、SystemUtil.Run "iexplore.exe",URL、DeskTop.CaptureBitmap ...等等等等
八、后来,你可能觉得根据项目的需要,QTP许多工作做不了,于是,可能需要学习Windows API,可能学习编写dll库文件...学习一些与QTP没有关系的知识,还可能自己编写一些小程序让QTP调用。这时,你会明白,QTP只不过是一个工具而已~~

我自己学习QTP也才三四个月吧,还有很多的知识需要学习,如果我的理解有错误,还请给我指出来,不盛感激!
打这些字花了很长时间,如果对新手有所启发,我将非常高兴!希望能与大家共同进步!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-11-6 19:45:30 | 只看该作者
我只学了半个多月,现在对什么都是一知半解,勉强录制一些脚本,错误不好自己解决,又没有太多的时间上论坛,迷糊的很呢。
1.对对象库的使用总感觉帮不上什么忙,出错从对象库看的话很难找出问题。
2.数据驱动的理解和楼上的一样,总感觉那是用来做参数化的,对于驱动的概念还没有。
3.脚本的可重用,现在才开始学习。。。。
咳,感觉效率很低啊。。。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-11-8 09:53:27 | 只看该作者
heh,我也才学习一个月,懂得也不多,但看到楼主有了这些成就对自己也是个榜样吧,希望能共同学习
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
    发表于 2007-11-10 22:08:27 | 只看该作者
    非常感谢楼主提供了自己的学习经验
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2011-5-24 17:38:34 | 只看该作者
    支持  学习中
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-10-3 02:15 , Processed in 0.093508 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表