WEB-QTP随想录—史密斯夫妇的初识

来源:互联网 发布:unity3d shader 编辑:程序博客网 时间:2024/04/30 13:22

注:原文最早是发表在www.automationqa.com上面的,后来因为网站被黑而文章内容消失了,希望csdn别被黑了。

关于转载:本文为原创文章,欢迎转载,但转载需要标注出处以及保证内容的完整性,请理解写作的寂莫和苦处。

关于版权:本文不得应用于以赢利为目的的任何场景,否则本人保留相应的权利。

 

好吧,就让我们开始吧。

首先打开你的QTP,开始我们的QTP旅程吧。在等待QTP打开的这段时间,来点废话吧。老婆在旁边用她的笔记本,嚣张地放着《史密斯夫妇》里面的《Mondo Bongo》,我却用5年前的破台式机敲着这些也许在许多人看来的破字。呵呵,本来不知该如何入手的,就让我们伴随这段音乐开始吧,另外,这部电影确实不错。

打开你的QTP了吗?瞧,它就是这个嘿样子,这个东西会在将来的一段时间里,都将伴随着你,其中有不少的日子,其中大部分日子会让你觉得这个世界上每个人都有暴力倾向的,不过我相信最终你还是会爱上它的,就像史密斯夫妇那段婚姻一样。

如果你在之前没有碰过她,也许你应该先了解了解她那并不漂亮的外表,也就是她的菜单,这就像你追MM一样,先要收集她身上的一点点信息,然后一层一层地深入她,熟悉她的味道,熟悉她的一切,最后她就是你的了。她的的帮助字典里已经有了,你需要的就是点击Help-》QuickTest Professional Help,然后找到HP QuickTest Professional User Guide 把它看完,并且同时一个一个地去点击,看看剥掉她那并不漂亮的外衣下面到底藏着什么。如果你非要认为这嘿么没有必要,那么我还是赞同你的。不过,要知道做为过来人,我要告诉你的是,学这玩艺时因为开始没有好好研究她的穿着,我可是走过好多路,千真万确我确实走过很多路,每天都从我的电脑走到公用上网机几十次,干什么——百度。嘿嘿。。后来,终于下定决心开始剥她的外衣,直到后来烂熟于套路。

如果你因为担心你的英文不好,也没关系,网络上有中文档的帮助文档,你拿来对照就行了。用久了,你也就不会再把她当鸟文了,因为她最终成为了你心目中的神——符号。这也是真实感言,要知道我一个小专英文级都不级的人,现在竞也能熟练用她了。哈哈。。嚣张一下(生活太平淡,需要点刺激,不是么史密斯?)

好像废话有点多,让我们开始New吧!512M的内存拿来玩QTP,确实太慢了点。看到New后的样子了吗?一个空白区域,下面一个看上去像数据库的表。老子说,无乃万物之母,有乃万物之始。我说,你永远都是这么苍白,我永远不知道那身白晰的皮肤下藏着什么。可你又那么令人着迷,我以莫大的诚意爱上你,然后用生活的诗意描绘你时,你又丰富得令人着迷。

好吧,让我们从万恶的HelloWord开始吧!

在QTP里面,你只需要写入msgbox "helloWord",然后按永远的快捷键F5,该死的QTP这时却弹出了一个框,非常不符合旧有习惯,回车该死的helloWord就出来了。

请注意,你输入Msgbox "helloWord"也行。她可不像C#.Net那么娇气,非要分出个大小写。她是随便的,正因为她是随便的,所以如果你封装过程、定义变量或导入多个vbs文件时,请注意你需要给它分配一个永不重复的芳名,并记住她,不然她的脾气发作,直接的后果就是你的QTP运行玩完。

另外,输入Call msgbox(“helloWord”)也是可以的。加Call和不加Call的区别是什么呢?其实很简单,区别就是()号,呵呵。加括号其实是调用一个函数,可以有返回值。不加括号是一个过程,没有任何返回值,我更建议用后面这种方式,这更符合我记忆中C的习惯。

另外,在QTP里面,注释的语句是rem,如rem妹子。当然,如果你想快点,那么就用单引号吧,如’妹子。如果想多行注释怎么办呢?曾经有人回答这个问题的答案是,没有。其实不然,QTP提供了一个注释多行的办法。选中要注释的内容,点击鼠标右键,选择CommnetBlock,就成了多行注释,取消多行注释,选UnComment Block。不过这里似乎有一个概率性的缺陷,即如果你多次运行或调试了脚本之后,选中多行,点击右键后,右键菜单总是一闪而过,而不能保持。当然即使有缺陷,我们一样可以使用,选中按ctrl+M(多行注释)或ctrl+shift+M(取消多行注释)。

不知你注意没有?每次你F5后,就会弹出这么个东东!

New run results folder的意思是:新的运行记录保存在这个文件的地址。

Temporaryrun results folder的意思是:运行的记录会覆盖上次运行的结果。

前者的讨厌程度是非常让人恶心的,如果你的脚本调试N次,那么你的文件里面就有N个res*的文件。后者令人遗憾的是,她的结果每次都保存在临时文件夹中。我是一个比较懒的人,我一直懒得去点后者的单选按钮,更懒得去删除这些测试结果。那么有没有办法,综合前者和后者呢,答案当然是可以的,只要你有idea。其实我们只需要调用删除文件夹的方法:DeleteFolder()就行。

'删除Res

Function delRes()

         Setfs = CreateObject("Scripting.FileSystemObject")

         fs.DeleteFolderenvironment("TestDir")&"\Res*",True

         setfs=nothing

End Function

不知你发现没有,我们这个函数是运行不了的,当你运行时会提示:

 

这是因为你运行程序时,让程序去删除自己产生的文件是一件很不靠谱的事情。所以,如果要实现运行,你还得加一些语句,比如on error resume next。所以更改你的函数吧!

'删除Res

Function delRes()

         Onerror resume next

         Setfs = CreateObject("Scripting.FileSystemObject")

         fs.DeleteFolderenvironment("TestDir")&"\Res*",True

         wait(1)

         setfs=nothing

End Function

Call delRes(),这样程序在运行时每次都会删除掉除当前保存结果的这个文件了。另外,这里有一个非常有趣的现象,上面的代码有不少部分是Vbscript的,但environment("TestDir")却是QTP自己的函数,把它组合在一起,就成了我称之的QTP风格。所以,你就不用担心自己不会Vbscript,而放弃玩她的想法了。因为,她对于你来说是最新的,你就忘掉Vbscript吧(其实我用这个之前也一点不会Vbscript)。

2011-3-21

文青山

 

返回目录:http://blog.csdn.net/womengdoushizhongguo/article/details/7769936

 

 

 

原创粉丝点击