日历

« 2008-09-07  
 123456
78910111213
14151617181920
21222324252627
282930    

统计信息

  • 访问量: 427
  • 日志数: 6
  • 建立时间: 2008-03-19
  • 更新时间: 2008-09-05

RSS订阅

我的最新日志

  • 【越描越黑】Html标签一览表

    2008-9-05

    HTML标签在QTP描述中经常会使用到,这个可以供大家查询,希望大家把描述越描越黑。
    很好的使用标签,对我们捕捉,区分,定位页面元素起着非常好的作用。
    网上这样的资料大把,但是我还是上传一个和大家研究研究。
    最近没什么时间上来,接到另一套脚本编写任务,我想有空时候再写个关于描述的帖子,和大家探讨探讨。

    Html标签一览表.rar
    (2008-09-04 17:45:38, Size: 134 kB, Downloads: 15)

  • 【对象库】突然对你又爱又恨

    2008-8-13

    爱你的简单快捷,录制简单,操作方便,入手快。也很简单的突出了脚本语言的优势...
            恨你的管理太过潦倒,对象一多,管理麻烦;如果使用函数去调用,会出现了以后这个函数在其他项目中的通用性差。例如现在这个函数中调用对象库中的对象。那么下次有其他项目,你要使用这个函数去调其他对象库,那么你就要去修改其他项目中的对象库的对象属性等。
        函数的可重复使用,也是衡量一个函数的价值所在。
            星期前写的很多个函数,因为对象库的更改都用不上了,要么就优化函数,要么就修改新录制的对象属性。
  • 浅谈QTP,Window与Index

    2008-8-13

    睡觉之前,在这里浅谈下QTP与Index。多有不是之处,还请大家指点下。
        之前使用QTP测试的VB程序,知道了Index在对象识别时候起到一个很重要的主用,和条街的门牌号一样。某某街某某号,然后QTP就通过这个东西去找出来,而且也是固定不变,因此,大家就开始偏向对描述性编程的喜好与拥护。优势如下:可移植性强,对对象库的依赖减少(一会有人丢我焦皮说我扯蛋,对象库是QTP精华什么的话一句句就出来,等我说完先)
        为什么说到它的移植性强呢,首先,通过对象库去识别对象并保存对象,会出现因为机器环境不同的情况,对象在不同机器上识别为不同类别而导致脚本可移植差。关于对象库的依赖,与上边那点有点类似。
         随着时间的推移,对QTP的了解加深。现在主要是在web方面写的脚本,发现了在web的page里面,对象标示用的index是会随着对象的变化而变化着,并非一成不变(我对这个观点一直很质疑,虽然是自己发现的,但还是反复的试验着)。
         首先说下自己的质疑点
         1,关于index的生成。在VB里面,大家知道,这是开发远自己就可以定义的,但是在web里面呢?如果是可以有开发自己定义的,哪么为什么对象的标示index却在变动。
         2,这个Index是否是QTP自己在运行程序过程中,自己对该程序做的标示,也就是非window的自己标示方法,才会导致这个值在变化着。
         
         自己研究了下,后来发现,当我们添加某一个web元素时候,这个对象会对应自己的一个index,这个是window或者是web程序自己对控件的标示。而我们使用descrīption描述出来webelemenet的对象的index,这个是QTP自己对对象的标示方法。但这样是否会冲突和矛盾呢?其实是不会的。在对象库中添加的对象,我们在代码中直接编写,QTP就自己去对象库中查找这个东西,自然这个对象的标示是web或者window自己做的。而当我们用webelement去查找这个东西时候,QTP就在网页元素自己做好了标示,类似active Screen事先把对象页面存储起来一样,已经对它们分别做好了身份识别。

         好了,说了这么多,说说用处先吧。
         大家在测试web过程,最担心的问题就是,对象识别不到,或者识别到了,不是自己理想的类型,哎,委曲求全,来个低级录制吧....
        eg:之前看到论坛有人在求救一些关于无法识别的,类似view tree之类的东西,感到很郁闷...
        哪么,根据上边的那个原理,大家可以看到,其实我们通过描述的方法做到这样:以下是一棵可以张开的树,有3个可以张开的,并且QTP对他们分别节点标示 index为1,2,3,而我们把节点张开后...

    至于代码,大家自己写写看。这里可能有些地方说错了,抛砖引玉,大家指点指点。

    [ 本帖最后由 假装不在 于 2008-6-20 12:10 编辑 ]

    1.JPG
  • 关于VBS中“&”的用法

    2008-8-13

    1,八进制符
        刚才看到论坛一个求助帖,但因为回来时候发现找不到这个帖子,就发了这个帖子说说关于“&”的用法。
         这个求助帖里面大概内容如下:
         说为什么msgbox c&7 不行而 msgbox c&8却可以
         这是因为进制问题,在vbs里面,&0,&1,&7标示的是8进制。而使用一个字母与一个“&7”,VBS自动识别为一个八进制的字符,而&8里面,&就只是一个简单的连接字符。
         所以大家试下会发现,msgbox &7 可以,但msgbox &8是不行的,因为现在第一个识别出来的是八进制中的“7”,第二个识别出来的,会告诉你&前面少了对象。
    2,连接符

    如果说少了,大家补充下。
  • 【运行速度】对象库 与 描述性

    2008-8-13

    场景:
         1,使用了QTP论坛页面中某个主题的连接link
        2,为了公平起见,使用先把browser,page等对象先添加进对象库,使用描述时候只使用link点击才测试速度
         3,对象库中的link对象属性就使用了html tag 与 text

    方法:   一个方法至少运行5次                                
    1,browser("...")page("....").link("....").click
    平均时间是:0.501 sec

    2,browser("....")page("....").link("html tag:=...","text:=....").click
    平均时间是:1.031 sec

    3,dim a
    set a =descrīption.creat
    a("html tag:=").value=....
    a("text:=").value=....
    browser("....")page("....").link(a).click
    平均时间是:1.060 sec      

    4,browser("....")page("....").link("html tag:=...","text:=....","x:="...,"y:="....).click
    平均时间:0.750 sec

    由上面数据(可能有点不太科学)可以得到的结论如下:
    1,QTP的对象库运行速度比描述的速度有优势,但是是建立在忽悠用户的基础上(带了点感情色彩)。为什么这么说呢?
       使用对象库的测试,速度确实一目了然,我们在对象库中看到的属性也就只有html tag 与value,而我们使用描述方法中使用的也是这2个,速度却是将近一半的差距。但是后来在第四个方法中,简单的添加进x,y的相对坐标后,速度却可以提高0.3sec之多?!这说明了,在描述的时候,只要给的有效属性值越多,找到对象速度越快!
       为什么说忽悠用户呢?我这人心眼特坏,好吧,对象库你不老实,说明只用html tag和text的,哪么我就给你改,我随便在论坛顶了一个帖子,那个原来的帖子位置变了,大家猜用的平均时间是多少?0.653sec(有高无减)
    2,论坛有人说是先拟定和虚拟的对象出来,这个说法很不科学。
    3,由上面的结果可以看到了对象库的优势!这点我也不得不承认(不喜欢犯规的人),描述的速度没有对象库实现代码的速度快,或者到这里也就应验了那句话,对象库是QTP的精华。
    4,可以这么说,如果对项目的要求速度不高,可以使用描述,而且是测试人员在这个过程中享受编程乐趣的时候,大家喜欢就干吧。对于对象库来说,速度确实快(还是那句话,你作弊),而且代码速度高,适合新手(自然不是说那些用到出神入化的高手),入手快,见效好。
    这就好比中药与西药。中药重调理,西药重速度...
Open Toolbar