51Testing软件测试论坛
标题:
QTP9.2要点概述
[打印本页]
作者:
kevin_swpi
时间:
2008-5-16 14:29
标题:
QTP9.2要点概述
这里,根据自己的所知,整理一份关于QTP9.2的要点概述。
早先QTP是属于Mercury公司的,后来被HP买下,也就是说,现在当家的是HP公司了。貌似老大的名声更响,但是对于我们这些使用QTP进行测试开发的人来说,感觉QTP的支持、服务,比以前更差了。技术论坛也找不到了,支持电话在庞大的HP产品系列中转来转去,就是找不到管事的人;还有 QTP本身的很多Bugs,什么时候解决?后续版本的update,什么时候出来?(千呼万唤,现在版本似乎到9.5了,距离9.2差不多1年了,却没有大的改进。)叹一个!
1)QTP是一个侧重于功能的回归自动化测试工具;提供了很多插件,如:.NET的,Java的,SAP的,Terminal Emulator的等等,分别用于各自类型的产品测试(每种插件都是要花钱的哟,^_^)。默认提供Web,ActiveX和VB。也就是说,你要是花几十万大洋买了QTP,但是没有购买这些addins,对不起,不支持测试.net或者java或者SAP系统......(哭一个吧)。当然,可以测试标准的Windows32程序。
2)QTP支持的脚本语言是VBScript,这对于测试人员来说,感觉要“舒服”得多(如相比SilkTest采用C语言)。VBScript毕竟是一种松散的、非严格的、普及面很广的语言。
3)QTP支持录制和回放的功能。录制产生的脚本,可以拿来作为自己编写脚本的template。录制时,还支持一种lower level 功能,这个对于QTP不容易识别出来的对象有用,不过它是使用坐标来标识的,对于坐标位置频繁变动的对象,采用这种方式不可行。另外,QTP的编辑器支持两种视图:Keyword模式和Expert模式。Keyword模式想法是好的,提供一个描述近似于原始测试用例的、跟代码无关的视图(我基本很少用,除了查看、管理当前test中各个action的完整流程),而Expert就是代码视图,一般编写脚本都在这个区域。
4)一个有用的工具:Object Spy,可以用来查看Run-time object和Test object属性和方法。
5)QTP通过三类属性来识别对象:a)Mandatory; b)Assitive; c)Ordinal identifiers。大部分情况下,通过对象的一些特定属性值就可以识别对象(类型a)。这些属性可以通过Tools->Object Identification 定义。
5)Object Repository(OR)是QTP存储对象的地方。测试脚本运行后,QTP根据测试脚本代码,从这个对象库中查找相应对象。每个Action可以对应有一个或者多个OR,也可以设置某个OR为 sharable的,这样可以供其他Action使用。注意,使用QTP录制功能时,默认将被测对象放在local OR中,可以通过 Resources->Object Respository,选择Local查看。
6)说到QTP的要点,不得不说Action。Action是QTP组织测试用例的具体形式,拥有自己的DataTable和Object Repository,支持Input和output参数。Action可以设置为share类型的,这样可以被其他test中的Action调用(注意:QTP是不支持在一个test中调用另外一个test的,只有通过sharable action来调用)。
7)如3)所述,一个test中,多个action的流程组织,只有通过Keyword视图查看和删除,在Expert视图中没有办法看到。
8)调用Action可以通过菜单Insert->Call to *** 来实现。QTP提供三种类型的调用方式:a)call to new Action,在当前test中创建一个新的Action;b)call to Copy of Action;c)call to existing action,调用一个re-usable action,如果这个re-usable action来自另外一个test,将以只读的方式插入到当前test中。
9)QTP提供excel 形式的数据表格DataTable,可以用来存放测试数据或参数。DataTable有两种类型:global 和local。QTP为DataTable提供了许多方法供存取数据,在对测试代码进行参数化的时候,这些方法非常有用。
10)环境变量(Environment Variables)。在一个test中,环境变量可以被当前test中所有action共享。环境变量也有两种类型:build in 和user defined。用户自定义的环境变量可以指向一个XML文件,这样可以实现在众多test之间共享变量。
11)QTP可以引用外部的VBS代码库,通过Settings-》Resource加入,也可以ExecuteFile命令在代码中直接执行。这种VBS库可以为所有action和test共享。
12)QTP默认为每个test提供一个测试结果,包括Passed,Failed,Done,Warning和information几种状态类型,可以进行对结果Filter。但是,只能为每个test产生一个testing result,不能为多个testing产生一个总的testing result.
13)描述性编程(DP),一种OR替代方案。正常情况下,不要大量采用DP,维护起来远没有OR方便,也不直观。另外,两种情况下,都可以使用Regular Express,这个在多语言版本测试时非常有用。
14)Recovery Scenario错误现场恢复。运行测试代码过程中,总是有这样那样的不可预料的错误产生,若连续运行多个test,前面一个test的不可预料的错误可能导致后一个test没有机会运行。设置现场恢复处理,可以在前一个test出错后,将被测系统恢复到初始状态,以供后一个test运行。
15)QTP和被测系统(AUT)必须在同一台机器上运行(当然,可以远程控制QTP)
16)QTP对外提供了大量的API和对象,可以利用这些,通过编写Scripts来实现测试的操作、配置、运行和管理完全自动化,这一块可以有很多文章可以做。
17)用QTP编写的测试代码,必须在QTP上运行。由于QTP非常占用内存,其运行时可以设置visible和invisible模式,但是能否将其运行环境裁剪至最小,移植到对性能要求较高的机器上运行?我至今没有看到。
作者:
walker1020
时间:
2008-5-16 14:50
对 QTP功能比较全面的一个概述,支持一下楼主!
作者:
liran
时间:
2008-5-19 10:38
标题:
支持
支持
作者:
ouyu
时间:
2008-5-19 10:55
支持!!
作者:
hsjzfling
时间:
2008-5-19 14:59
感觉还有些需要补充下,比如
Object Identification
还有关于OR,识别对象是关键,OR就是关键中的关键,如何灵活编辑对象属性与对象层次结构能在很大程度上影响识别对象的可靠性与可维护性
作者:
wyalgl
时间:
2008-5-19 16:31
搂住概括的很全面,非常好的帖子,顶!!!
作者:
arthur766
时间:
2008-5-25 15:01
不错
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2