以下说明由网络其他文章整合而成。

一.关于QTP的说明

QTP是目前市场上占有率最高的一款自动化测试工具,也是每一位测试工作者最想掌握的工具之一,也是目前流行的基于GUI的功能自动化测试工具之一。

QTP目前最主要的应用是用于回归测试、版本验证测试阶段。它本身是针对系统界面上的元素进行识别、操作,达到测试系统功能的目的。因此,自动化测试启动的时机或者说QTP开始介入的时机就要受到系统开发进度的制约。只有当系统的界面元素不会频繁的变化、系统功能基本稳定,已经通过一至两轮的手工测试,确定系统不会存在重大缺陷时,才可以考虑自动化的实施。这里说的实施主要侧重脚本的开发,其他如测试方案、开发规范、参数定义等内容可以提前制定。有的个别大公司可能介入会比较早,界面出来,就开始着手脚本的开发。但这种方式要有严格的开发、测试规范与之配套,并且每一环节的人员严格按规范、规则进行,否则脚本后期的维护将是非常头疼的一件事情。

二.QTP的运行原理、对象识别机制
  作为一个QTP的使用者,首先要搞明白它的运行原理,识别对象的机制。这是以后掌握其他技术的根本,不管是录制方式还是手写代码这个都是非常重要的。
  QTP是一款基于语言的工具,而LoadRunner是基于协议的。具体说,就是QTP针对不同的语言提供不同插件去识别对象,默认提供ActiveX、Visual Basic、Web插件,其他.net、java插件单独安装。每一种插件提供了针对不同对象的识别机制,也就是提供了对象默认的识别属性。所以在运行QTP前,首先确定加载哪个addin,否则对象就不能正确识别,出现很多奇怪的问题。不加载正确的addin,最直接就是表现在代码上。以下是点击google主页上的搜索按钮的区别:
  加载web插件的正确代码:Browser("Google").Page("Google").WebButton("Google 搜索").Click
  不加载web插件:Window("Windows Internet Explorer").WinObject("Internet Explorer_Server").Click 547,217
  这是典型的对象没有正确识别的问题。包括对象类型、识别属性、事件方法都会出现问题,这样会导致脚本的开发,维护,运行,阅读等等一系列问题。

再说QTP的对象识别,加载正确addin后QTP会定义一套针对具体类型对象的默认识别属性。通过Tools--Object Identification可以查看,修改,增加默认的识别属性。更改后即时生效,但对之前的对象不起作用。如下图,这里就是决定QTP如何识别对象的地方。包括识别对象的强制属性、辅助属性、智能识别、顺序表示符的配置。特别指出,Browser对象有一个CreationTime顺序表示符,这是一个非常有用的属性,它可以根据IE打开的顺序去识别web页,而不必指定其他属性,合理加以利用会给web脚本带来很大好处。

三.Automation->Record and Run Settings
Web:比较常用的设置:可以指定打开浏览器的类型。
Windows Application:指定录制应用程序 
  (1)Applications opened by Quick Test: 开启录制之后打开的应用程序。 
  (2)Applications opened via the Desktop: 录制通过桌面,开始菜单,快速启动,windows资源管理器打开的应用程序(包括开启录制之前和之后打开的 
  
四.Tools-> Options 
(1)General 
  General选项里面要注意的设置有三点: 
  1.Disable recognition of virtual objects while recording:录制时禁用虚拟对象识别。QTP在创建好虚拟对象后,如果选择了此项,则在录制到要用虚拟对象的时候,录制结束后,代码中会直接把要用虚拟对象的地方省略 
  2.Automatically update test and component steps when you rename test objects:当重命名测试库中对象后自动更新测试和组件步骤 
  3.Generate scrīpt:导出此对话框(包括其他选项页)的设置为scrīpt,保存为共用函数(通过Test setting的resources选项页调用) 
(2)Folders 通过此页可以设置当前测试脚本路径。 
(3)Active Screen 相当于快速预览窗口 
  对测试结果分析很有帮助的一个设置,注意此项设置记录的信息越多就越容易编辑录制之后的测试。但是,保存更多的信息将会增加录制时间和磁盘空间 
  此选项页中的设置 
  1.自定义捕获级别  默认为局部捕获,也可以根据自己的测试改变设置,如想提高录制运行速度且需要观察Active screen,则可以设置为None. 
  2.高级设置 可以设置在AS屏是否运行脚本,且加载什么控件。 
  Load ActiveX controls 加载之解决“当前安全设置禁止运行该页中的ActiveX控件。因此,该页可能无法正常打开” 问题 
  Load images 加载之后解决图片显示问题
  Load Java applets 加载之后解决java applets 问题 
(4)Run 必须要安装Microsoft scrīpt Debugger才能使用 
  设置以下常用选项: 
  1. 运行模式(Normal和fast)  Normal可以设置运行步骤间隔时间且会有当前运行步骤提示。 
                                           Fast不能设置步骤运行时间间隔也没有步骤运行提示 
  「注」当从QC运行测试时,即使选择了Normal,也会自动设为Fast模式 
  2. 涉及和QC的链接 
  3. 设置运行测试是否自动显示测试结果 
  4. 设置测试结果中保留运行时的截图和录像(所有步骤/错误/警告) 
(5)Windows Applications 很少用的设置 
(6)Web 加载web控件时可用。 
  1. 设置不录制的地址 
  2. 设置忽略QC的连接 
  3. Add[ ] seconds to page load time: 增加页面加载时间 
  4. 坏链接测试(指向本地主机),要想设置指向所有主机链接的测试,通过本页高级现象设置自动添加链接检查检查点测试。 
  5. Page and Fame option 此项尽量保持默认设置(有些外部插件会自动修改设置为最优,如果使用了外部插件,建议保持默认设置,不要使用reset按钮 ) 
  6. 高级设置 

添加Accessibility检查点  在这里设置之后,才可以在脚本里编辑添加Accessibility检查点 
           添加自动检查点    设置此项之后,在录制时自动在测试的每个页面添加已设置的检查点。

整理QTP知识之1的更多相关文章

  1. QTP知识总结(一)

    QTP知识总结(一) (2010-12-22 16:30:41) 转载▼ 标签: 杂谈 分类: QTP File menu Process guidance management,View > ...

  2. 将垃圾送入无底洞,顺便整理dev知识

    相信用过Linux的童鞋们都用过crontab来做定时任务,不需要额外的安装程序和配置,一条简单的语句搞定定时任务,但是小伙伴们发现了没,如果你的定时任务执行频率很高而且会产生大量的输出的话,你的老爷 ...

  3. maven学习整理-进阶知识

    在maven的阶知识主要学习的是maven在eclipse中的使用.依赖相关的问题.继承(父子工程).统一版本管理.聚合等相关知识 1.maven在eclipse中的使用 由上篇基础知识学习到怎样下载 ...

  4. maven学习整理-基础知识

    1.maven认识 maven是一种自动化的构建工具,它主要解决的问题有: ①项目中的划分规则:原先我们用package或文件夹的形式来划分不同模块,导致在一个项目中存在大量的文件夹和包代码显得庞大: ...

  5. ES6知识整理(1)--let和const命令

    最近准备在业余空闲时间里一边学习ES6,一边整理相关知识.只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是正在的学到了... 那么现在开始 LINK START!(首先是第一讲,前 ...

  6. ES6知识整理(2)--变量的解构赋值

    最近准备在业余空闲时间里一边学习ES6,一边整理相关知识.只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是真正的学到了... 上一篇是一个试水,现在接上. 变量提升 看了下朋友回复 ...

  7. 使用"关键词"来整理自己的知识库

    以前一直使用MyBase作为整理知识的工具,但是用到后来发现,当整理的知识越来越多时,树形目录的节点个数就会变得越来越庞大,层次越来越深,反而很难定位要查看或编辑的知识.最近发现使用"关键字 ...

  8. python 入门快速学习整理

    Python 入门学习 1  : 对象类型 1 1.1 列表 1 1.2 字典 2 1.3 元组 2 1.4 元组 2 1.4 文件 3 2  : 条件和循环语句 3 2.1  if else语句 3 ...

  9. Java基础知识二次学习-- 第一章 java基础

    基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...

随机推荐

  1. LinearLayout具体解释二:LinearLayout的创建过程以及状态全程解析

    正在撰稿中,请稍等...

  2. POJ 2632 Crashing Robots(较为繁琐的模拟)

    题目链接:http://poj.org/problem?id=2632 题目大意:题意简单,N个机器人在一个A*B的网格上运动,告诉你机器人的起始位置和对它的具体操作,输出结果: 1.Robot i ...

  3. UI编辑器

    本篇教程通过制作捕鱼达人的启动界面来说明CocoStudio UI编辑器的用法.先看看效果图 好了,下面一步一步的动手做吧! 1.打开软件 2.新建项目 依次打开软件主界面左上角菜单栏的:“文件”-- ...

  4. Github上四种Lisp方言的流行度 | 肉山博客 (Wenshan's Blog)

    Github上四种Lisp方言的流行度 | 肉山博客 (Wenshan's Blog) Github上四种Lisp方言的流行度

  5. 15个最好的HTML5前端响应式框架(2014)

    文中的多个框架基于SASS创建,SCSS是一种比LESS更简洁的样式表编程语言,它能够编绎成CSS,可复用CSS代码,声明变量,甚至是函数,类Ruby/Python的语法.參见: LESS vs SA ...

  6. 8月30号周五香港接单ING~~化妆品只加10元!!!!!!

    8月30号周五香港接单ING~~化妆品只加10元!!!!!! 8月30号周五香港接单ING~~化妆品只加10元!!!!!!

  7. Android 的独特shell命令

    Android本来就是一个linux操作系统,所以大部分都是linux的命令,如mkdir,ls,netstat,mount,ps 等,这里就不具体介绍了, 主要介绍几个Android特有的. get ...

  8. HDU4876ZCC loves cards(多校题)

    ZCC loves cards Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Tot ...

  9. mongodb在PHP下的应用学习笔记

    1.连接 mongodb默认端口是:27017,因此我们连接mongodb:$mongodb = new Mongo('localhost') 或者指定IP与端口 $mongodb = new Mon ...

  10. mongodb中的排序和索引快速学习

    在mongodb中,排序和索引其实都是十分容易的,先来小结下排序: 1 先插入些数据    db.SortTest.insert( { name : "Denis", age : ...