51testing 针对新人做的一个专题:http://www.51testing.com/zhuanti/newtestor.html
2012-04-04
1:在测试脚本运行期间,要停止脚本的快捷键是CTRL+ALT+F5.
2:快速设置脚本回放模式的语句(实际用的较多):Setting.WebPackage("ReplayType")=2/1
2,鼠标光标跟踪模式,1,代表事件跟踪模式。
3:如何快速切换到complete word模式下进行编写脚本?方法: QTP->EDIT->ADVANCED->COMPELETE WORD.
4:QTP代码换行符是底线"_"
5:ALT+G(快速定位当前代码中关于所要查看的FUNCTION的定义)是快捷键
手动查找是在菜单栏->Edit->Advanced->Go to Function Definition
6:Ctrl+Shift+Space快捷键
位置:依次选择QTP上方菜单栏→Edit→Advanced→Argument Info。
在方法后往往需要设置一些参数,但是那么多参数难道都去背下来吗?显然不用,QTP会自动提示该方法的参数,
7: with...end with在QTP的用法
百度首页嵌套在51Testing首页中
With Browser("51Testing软件测试网").Page("51Testing软件测试网")
.WebButton("WebButton").Click
.WebEdit("password").Set "Yu Jie"
.WebEdit("username").Set "Jerome Yu"
With Browser("百度一下,你就知道").Page("百度一下,你就知道")
.WebButton("百度一下").Click
.WebEdit("wd").Set "QTP自动化测试技术领航"
End With
End With
'百度首页 -- 提炼其他公共部分
With Browser("百度一下,你就知道")
.Page("百度一下,你就知道").WebButton("百度一下").Click
.Page("百度一下,你就知道").WebEdit("wd").Set "QTP自动化测试技术领航"
End With
8.QTP中隐藏保留对象的介绍:
1 webutil
等等 这些保留对象在帮助文档中没有作说明,但其肯定有保存的位置,他保留在注册表中.
位置在HKCU->software->mercury interactive->QuickTest Professional->MicTest->Reserved Objects下.
9.自动化模型对象:
AOM
简单的创建AOM模型的例子:
A:vbscript
dim qtApp
set qtApp=createobject("QuickTest.Application")'创建对象
qtApp.Launch 'Start QuickTest
qtApp.Visible=True'设置为可见
B:vb调用方式
dim qtApp As QuickTest.Application'申明AOM对象
Set qtApp=new QuickTest.Application'创建AOM对象
qtApp.Launch'启动QTP
qtApp.Visible=True'设置为可见
C:c#调用方式
QuickTest.Application app=new QuickTest.Application();//创建QTP对象
app.Launch();//启动QTP
app.Visible=True;//让QTP可见
D:javascript调用方式
var qtApp=new ActiveXObject("QuickTest.Application");//创建AOM对象
qtApp.Launch();//启动QTP
qtApp.Visible=true//设置为可见.
如图1-204所示,点击Run-Time Data Table以后,可以看到脚本在运行过程中所使用的所有数据记录,分别是test1、test2、test3。到此,大家应该没有任何疑问了吧?的确是运行了3次业务,切实地输入了各不相同的测试数据。想知道这些测试数据哪里来的吗?答案现在正式揭晓,如图1-205所示。
图1-205
有没有似曾相识的感觉?在上一个小节中的实例就已经和它打过交道了,它就是QTP的Data Table。请大家注意当前脚本使用的是Global Sheet而不是Local Sheet!在“关键字输入”这一列中输入了3行测试数据,这就是实际运行时输入的数据。
测试数据是怎么来的,我们已经搞清楚了。但是相信读者现在一定还有另外一个疑问,那就是QTP为什么会执行3次,脚本中并没有做任何循环!这就要引出本小节内容的第一个知识点了。
1.Global Sheet是一个全局变量!有几行数据,程序就要回放几次
所以,这也就很清楚地解释了为什么QTP运行了3次,就是因为当前的Global Sheet中有3行测试数据。第1次执行使用第一行数据test1,第二次执行使用第二行数据test2,第三次执行使用第三行数据test3,依此可以一直类推下去。
现在设置了3行测试数据,这些数据不一定是我们每次都需要的,那该怎么办?删除它们?等需要了再添加?那多麻烦。QTP提供了一个很有用的功能,那就是Data Table iterations设置,先来认识一下它,调用它的方法如下。
QTP上方菜单栏→File→Settings→Run打开后的结果如图1-206所示。
图1-206
如图1-206所示,这就是Data Table iterations设置界面,默认选中的是Run on all rows(图中标记2),即DataTable中有几行数据就运行几次,刚才的实例根据业务要求设置了3行数据,所以它会去运行3次。在很多情况下,自动化测试数据只需要1个,那么此时就可以选中Run one iteration only这个选项(图中标记1),这样就完全可以不必去删除本次不会用到的业务数据了。最后一个选项(图中标记3)叫Run from row X to row Y,这个也非常好理解,就是设置一个范围,QTP就会根据设定的范围进行迭代运行,当然,千万不要将范围超出最大的范围(在本实例中最大范围是3)。到此,就要引出另一个知识点了。
2.Global Sheet这个全局变量是受Data Table iterations控制的
那么,读者要问了:“现在Global Sheet和Local Sheet都通过实例讲解过了,那它们之间有什么区别呢?”让我们再次引出另一个知识点。
3.Local Sheet是个局部变量,它并不受Data Table iterations控制,无论有多少行数据,它只运行一次(前提是Global Sheet没有数据,或只有一行数据,或设置为只运行一次)
让我们来看一个实例,把Global Sheet的数据都清空,然后在Local Sheet中建立3行测试数据,如图1-207和图1-208所示。
个人VBS脚本编写的总结:
1:如何调用一个过程呢?
将过程写好后,加入一句:"call 过程名"即可.
QTP中一些脚本块进行注释时,用快捷键“ctrl+M”,取消注释用快捷键“ctrl+shift+M"