在开始之前,首先对qtp录制回放的默认录制设置做一个简单说明,这部分也是大部分新手都会出问题的地方。
qtp录制的默认设置如下:
QTP的默认设置为只录制和运行时打开指定的程序或网页。这种默认设置很大程度上为新手减少了操作难度,但同时也产生了很多问题,甚至会制约新手的提高。主要问题简述如下:
1. 录制一个示例的小飞机程度的登录功能,没有关闭程序,回放时报错:找不到对象;
2. 录制完成后,循环执行到第二次时报错:找不到对象;
其实,很多的找不到对象错误都是由于没有设置好或者上下衔接的环节引起的,这些只需要修改对应的设置即可;只有很少一部分的找不到对象的问题才是由于对象属性发生变化产生的。
所以,在这里,建议大家选择第一项:Record and run test on any open Windows Application 和 Record and run any test on open browser。
下面看一段录制的脚本,利用了QTP提供的封装对象来实现应用程序的启动和退出。
'调用QTP封装对象SystemUtil启动有道词典 systemUtil.Run "D:\有道词典\Dict4\YodaoDict.exe" window("有道词典").Activate Window("有道词典").WinEdit("Edit").Set "QuickTest Application" Window("有道词典").WinButton("查询").Click Window("有道词典").WinTreeView("SysTreeView32").Select "QuickTest Application" window("有道词典").Close '关闭有道词典 '调用SystemUtil的封装方法:关闭所有由QTP打开的程序 SystemUtil.CloseDescendentProcesses
另外,因为有很多应用程序,如有道词典在关闭窗口后不会退出,而是最小化到任务栏,所以需要对其进行退出指令或关闭进程。
关闭进程的方法,QTP本身提供了CloseDescendentProcess、CloseProcessByName、CloseProcessByHwnd、CloseProcessByWndTitle、CloseProcessById,至于这几种方法的具体用法,可以参考QTP帮助文档里面;
如果你不想使用上面的这些方法,还可以使用其他方法:如COM、vbs Shell、wmi等对象方法来关闭,这些在后面会逐渐介绍到。
下面简单说一下回放,在回放之前,会有个选择回放目录的设置:
如果希望执行结果被保存,那么就需要选择第一项,默认会在脚本存储目录下;如果选择临时目录,则只会记录最后一次的执行结果。
至于执行结果和测试报告,这个还是后面和QC框架一起介绍吧,最后简单说下脚本目录,也是很多新手都比较郁闷的地方:录制完的脚本跑哪去了?目录里面哪些文件是干嘛的,什么时候能用到?
QTP的脚本目录结构在此就不截图了,大家可以自己保存看看,下面我就对脚本中各个文件的作用进行下说明吧,如果有说的不对或有偏差的,还请大家指出。
1. ..\default.cfg、..\default.usp,这两个文件都是这个test的默认设置文件和参数文件。其中.cfg文件和.usp文件主要在LoadRunner调用qtp脚本时候作为默认场景参数进行使用,至于具体的参数设置,大家可以用记事本打开这两个文件进行查看内容;
2. ..\default.xls这个文件存储着当前action中datatable所有表的数据;也是很多人用来进行测试数据录入的一个重要文件;
3. ..\lock.lck,这个文件是在QC远程执行QTP时候用到的,主要作用是在远程执行时对当前Test和远程用户名进行锁定,以确保测试数据和结果的正确性。
4. ..\Parameters.mtr,是Test中action的参数文件,具体怎么查看我也不知道,一般很少用。
5. ..\脚本.usr,主要是在LoadRunner调用QTP脚本的虚拟用户文件。
6. ..\Test.tsp,不知道干嘛的,文件内容一直看不到;
7. ..\Action0(1)\SnapShots\..,录制和回放过程中的截图文件
8. ..\Action0(1)\Script.mts,qtp的脚本文件,可以用记事本直接打开
9. ..\Action0(1)\ObjectRespository.bdb,对象库存储文件,一般用ORM打开
10. ..\Action0(1)\Resource.mts,action的资源文件
qtp中action默认都是从action1开始,但是执行的时候却是先执行action0。action0相当于main()函数。