整理QTP知识之1
以下说明由网络其他文章整合而成。
一.关于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的更多相关文章
- QTP知识总结(一)
QTP知识总结(一) (2010-12-22 16:30:41) 转载▼ 标签: 杂谈 分类: QTP File menu Process guidance management,View > ...
- 将垃圾送入无底洞,顺便整理dev知识
相信用过Linux的童鞋们都用过crontab来做定时任务,不需要额外的安装程序和配置,一条简单的语句搞定定时任务,但是小伙伴们发现了没,如果你的定时任务执行频率很高而且会产生大量的输出的话,你的老爷 ...
- maven学习整理-进阶知识
在maven的阶知识主要学习的是maven在eclipse中的使用.依赖相关的问题.继承(父子工程).统一版本管理.聚合等相关知识 1.maven在eclipse中的使用 由上篇基础知识学习到怎样下载 ...
- maven学习整理-基础知识
1.maven认识 maven是一种自动化的构建工具,它主要解决的问题有: ①项目中的划分规则:原先我们用package或文件夹的形式来划分不同模块,导致在一个项目中存在大量的文件夹和包代码显得庞大: ...
- ES6知识整理(1)--let和const命令
最近准备在业余空闲时间里一边学习ES6,一边整理相关知识.只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是正在的学到了... 那么现在开始 LINK START!(首先是第一讲,前 ...
- ES6知识整理(2)--变量的解构赋值
最近准备在业余空闲时间里一边学习ES6,一边整理相关知识.只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是真正的学到了... 上一篇是一个试水,现在接上. 变量提升 看了下朋友回复 ...
- 使用"关键词"来整理自己的知识库
以前一直使用MyBase作为整理知识的工具,但是用到后来发现,当整理的知识越来越多时,树形目录的节点个数就会变得越来越庞大,层次越来越深,反而很难定位要查看或编辑的知识.最近发现使用"关键字 ...
- 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 ...
- Java基础知识二次学习-- 第一章 java基础
基础知识有时候感觉时间长似乎有点生疏,正好这几天有时间有机会,就决定重新做一轮二次学习,挑重避轻 回过头来重新整理基础知识,能收获到之前不少遗漏的,所以这一次就称作查漏补缺吧!废话不多说,开始! 第一 ...
随机推荐
- BDIA增强
SE24 CL_EXITHANDLER的方法GET_INSTANCE中有基本上所有的增强都会走这边,打上断点查找增强名称,或者在程序中全局搜索GET_INSTANCE关键字 然后 SE19 下 ...
- Tomcat详细用法学习(一)
在之前有关Tomcat的随笔<Tomcat免安装版的环境变量配置以及Eclipse下的Tomcat配置和测试>和<其他主机连接本地主机Tomcat会出现的防火墙问题>中已经详细 ...
- Swift - 属性观察者(willSet与didSet)
属性观察者,类似于触发器.用来监视属性的除初始化之外的属性值变化,当属性值发生改变时可以对此作出响应.有如下特点: 1,不仅可以在属性值改变后触发didSet,也可以在属性值改变前触发willSet. ...
- STL 之 queue、priority_queue 源代码剖析
/* * Copyright (c) 1994 * Hewlett-Packard Company * * Permission to use, copy, modify, distribute an ...
- 苹果手表的真实触感信息(Real Touch Messaging)
苹果手表凭借其炫酷的设计和界面,无疑已成为一个新的科技焦点,也是苹果在可穿戴领域的重头戏. Apple Watch 有一个非常吸引人的特性:Real Touch Messaging,也就是真实触感消息 ...
- 计算VMT的长度
function GetVirtualMethodCount(AClass: TClass): Integer; begin Result := (PInteger(Integer(AClass) + ...
- osc搜索引擎框架search-framework,TngouDB,gso,
项目目的:OSChina 实现全文搜索的简单封装框架 License: Public Domain 包含内容: 重建索引工具 -> IndexRebuilder.java 增量构建索引工具 -& ...
- JavaScript 中的继承(读书笔记思维导图)
继承是 OO 语言中的一个最为人津津乐道的概念.许多 OO 语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.由于函数没有签名,在 ECMAScript ...
- cocos2dX 之CCParticle
今天我们来看看粒子特效, 何为粒子特效, 为了模拟燃烧的火焰, 天空飘下来的血环, 滴落的小雨, 这些无规律变化的物体, 我们引进了粒子特效这个名词, 粒子特效的原理是将无数的单个粒子组合使其呈现出固 ...
- Linux 核心阅读工具vim+ctags+cscope+taglist
今天.介绍vim+ctags+cscope+taglist的内核阅读配置. 当使用过之后,我相信大部分人都会舍弃之前的Eclipse(我就是活生生的一个样例).我们先来看看实现的界面是怎么样的: 我们 ...