【QTP系列经典讲座】转载及笔记
上一篇 /
下一篇 2009-09-24 22:04:41 / 天气: 舒适
/ 心情: 平静
/ 个人分类:QTP
昨天看到一篇【QTP系列经典讲座】的帖子,觉得很多内容蛮适合我这种似懂非懂的初学者,于是收藏起来好好研究好好学习。以下就是link,应该会定期更新,所以我要定期关注。另外,由于我这里电脑打开,page上的图片就是叉叉,于是,我只能让朋友下载到了本地……
http://bbs.51testing.com/viewthread.php?tid=170665&extra=&page=1
【QTP系列讲座 1】 == Add-in Manager 插件介绍
经常会在网上看到一些朋友会问:这个项目是用什么什么语言写的,应该选择哪个插件?其实提出这个问题的朋友是因为没有了解插件的真正含义和作用。Add-in 的选择是为了能够成功识别对应Add-in的测试对象控件,也就是说是和被测控件有关,而跟什么什么语言写的是没有关系的。
另外,当QTP将对象识别为WinObject时,怎样判断需要哪个add-in插件,可参考以下这篇帖子(总结,可根据对象的类名看出语言,如果是web程序,看文件源码、url的后缀或者网站的http头来进行判断。如果是winform的,用spy工具抓,如果类名很长的一般是.net,其它可以试用depends或者ida pro看
http://bbs.51testing.com/thread-143149-1-1.html
【QTP系列讲座 2】 == 对象库及原理透析
问题:为什么没有SetROProperty修改运行时对象的属性呢~
答案:因为这个方法可以直接使用调用对象【object.属性值】的自身接口来修改运行对象的属性~
实例:
步骤1.使用OBJECT.属性来访问
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Object.size="1"
步骤2.回放,看到百度的搜索框变短了
【QTP之小技巧】 == QTP中Complete Word 实现
QTP->EDIT->Advanced->Complete Word后,你会发现一个很尴尬的事情:QTP设定的Complete Word正是我们平常一直切换中英文的快捷键Ctrl+space,而由于快捷键Ctrl+space被优先认定为中英文切换导致QTP的Complete Word失效。
解决方法:放弃CTRL+SPACE,平时切换的话可以使用CTRL+SHIFT
【QTP系列讲座 4】 == 资源池
通过资源池来灵活的调用我们之前的函数库。
File->Setting->Resources
把以下代码加入
test.txt中,然后加入资源池。
function hello_world_msg(tt)
msgbox tt
end function
function hello_world_add(a,b)
msgbox a+b
end function
然后按F7用step generator或者hello_world_add 1,2(可用auto-complete)来调用该函数。
【QTP系列讲座 5】 == DOM技术的应用
其实我还可以通过HTML DOM的方法来获取对象的ID或者NAME来控制我们想要的对象
我这里就以百度搜索框输入为例,总结一下确定对象的一些方法
1.最普通的方法
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "helloworld"
2.描述性编程
Browser("百度一下,你就知道").Page("百度一下,你就知道").webedit("name:=wd").Set "123"
3.对象自身接口
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Object.value="helloworld"
4.DOM技术
Browser("百度一下,你就知道").Page("百度一下,你就知道").Object.getElementById("kw").value="helloworld"
5.childobject结合描述性编程循环遍历获取对象
Set Desc = Description.Create()
oDesc("micclass").Value = "WebEdit"
edit_count=Browser("百度一下,你就知道").Page("百度一下,你就知道").ChildObjects(oDesc).count
set editobjects=Browser("百度一下,你就知道").Page("百度一下,你就知道").ChildObjects(oDesc)
For i=0 to edit_count-1
If editobjects(i).GetROProperty("name")="wd" then
editobjects(i).set "helloworld"
End If
Next
收藏
举报
TAG: