自动化测试之QTP学习笔记

发表于:2017-5-04 09:10  作者:含羞草   来源:51Testing软件测试网原创

字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: 软件测试工具 QTP 自动化测试工具

  一、初级QTP学习
  1、学习要求
  初级阶段的QTP学习是一个从无到有的过程,一方面思维需要从原来的手工测试慢慢转变成自动化测试,另一方面对自动化测试的整个流程需要慢慢进行初步认识与学习。具体学习方向包括以下几点:
  1)理解一些基础概念:什么是自动化测试,自动化测试能做什么,自动化测试的优势和局限以及如何借助自动化测试工具更好进行自动化测试等等;
  2)熟悉QTP的界面设置以及一些基本的用法,主要包括脚本录制、脚本回放、参数化、检查点、OUTPUT输出值等等。具体进行自动化测试的整体流程,每一个流程下的操作方式以及注意事项等等;
  3)掌握自动化测试用例的设计技巧,能用脚本对测试用例进行最大覆盖,比较从手工测试到自动化测试在测试用例设计上的共性与差异;
  4)可以参照官方学习文档Tutorial.pdf对自动化测试进行进一步学习;
  二、基本概念
  1、什么是自动化测试
  自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。简言之就是"用程序测试程序"。通常,测试人员在设计了测试用例并通过用例评审之后,需要根据测试用例中描述的规程执行测试,得到实际结果与期望结果的比较。引入自动化测试,是为了节省人力、时间或硬件资源,提高测试效率。
  2、什么项目适合自动化测试
  不是所有的项目都适合做自动化测试,实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试。具体包括以下条件:
  1)软件需求变动不频繁
  对于软件需求变动频繁的软件,测试人员需要根据需求的变动重新调整测试用例以及对应的测试脚本,而测试脚本的维护是需要修改、调试,必要的时候还需要修改自动化测试框架。如果维护的成本过高,自动化测试就是失败的,没必要进行自动化测试,可以选择手工测试。
  如果项目中有些模块相对稳定,有些模块需求变动很大,就可以针对不同模块做处理,对相对稳定模块进行自动化测试,而需求变动大的仍采用手工测试。
  2)项目周期长
  自动化测试需要经过自动化测试需求确定、自动糊测试框架设计、测试脚本的编写与调试等一系列过程,这些过程需要经历相当长的时间,如果项目周期较短,完成自动化测试的一系列过程的成本较高,相对于手工测试达不到提高效率的目的,也就没必要进行自动化测试。
  3)自动化测试脚本能重复使用
  如果花费很长时间开发出自动化测试脚本,但是测试脚本不能重复使用,或者重复使用率低,致使其间所耗费的成本大于所创造的经济价值,进行自动化测试就没什么必要。测试脚本能否重复使用主要从以下几个方面进行考虑:能否适应不同的系统差异(B/S架构模式和C/S架构模式),能否适应不同的自动化测试工具差异(QTP、WinRunner、Test Partner、SilkTest、AdventNet、AdventNet、Selenium等等),能否适应不同的自动化测试框架差异。
  3、如何选择自动化测试工具
  不同的自动化测试工具有不一样的使用场景,只有了解了自动化测试工具的适用场景,才能根据项目的差异选择合适的自动化测试工具。具体如何选择自动化测试工具,参考以下几个方面:
  1)选择尽可能少的自动化产品覆盖尽可能多的平台,以降低产品投资和团队的学习成本;
  2)测试流程管理自动化通常应该优先考虑,以满足为企业测试团队提供流程管理支持的需求;
  3)性能测试自动化产品将优先于功能测试自动化产品。
  4、自动化测试能做什么
  对于自动化测试能做什么这个问题其实就看我们希望用自动化测试做什么。其实这个问题本身就是一个测试需求设计的问题。我希望大家能接受"测试需求"这个概念,不是只有客户才有需求,我们测试人员也有同样有测试需求,这个需求来源于我们希望改进测试过程、提高测试执行的效率和可靠性,扩大测试的覆盖率。其实功能测试、系统测试、性能测试等都会有测试需求,只是大家可能对这些需求太熟悉,所以反而都忽略了。测试需求就是我们的测试目标,自动化测试的需求就是我们的自动化测试目标,就是我们希望自动化测试做什么。
  三、自动化测试工具-QTP
  1、什么是QTP
  QTP是Quick Test Professional的简称,是一种自动测试工具。自动化测试主要是用于回归测试和测试同一软件的新版本,减少手工测试的重复性工作。因此在测试前需要测试人员考虑好如何对应用程序进行测试,例如要测试哪些功能、操作步骤、输入数据和期望的输出数据等。使用自动化测试的目的是为了提高测试效率,如果使用自动化测试没有节约测试成本,就没必要使用自动化测试。
  2、QTP的特点
  1)QTP是一个侧重于功能的回归自动化测试工具,主要提供了像.NET的,Java的,SAP的,Terminal Emulator的等等各种用途的插件,分别用于各自类型的产品测试。默认提供Web,ActiveX和VB插件。
  2)QTP支持的脚本语言是VBScript,VBScript是一种松散的、非严格的、普及面很广的语言。这对于测试人员来说,便于学习掌握。
  3)QTP支持录制和回放的功能。QTP在录制时,对于那些QTP不容易识别出来的对象提供一种有用的lower level 功能。它使用坐标来标识的,对于那些坐标位置频繁变动的对象,这种方式就不起作用了。对于录制产生的脚本,可以拿来作为自己编写脚本的template。
  4)QTP的编辑器支持两种视图:Keyword模式和Expert模式。Keyword模式提供一个描述近似于原始测试用例的、跟代码无关的视图(基本很少用,除了查看、管理当前test中各个action的完整流程),而Expert模式就是代码视图,一般编写脚本都在这个区域。
  5)QTP提供了一个有用的工具:Object Spy,可以用来查看Run-time object和Test object属性和方法。
  6)QTP通过三类属性来识别对象:a)Mandatory; b)Assistive; c)Ordinal identifiers。大部分情况下,通过对象的一些特定属性值就可以识别对象(类型a)。这些属性可以通过Tools->Object Identification 定义。
  7)Object Repository(OR)是QTP存储对象的地方。测试脚本运行后,QTP根据测试脚本代码,从这个对象库中查找相应对象。每个Action可以对应有一个或者多个OR,也可以设置某个OR为 sharable的,这样可以供其他Action使用。注意,使用QTP录制功能时,默认将被测对象放在local OR中,可以通过 Resources->Object Respository,选择Local查看。
  8)说到QTP的要点,不得不说Action。Action是QTP组织测试用例的具体形式,拥有自己的DataTable和Object Repository,支持Input和output参数。Action可以设置为share类型的,这样可以被其他test中的Action调用(注意:QTP是不支持在一个test中调用另外一个test的,只有通过sharable action来调用)。
  9)如4)所述,一个test中,多个action的流程组织,只有通过Keyword视图查看和删除,在Expert视图中没有办法看到。
  10)调用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中。
  11)QTP提供excel 形式的数据表格DataTable,可以用来存放测试数据或参数。DataTable有两种类型:global 和local。QTP为DataTable提供了许多方法供存取数据,在对测试代码进行参数化的时候,这些方法非常有用。
  12)环境变量(Environment Variables)。在一个test中,环境变量可以被当前test中所有action共享。环境变量也有两种类型:build in 和user defined。用户自定义的环境变量可以指向一个XML文件,这样可以实现在众多test之间共享变量。
  13)QTP可以引用外部的VBS代码库,通过Settings->Resource加入,也可以ExecuteFile命令在代码中直接执行。这种VBS库可以为所有action和test共享。
  14)QTP默认为每个test提供一个测试结果,包括Passed,Failed,Done,Warning和information几种状态类型,可以进行对结果Filter。但是,只能为每个test产生一个testing result,不能为多个testing产生一个总的testing result.
   ... ...
   查看全文内容,请点击下载http://www.51testing.com/html/64/n-3717264.html
  1)制定计划
  自动测试的测试计划是根据被测项目的具体需求,以及所使用的测试工具而制定的,完全用于指导软件测试全过程。
  QTP是一个功能测试工具,主要帮助测试人员完成软件的功能测试,与其他测试工具一样,QTP不能完全取代测试人员的手工操作,但是在某个功能点上,使用QTP的确能够帮助测试人员做很多工作。在测试计划阶段,首先要做的就是分析被测应用的特点,决定应该对哪些功能点进行测试,可以考虑细化到具体页面或者具体控件。对于一个普通的应用程序来说,QTP应用在某些界面变化不大的回归测试中是非常有效的。
  2)创建脚本
  当测试人员浏览站点或在应用程序上操作的时候,QTP的自动录制机制能够将测试人员的每一个操作步骤及被操作的对象记录下来,自动生成测试脚本语句。与其他自动测试工具录制脚本有所不同的是,QTP除了以VBScript脚本语言的方式生成脚本语句以外,还将被操作的对象及相应的动作按照层次和顺序保存在一个基于表格的关键字视图中。比如,当测试人员单击一个链接,然后选择一个CheckBox或者提交一个表单,这样的操作流程都会被记录在关键字视图中。
  3)增强脚本
  录制脚本只是为了实现创建或者设计脚本的第一步,基本的脚本录制完毕后,测试人员可以根据需要增加一些扩展功能。QTP允许测试人员通过在脚本中增加或更改测试步骤来修正或自定义测试流程。如增加多种类型的检查点功能,既可以让QTP设置检查点检查一下在程序的某个特定位置或对话框中是否出现了需要的文字,还可以检查一个链接是否返回了正确的URL地址,还可以通过参数化功能,使用多组不同的数据驱动整个测试过程等等。这些操作都能更加完善脚本的功能,增强脚本的重复使用率。
  4)运行测试
  QTP从脚本的第一行开始执行语句,运行过程中会对设置的检查点进行验证,用实际数据代替参数值,并给出相应的输出结构信息。测试过程中测试人员可以根据实际测试过程调试自己的脚本,直到脚本完全符合测试要求。
  5)分析测试
  运行结束后系统会自动生成一份详细完整的测试结果报告。测试人员根据测试结果进行分析总结,自动化测试过程结束。
   ... ...
   查看全文内容,请点击下载http://www.51testing.com/html/64/n-3717264.html
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

评 论

论坛新帖

顶部 底部


建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2019, 沪ICP备05003035号
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪公网安备 31010102002173号

51Testing官方微信

51Testing官方微博

扫一扫 测试知识全知道