1. 使用专家视图
作为关键字视图的可替换脚本编辑视图,在专家视图中编写的测试代码能与关键字视图中的各项元素一一对应。关键字视图和专家视图使用的是同一套对象库,在专家视图中,输入测试对象的顶层对象的控件类型名,比如Page,然后输入"(",则QTP会自动列出对象库中匹配的测试对象,如果匹配的仅有一项,则会自动完成测试对象的输入,如下所示:
输入一个测试对象后,就可以访问其下的属性、方法,以及下级对象,完成测试对象的选择后,可输入".",选择针对该测试对象作出的操作,如下所示:
在专家视图中,需要像编写VBScript代码一样编写注释语句,也可以写在语句后面,如下所示:
注释写在前面和写在后面,在关键字视图的表现是不一样的。
2. Utility对象的使用
在QTP中,提供了大量的Utility对象,用于辅助测试人员编写测试脚本,减少测试脚本编写的难度。
PathFinder对象中的Locate方法用于返回QTP中指定的目录的全路径。可以通过菜单"Tools > Options"来打开界面,在"Search list"中,添加需要的目录,这些目录是QTP有于搜索文件的目录,可以是绝对路径或相对路径,如下所示:
设置好这些路径后,就可以使用PathFinder对象的Locate方法来查找某个文件所在的目录全路径,例如:
p = PathFinder.Locate("filename.dll")
XMLUtil对象用于读取XML文件,其LoadFile方法可从指定的文件中读入XML格式的文本,返回XMLData对象,例如:
Set doc = XMLUtil.CreateXML() doc.LoadFile "Test.XML"
可用Validate方法来指定某个Schema文件,检查加载的XML文件是否满足Schema的格式要求,例如:
ans = doc.Validate("D:\ObjectRepository.xsd") If ans Then MsgBox "匹配指定的Schema!" End If
使用Extern对象,可以调用外部的DLL函数,可以在开发测试脚本时,利用Extern对象调用丰富的Windows API函数,从而编写更为强大和灵活的测试代码,例如:
Extern.Declare micHwnd, "FindWindow", "user32.dll", "FindWindowA", micString, micString hwnd = Extern.FindWindow("Notepad", vbNullString)
SystemUtil对象可用于在脚本运行过程中控制应用程序和进程,例如:
SystemUtil.BlockInput Browser("Home").Page("Index").WebEdit("userName").set "John" SystemUtil.UnblockInput
Report对象可用于发送信息到测试结果文件,例如:
Report.ReportEvent micDone, "Start Action1 ...", "运行Action1" Report.ReportEvent micDone, "End Action1 ...", "Action1结束"
其中micDone是事件状态的一种 ,事件状态可以是:micpass(标识测试步骤为通过),micFail(标识测试步骤为不通过),micDone(标识测试步骤为完成),micWarning(标识测试步骤包含警告信息)。
Environment对象可以读取和设置环境变量,环境变量包括Built-In和User-defined两种类型,Built-In是内建的环境变量,只能读取,User-defined是用户自定义的环境变量,可以读取和设置,例如:
OS = Environment.Value("OS") OSVersion = Environment.Value("OSVersion")
可以在QTP中通过选择菜单"File > Setting",在"Environment"页中查看所有可读取的环境变量,如下所示:
3. QTP内置函数
在QTP中,提供了一些内置函数,用于辅助测试人员编写测试脚本。
Print函数可用于在测试过程中显示输出信息,在测试脚本的运行过程中,Print Log窗口将保持打开的状态,例如:
Print "测试输出"
另外一种方式是MsgBox,例如:
MsgBox "测试输出"
在测试脚本中,有时需要模拟用户等待的过程,这时就可以使用Wait函数。Wait函数用于暂停测试脚本执行一段指定的时间,例如:
Wait 10
ExecuteFile函数可用于执行指定的VBScript脚本文件,并且一旦运行起来,脚本文件中的函数都可以被直接调用,例如:
ExecuteFile "MyTest.vbs"
4. 虚拟对象管理
如果程序中包含那些行为类似标准对象的对象,但是不被QTP所识别,则可以把这些对象定义为虚拟对象,并且映射到某类标准对象,比如button、check box等。
选择菜单"Tools > Virtual Objects > New Virtual Object",在界面中定义虚拟对象,如下所示:
单击“下一步”按钮,在界面中选择希望把对象虚拟成什么类型的标准对象,再单击“下一步”按钮,单击"Mark Object"按钮,在页面上选择想要虚拟化的对象的区域,继续单击“下一步”,如下所示:
在这个界面中,选择虚拟对象的父对象,单击“下一步”按钮,在"Name"中输入虚拟对象的名称,在"Collection name"中输入集合的名字,然后单击“完成”按钮,完成虚拟对象的创建,如下所示:
创建虚拟对象后,可通过"Tools > Virtual Objects > Virtual Object Manager",看到刚才新建的虚拟对象,如下所示:
创建虚拟对象后,在录制脚本时,QTP就会以虚拟对象对应的控件形式来录制测试对象。
5. Recovery Scenarios
在脚本运行过程中,可能会出现一些非预期的事件、错误、程序崩溃等情况,为了处理这种错误,QTP创建Recovery Scenarios,并关联到某个测试脚本,可以把这些定义的Recovery Scenarios称为恢复场景。
选择菜单"Resources > Recovery Scenario Manager",如下所示:
在界面中单击列表中的"New Scenario"按钮,单击“下一步”按钮,如下所示:
在这个界面中,需要选择一个触发事件的条件,这些条件用于触发Recovery Scenario执行相应操作,可以有4种类型:
1) Pop-up window: 在测试运行过程中出现某个窗口。
2) Object state: 在测试运行过程中某个对象的属性匹配某个特定的值。
3) Test run error: 某个测试步骤在运行过程中出现错误。
4) Application crash: 应用程序出现崩溃现象。
选择某个触发器后,单击“下一步”按钮,在界面中设置对应触发类型的值,单击“下一步”,如下所示:
在这个界面提示需要定义Recovery Scenario的相应操作,单击“下一步”,如下所示:
在这个界面中可以选择Recovery Scenario操作的类型,包括4种类型:
1) Keyboard or mouse operation: 鼠标或键盘操作。
2) Close application process: 关闭应用程序的进程。
3) Function call: 调用某个函数。
4) Restart Microsoft Windows: 重新启动Windows。
选择某种类型的操作,单击“下一步”按钮,在界面中设置对应操作类型的值,单击“下一步”,即可看到操作已经被成功添加到列表中,如下所示:
在这个界面中直接单击“下一步”按钮,可添加另外一个操作,把"Add another recovery operation"设置为取消勾选状态,再单击“下一步”按钮,则可完成操作的定义,如下所示:
在这个界面中,需要指定Recovery Scenario的某个操作完成后,如何执行后续的测试脚本,可以选择6种测试脚本的运行方式:
1) Repeat current step and continue: 重复当前测试步骤并继续执行。
2) Proceed to next step: 执行下一测试步骤。
3) Proceed to next action or component iteration: 执行下一Action或组件的迭代。
4) Proceed to next test iteration: 执行下一个测试迭代。
5) Restart current test run: 重新启动当前测试脚本。
6) stop the test run: 停止测试脚本的运行。
选择某种操作类型后,单击“下一步”按钮,在界面中输入Recovery Scenario的名称和描述信息后,单击“下一步”按钮,再单击“完成”,如下所示:
单击"Save"按钮,可把Recovery Scenario保存到文件中。定义好Recovery Scenario后,还需要让其与测试脚本关联。打开某个测试脚本,选择菜单"File > Setting",并切换到"Recovery"页面,如下所示:
单击"Add"按钮,在界面中单击"Recovery file"下拉框右边的"..."按钮,选择前面定义并保存的Recovery Scenario文件,单击"Add Scenario"按钮,返回"Recovery"页,如下所示:
在"Activate recovery Scenario"的下拉框中,可选择何时执行该Recovery Scenario文件所定义的恢复操作。
本文出自 “青锋笔记” 博客,谢绝转载!