QTP(QuickTest Professional)是一款自动化测试工具,自动化测试就是利用计算机模拟人进行测试,也就是开发一套代码测试另一套代码。
QTP主要用它来执行重复的手工测试,主要用于功能测试和回归测试,功能测试里又注重在界面测试,就是一些按钮,下拉框,编辑框等。
它的脚本语言是相对来说比较简单的VBSctipt,语法和逻辑结构比较松散,虽然支持对象的封装,但不支持继承和多态。
QTP支持一些插件(Add-Ins),例如Active X,Visiual Basic,Web,Java等。QTP底层有一个通用的架构,平台,这些插件可以在上面运行。
QTP的特点:
1、支持脚本的录制和回放;
2、有一个非常有用的对象侦测工具Object Spy。
3、有专门存储对象属性的地方Object Repository。
4、提供检查点,检查点就是比较执行的结果和期望的结果。
5、有组织测试用例的Action.
6、QTP提供Excel形式的DataTable,用以存放测试数据或参数。
7、支持环境变量。
8、支持外部的VBS文件。
9、为每个test提供一个测试结果,pass或者fail。
QTP自动化测试原理:
(1)封装真实被测对象并转化为QTP对象到对象库。
(2)对比对象库里的对象鉴别属性和运行时的真实被测对象的鉴别属性。
(3)对比如果一致,则说明对象成功匹配并可以继续对该真实被测对象进行后续操作,如果两者不一致则报错,提示为对象无法识别。
QTP是quicktest Professional的简称,是一种自动测试工具。使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等
基本简介
Mercury QuickTest 企业级 自动化测试 工具!
现在已经被惠普收购,正式名字为HP QuickTest Professional software ,最新的版本为HP QuickTest Professional 11.0
HP QuickTest Professional 提供符合所有主要 应用软件 环境的 功能测试 和 回归测试 的自动化。采用 关键字 驱动的理念以简化 测试用例 的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例。专业的测试者也可以通过提供的内置 脚本 和调试环境来取得对测试和对象属性的完全控制。
软件特点
1)QTP是一个侧重于功能的回归 自动化测试 工具;提供了很多 插件 ,如:.NET的,Java的,SAP的,Terminal Emulator的等等,分别用于各自类型的产品测试。默认提供Web,ActiveX和VB。
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.
主要步骤
QTP进行 功能测试 的测试流程 [制定测试计划]——>[创建测试脚本]——>[增强测试脚本功能]——>[运行测试]——>[分析测试结果] 大致五个步骤:
1、制定测试计划
自动测试的测试计划是根据被测项目的具体需求,以及所使用的测试工具而制定的,完全用于指导测试全工程。
QTP是一个 功能测试 工具,主要帮助测试人员完成 软件 的功能测试,与其他测试工具一样,QTP不能完全取代测试人员的手工操作,但是在某个功能点上,使用QTP的确能够帮助测试人员做很多工作。在 测试计划 阶段,首先要做的就是分析被测应用的特点,决定应该对哪些功能点进行测试,可以考虑细化到具体页面或者具体控件。对于一个普通的 应用程序 来说,QTP应用在某些界面变化不大的 回归测试 中是非常有效的。
2、创建测试脚本
当测试人员浏览站点或在 应用程序 上操作的时候,QTP的自动录制机制能够将测试人员的每一个操作步骤及被操作的对象记录下来,自动生成测试脚本语句。与其他自动测试工具录制 脚本 有所不同的是,QTP除了以VBScript 脚本语言 的方式生成脚本语句以外,还将被操作的对象及相应的动作按照层次和顺序保存在一个基于 表格 的 关键字 视图中。比如,当测试人员单击一个链接,然后选择一个CheckBox或者提交一个表单,这样的操作流程都会被记录在关键字视图中。
3、增强测试脚本的功能
录制 脚本 只是为了实现创建或者设计脚本的第一步,基本的脚本录制完毕后,测试人员可以根据需要增加一些扩展功能,QTP允许测试人员通过在脚本中增加或更改测试步骤来修正或自定义测试流程,如增加多种类型的检查点功能,既可以让QTP检查一下在程序的某个特定位置或对话框中是否出现了需要的文字,还可以检查一个链接是否返回了正确的URL地址等,还可以通过参数化功能,使用多组不同的数据驱动整个 测试过程 。
4、运行测试
QTP从 脚本 的第一行开始执行语句,运行过程中会对设置的检查点进行验证,用实际数据代替参数值,并给出相应的输出结构信息。 测试过程 中测试人员还可以调试自己的脚本,直到脚本完全符合要求。
5、分析测试
运行结束后系统会自动生成一份详细完整的测试结果报告。[