当前位置: 首页 > news >正文

《精通QTP——自动化测试技术领航》—第1章1.2节帮助文档(HELP)-QTP的说明书...

本节书摘来自异步社区《精通QTP——自动化测试技术领航》一书中的第1章1.2节帮助文档(HELP)-QTP的说明书,作者余杰 , 赵旭斌,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 帮助文档(HELP)-QTP的说明书
精通QTP——自动化测试技术领航
阶段要点

F1的简单介绍。

焦点功能引导法。

脚本定位跟踪法。

查阅Example实例技巧。

1.2.1 永远任劳任怨的良师益友“F1”
1.2.1.1 “F1”的简单介绍
F1键相信很多朋友都不会陌生,举个最简单的例子,当用户打开Windows自带的notepad(记事本),按下F1键后,系统就会自动弹出notepad的帮助文档,如图1-3所示。


622a856eb0231aa55ae3578a9f0db141b116468d

不止是notepad有F1,微软Office的Word/Excel/PowerPoint有F1,QQ/MSN有F1,IE有F1,甚至是Windows的桌面也会有F1,不管你使用的是什么软件,F1总是能如影随形的跟着我们,在我们最需要的时候给予最大的帮助。这就是F1,在你刚刚入门时,它会成为你的向导栏;当你处于迷茫时,它会成为你的指路牌;当你准备学习前,它会成为你的教科书;当你需要查询时,它将成为你的小词典。

接下来就来看一下QTP中F1的使用,首先打开QTP,切换到Expert View后,点击F1,就可以看到QuickTest Professional Help文档,如图1-4所示。

从图1-4中可以看到有4个tab,在第一个tab中可以看到一共有8本书。

Welcome。
大致对QTP做了简单的介绍以及帮助文档的使用与更新。

What’s New in QuickTest Professional。
主要介绍了当前QTP版本的一些新特性。

XHP QuickTest Professional User Guide。


a314d7f2a33ca7caacd5dbb0a522f4c6e14748fe

QTP的一些基本知识,建议初学者能认真的把这本书通读一遍。

HP QuickTest Professional for Business Process Testing User Guide。
介绍如何使用业务组件功能来进行测试。

HP QuickTest Professional Add-ins Guide。
对QTP所有支持的插件的使用方法进行了简单介绍。

HP QuickTest Professional Object Model Reference。
用于查阅QTP所有封装对象的接口与用法。

HP QuickTest Professional Advanced References。
QTP的一些高级用法,需要深入学习的建议读一下。

VBScript Reference。
对QTP的平台语言进行详细的介绍,查阅时也相当有用途。

1.2.1.2 如何获取最新的帮助文档
如果需要获取QTP最新版本或者任意版本的帮助文档,可以直接打开IE,进入http://h20230.www2.hp.com/selfsolve/manuals (需注册登录)。如图1-3所示。

Product:
QuickTest Professional。

Product Version:
选择需要的版本。

Operating System:
Windows。

按要求选择产品以及所需要的版本并点击Search按钮后,页面下方即会显示所有文档的列表。左边一栏是标题,右边一栏是文档更新的日期,如图1-6所示。


0b28ddf1cfd8a1f9dee9d396b21af19cbd5e8ce9


34cfa85ef817cfca6e4f7d6678bffe05f91bf555

1.2.2 妙用F1可事半功倍
做任何事情都会有一定的方式方法,好的方式方法可以达到事半功倍的效果,下面我们就来看一下如何才能更好地利用F1键来解决实际中遇到的问题。

1.2.2.1 焦点功能引导
之前说过F1对于新手来说是个非常有利的工具,它可以引导用户熟悉QTP的每项功能。当你的手指按下F1键的瞬间,F1就会被激活并且激活的内容会与当前的焦点自动匹配。这样的一种引导模式对于新手的学习来说,是非常便捷的。

技术指导:切换焦点后点击F1。 - 焦点切换到DataTable,如图1-7所示。 - 焦点切换到对象库(图1-8)。


78f44e05e6572103b8d8b2217924ae4b21bbd0e7

焦点切换到SPY(图1-9)。
无论焦点走到哪里,F1都能精确地对内容进行匹配,可以充分利用此功能进行模块化以及针对性的学习。对于已经熟悉QTP的读者,此功能也是非常有帮助的。因为我们不可能把QTP的所有功能都一一吃透,大多数情况都只是对常用的功能比较熟悉,当在项目中遇到了瓶颈需要使用QTP的新功能或者新技术来解决问题的时候,在面对QTP的一些不是很了解或者相对比较陌生的功能时,此时最好的帮助老师就是F1。当然还可以找“百度大叔”。如果是对于每次QTP升级版本时的新功能发布而言,“百度大叔”也就束手无策了,最终还是只能靠F1。

1.2.2.2 脚本定位跟踪
刚开始学习使用专家视图的读者一定会非常困惑一个问题,那就是每个QTP的封装对象都会有N多个方法,每个方法都代表着不同的含义,有着不同的用法,在调用方法时还会有不同的参数,不同的参数类型以及是否有返回值等一系列的问题。

技术指导:双击定位选取后点击F1。 我们来看一段很简单的脚本:

Launch IE
Systemutil.Run "IEXPLORE.EXE","http://bbs.51testing.com/default.php"
' CLOSE BROWSER
Browser("51Testing软件测试论坛 软件测试|").Close
此脚本所实现的功能就是启动IE,打开51Testing论坛后,关闭浏览器。这里的Close其实就是Browser下的一个方法。这个方法可以实现关闭浏览器。这是一个非常简单的脚本,在Browser对象后输入一个“点”后,QTP会弹出很多的方法,而有些方法对于新手来说不是很了解,可以使用脚本定位跟踪的方法来掌握每个方法的含义和具体用法。

定位对象。
双击选中专家试图中的对象名Browser后,自动选中Browser脚本字符串,F1后页面显示对象的所有方法介绍,如图1-10所示。


ff46c7dc5c9a15f03ec6e374815cde86f49a2074

定位方法。
当需要直接定位对象方法时,可以直接双击选中专家视图中的方法名Close,按F1键后页面显示Close方法的描述、参数个数、返回值等,如图1-11所示。

88c81078a4f5d83d8626b5997fb14934840ba1d8

1.2.3 请遗忘脑中的代码,掌握查阅Example实例技巧
1.2.3.1 封装方法实例查阅
上一章我们讲了脚本定位跟踪,这一章主要来讲跟踪后查阅Example实例的技巧。在这里再次提醒读者,脚本不是死记硬背的,而是要活学活用的,成千上万个方法也不可能都把它背下来。所以,必须掌握这个技巧来应对下一个未知的方法。还是用上一节的例子查阅一个方法的描述如表1-2所示。

表1-2 方法的描述


4106c0eab4d5f681dcf4fac762b25767c1be5329

学会查阅方法是一种必备的技能,当看到一个陌生的方法时,必须能够会使用定位跟踪方法进行查阅,仔细查看对象的方法描述、语法使用、语法细节、返回类型、举例说明。特别是举例说明这一栏,作者个人感觉是很实用的。有时候一个过于复杂的方法,介绍也写的有些含糊,这时可以点击example实例进行查看能够省去很多的时间。如Close方法,如果没有看懂说明,就可以直接点击example,页面就会显示此方法的具体实例,如图1-12所示。

f2743f98a05939352cbd7a6eb010ba612384bc2d

实例程序如下:
Sub Close_Example()
'The following example uses the Close method to close the
'Mercury Tours application. 
Browser("Mercury Tours").Page("Search Results").Image("reserveFlights").Click 41, 20
Browser("Mercury Tours").Page("Method of Payment").Image("buyFlights").Click 11, 5
Browser("Mercury Tours").Close
End Sub

当看完此实例后,就能够轻松掌握Close方法的所有用法了。

1.2.3.2 VBScript方法函数查阅
QTP的底层语言是VBScript,因此是否能够灵活运用好VBScript脚本语言在自动化测试中是至关重要的。VBScript虽然语法不多,也不是很严谨,但是方法和函数却非常繁多,往往新手在学习时都不能把全部的函数和方法都熟记下来,因此必须找出一种方式方法来摆脱这种非常被动的局面。通过F1定位进行实例查询,现学现用。

实例InStr函数的定位。
首先在QTP里输入Instr,双击选取Instr后,点击F1进行内容定位匹配,接着就可以看到Instr方法的介绍与用法,如图1-13所示。

从帮助文档的说明中可以看到,此函数返回的是一个字符串在另一个字符串中的首个位置,参数一共有4个,如下所示。


aba9798c9a7b29fe606fe05e7a88962d062514fb

Start:起始位置,可选。
String1:需要被搜索的字符串,必选。
String2:需要搜索字符串,可选。
Compare:比较方式,可选。
对于新手来说,看完以上这些说明之后,若还是比较迷茫。怎么办呢?可以直接把Example的内容拷贝到QTP中执行一遍,相信一定会恍然大悟的,并且会发现原来这个函数的用法是那么的简单,对自动化测试的学习也会越来越有信心。

InStv实例程序如下:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in. 
SearchChar = "P" ' Search for "P".
MyPos = Instr(4, SearchString, SearchChar, 1) 
' A textual comparison starting at position 4. Returns 6. 
MyPos = Instr(1, SearchString, SearchChar, 0)  
' A binary comparison starting at position 1. Returns 9.  
MyPos = Instr(SearchString, SearchChar)  
' Comparison is binary by default (last argument is omitted). Returns 9. 
MyPos = Instr(1, SearchString, "W")  
' A binary comparison starting at position 1. Returns 0 ("W" is not found).

通过Example可以很明显地看出,需要搜索的范围是XXpXXpXXPXXP,而搜索的内容为P,第一个则是在这个搜索范围里从第4个位置开始搜索P,直到找到P位置,然后停止搜索,并返回找到的位置。由于此处的第4个参数是1,为文本比较,是忽视大小写的,因此,此处返回的位置为第6个,所以返回值也就是6,后面3个原理基本也是一样的,读者可以自行尝试琢磨一下看。

通过以上的例子相信读者应该已经学会了,如果通过灵活地运用F1来定位内容并匹配,能够现学现用。此技巧不管是对于新手来说,还是已经能够熟练运用QTP的来说都是必备的技能。一旦能够做好了这一点,就相当于把整个F1文档都搬到了自己的大脑里、相当于上升到了一个新的台阶。

1.2.4 总结
这一章节主要介绍了F1的使用,以及如何通过F1来提高学习与工作的效率,以便掌握现学现用解决实际问题的技巧。虽然这一章的内容较为简单,但是这一章的一些技巧基本会贯穿整个自动化测试学习的过程。需要掌握的是定位跟踪的查阅技巧,而不是去背F1。这才是作者要讲这章节内容的关键所在。希望读者能够牢记并灵活应用。

知识点巩固和举一反三练习

1.请利用F1查阅SystemUtil对象的具体用法。

2.请根据以下代码利用F1脚本跟踪定位法来查阅filter方法在如下代码中的用法。

Dim arrIndex
Dim arr (3)
arr(0) = "Quick"
arr(1) = "Quick Test"
arr(2) = "Quick Test Professional"
arrIndex = Filter(arr, "Test") ' MyIndex(0) contains "Monday".
MsgBox arrIndex(0)

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章:

  • 《jQuery、jQuery UI及jQuery Mobile技巧与示例》——9.16 技巧:使用主题来更改配色方案...
  • 如何使用Aptik来备份和恢复Ubuntu中的Apps和PPAs
  • 《游戏大师Chris Crawford谈互动叙事》一导读
  • 麻省理工设计出可以快速生产和应用的可编程RNA疫苗
  • ReentrantLock(重入锁)以及公平性
  • 《OOD启思录》—第2章2.2节消息和方法
  • Linux 平台下 Python 脚本编程入门(一)
  • 《网站设计 开发 维护 推广 从入门到精通》—— 1.2 网页美工常用工具
  • 大数据分析提升电子病历临床价值
  • 拆 JakeWharton 系列之 RxAndroid
  • JS---数组(Array)处理函数整理
  • css的元素表现
  • js 正则表达式 判断车牌号
  • Spring7:基于注解的Spring MVC(下篇)
  • js常见知识点2.面向对象相关
  • [笔记] php常见简单功能及函数
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Django 博客开发教程 16 - 统计文章阅读量
  • HTTP中GET与POST的区别 99%的错误认识
  • HTTP中的ETag在移动客户端的应用
  • JS数组方法汇总
  • Laravel Mix运行时关于es2015报错解决方案
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • 多线程 start 和 run 方法到底有什么区别?
  • 前端
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 小程序 setData 学问多
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • Java总结 - String - 这篇请使劲喷我
  • Nginx实现动静分离
  • # include “ “ 和 # include < >两者的区别
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • $().each和$.each的区别
  • (C语言)共用体union的用法举例
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (四)linux文件内容查看
  • (原)本想说脏话,奈何已放下
  • (转)linux 命令大全
  • ***检测工具之RKHunter AIDE
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Core引入性能分析引导优化
  • /proc/stat文件详解(翻译)
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • []指针
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)
  • [BZOJ 4598][Sdoi2016]模式字符串
  • [BZOJ2850]巧克力王国
  • [C++]C++类基本语法
  • [C语言]——内存函数
  • [Flutter]打包IPA
  • [IE编程] IE8的SDK 下载