测试工具:QTP9.2要点概述

发表于:2008-5-27 16:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Kevin    来源:51Testing软件测试论坛

#
QTP

关键字:软件测试测试工具QTP

        这里,根据自己的所知,整理一份关于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 定义。

        6)Object Repository(OR)是QTP存储对象的地方。测试脚本运行后,QTP根据测试脚本代码,从这个对象库中查找相应对象。每个Action可以对应有一个或者多个OR,也可以设置某个OR为 sharable的,这样可以供其他Action使用。注意,使用QTP录制功能时,默认将被测对象放在local OR中,可以通过 Resources->Object Respository,选择Local查看。

        7)说到QTP的要点,不得不说Action。Action是QTP组织测试用例的具体形式,拥有自己的DataTable和Object Repository,支持Input和output参数。Action可以设置为share类型的,这样可以被其他test中的Action调用(注意:QTP是不支持在一个test中调用另外一个test的,只有通过sharable action来调用)。

        8)如3)所述,一个test中,多个action的流程组织,只有通过Keyword视图查看和删除,在Expert视图中没有办法看到。

        9)调用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中。

        10)QTP提供excel 形式的数据表格DataTable,可以用来存放测试数据或参数。DataTable有两种类型:global 和local。QTP为DataTable提供了许多方法供存取数据,在对测试代码进行参数化的时候,这些方法非常有用。

        11)环境变量(Environment Variables)。在一个test中,环境变量可以被当前test中所有action共享。环境变量也有两种类型:build in 和user defined。用户自定义的环境变量可以指向一个XML文件,这样可以实现在众多test之间共享变量。

        12)QTP可以引用外部的VBS代码库,通过Settings-》Resource加入,也可以ExecuteFile命令在代码中直接执行。这种VBS库可以为所有action和test共享。

        13)QTP默认为每个test提供一个测试结果,包括Passed,Failed,Done,Warning和information几种状态类型,可以进行对结果Filter。但是,只能为每个test产生一个testing result,不能为多个testing产生一个总的testing result.

        14)描述性编程(DP),一种OR替代方案。正常情况下,不要大量采用DP,维护起来远没有OR方便,也不直观。另外,两种情况下,都可以使用Regular Express,这个在多语言版本测试时非常有用。

        15)Recovery Scenario错误现场恢复。运行测试代码过程中,总是有这样那样的不可预料的错误产生,若连续运行多个test,前面一个test的不可预料的错误可能导致后一个test没有机会运行。设置现场恢复处理,可以在前一个test出错后,将被测系统恢复到初始状态,以供后一个test运行。

        16)QTP和被测系统(AUT)必须在同一台机器上运行(当然,可以远程控制QTP)

        17)QTP对外提供了大量的API和对象,可以利用这些,通过编写Scripts来实现测试的操作、配置、运行和管理完全自动化,这一块可以有很多文章可以做。

        18)用QTP编写的测试代码,必须在QTP上运行。由于QTP非常占用内存,其运行时可以设置visible和invisible模式,但是能否将其运行环境裁剪至最小,移植到对性能要求较高的机器上运行?我至今没有看到。

更多QTP相关的软件测试工具文章:http://www.51testing.com/?action_category_catid_99.html

版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号