[PLAYING QTP] PART 01 – BEGINNING

part01

FOREWORD
  这一年发生了很多转折,如上一篇文章(【2013】沉淀总结,新的开始)提及的,准备写一系列小文,来总结和怀念我用过的QTP。
  很多人早就建议我可以写教程,之前总是害怕误人子弟,不忍下手。如今自动化测试工具越来越多,由于成本、兼容、自由度等影响,各公司选择自动化测试工具也越来越不同,不过如果你是个新手,QTP仍然是比较简单,容易上手的工具之一,相对的资料也会比较多一些。
  市面上QTP的教学类书籍也比较多,如赵旭斌的《QTP自动化测试领航》,如印度QTP大牛写的《QTP自动化测试权威指南》,书中都已经很详细的介绍了QTP各个功能的使用方法。
  所以,我不打算写成“入门贴”,不会写成“从零开始学QTP”,新手教学网上和书店的确已经写烂了,基本的编程思路和简单的语法知识还是需要大家自备。不是写这个工具怎么用,而是写利用这个工具能做什么。我会以一些常用的方法、技巧和总结为主,还有一些方法的对比评测,以及我在实际工作中的一些使用习惯,一些我觉得还可以如何使用的猜想,以供大家学习参考之用,所有观点只代表我个人观点,绝非标准答案,各位读者如有兴趣可参与讨论,或结合实际用于自己的项目中。
  如有写的不对的地方,或是你有更好的方法,请告诉我,Email:cydblack@163.com。
PART – 01
BEGINNING
       一拖拖了二十几天,一个字也没写,不是不想写,真心不知道怎么起这个头。
  现在QTP,已谈不上什么自动化测试工具的代表,随便找个自动化测试工具都能替代它的功能,所以就不用讨论“什么什么工具比QTP好”之类的问题了,有人需要,而且我正好会那么点,就写了,大家结合自己的项目,各取所需吧。
首先回答几个网友常见的问题:
  • 哪里有下QTP啊?能否发个安装包给我?发安装包就算了,不现实,上G的安装包我得几天几夜不关电脑来上传了。现在各大测试类网站都能找到,比如51testing论坛QTP版块的置顶帖,所以不要在问这个问题了。
  • 有没有中文补丁?有肯定有,但不推荐使用,我以前尝试过,Debug会报错,不知道现在的中文补丁是怎么样了,不过反正就那几个单词,英语不好也完全不影响正常使用,正好练练英语,不是更好?
  • 安装报错怎么办?根据你的环境不同,有时候会遇到各种奇怪的问题,相信测试人员是有能力搞定安装的问题的。
  • 如何破解?请支持正版。
  • 公司没有自动化环境怎么办?公司没人做自动化怎么办?那就自己学习,然后自己将自动化引用与项目,不是非得有人带,才开始学。
  • 录制无脚本是为何?新手必问的问题了,没有之一。大概检查一下这几个地方:安装正确与否;如果是web测试,必须先开QTP再开IE;检查IE插件里的BHO是否启用;去掉IE的保护模式;拉低IE的安全级别;使用管理员权限启动QTP;确定QTP和IE是否兼容;确定控件是否可被QTP识别。
  • 选择QTP版本?现在已经有11.5版本了,如果你的系统和IE版本都很高,就尽量选用最新版本的QTP或安装相应补丁。不要再问QTP9.2是否能在WIN8上识别IE10这样的问题了。如果都是很常见的标准控件,QTP11是个不错的选择。
  • 使用是么编程语言?要学到什么程度?QTP默认用VBScript,程度嘛~最低基本语法和编程思想,无上限。
  • QTP能否进行多人并发的性能测试?如果你有足够多的电脑的话。
  • 不会编程也对编程无兴趣能否做好QTP自动化测试项目?呵。。。呵呵。。。呵。。。
然后是一些常用操作:
  • 在函数名上使用Alt+G能跳转至该函数。
  • 强制终止脚本运行的快捷键 Ctrl+Alt+F5。(PS:UTF11.5以后,貌似就没有强制终止的快捷键了。)
  • Ctrl+M是注释, Ctrl+Shift+M是取消注释,用于批量注释脚本和批量取消注释。
  • 垂直选择:先左键选择一段文字,再单击下右键(左键不松),再往下拉,即可多行垂直选择,且可多行一同编辑字。
  • 在调用函数时,如果参数提示不小心消失了,可通过快捷键 Ctrl+Shift+Space 再显示,前提是,设置下你的输入法默认快捷键,否则无法正常使用。
  • 显式声明 Option Explicit 可以帮助你检查脚本变量是不是有写错。
  • Tools -> Options -> Web -> Advanced 里能设置QTP的两种回放模式,Event 和 Mouse,个人建议使用Mouse模式,更像手工测试一些。
  • Tools -> Web Event Recording Configuration 对BS架构的系统设置录制的详细等级
  • File -> Settings -> Run 关于脚本运行的参数设置,包括发生错误时如何处理的设置职能识别的开关。
  • Tools -> Options -> Run 又是个关于脚本运行的设置,这里的运行设置主要是QC与QTP之间的设置,如果使用QC来管理自动化测试脚本,那这个设置项是必不可少的。
关于IDE:
  我个人比较喜欢QTP11,11.5虽然华丽,但实在太耗资源,而且不稳定,总是无响应,果断放弃。而QTP11的IDE也有很多不人性的地方,最明显的是自己写的Class通过“.”点不出Class下的方法,而且在Available Keywords里看不出任何Class的痕迹,很不人性化。所以,有时候使用VBSedit结合一起编辑脚本。

PART01_01

一些小习惯:
  • 不喜欢用DataTable。使用起来需要打开QTP;而且不能设置字体格式和颜色等,不美观;运行方式需要靠软件的Setting进行设置;如果使用Global又要使用Action调用,有可能Global会被覆盖;两个同名的Sheet Name如“Action1”,在Action调用的时候,QTP会自动帮你改掉名字,导致找不到数据……随后说到参数化的时候再细说。
  • 不喜欢用自带的Report。会有需要运行N个小时的时候,当运行结束生成报告的时候,可想而知,你的QTP是无响应呢?还是无响应呢?还是无响应呢?而且记录了一大堆无用的点击记录,实属浪费……随后说报告的时候再细说。
  • 能用脚本完成的东西,就不用设置项。
  • 能用AOM方式启动执行自动化测试,就不用QTP加载脚本然后按RUN运行就不用。也主要是怕一些不小心的操作。
  • 取解决问题成本最低的方法,而不是取最科技的方法。这里随便举个不是太恰当的例子:对于验证码的自动化,可以抓取验证码图片,调用外部图像处理软件的接口,对图像进行锐化和色调分离,然后再调用ocr软件,对图片里的文字进行解析,解析出来的文字进行操作尝试,失败的话则刷新验证码,重新处理和解析。当然这个的确是处理验证码的方法,不过显然没有让开发把验证码临时注释掉或加个万能验证码来的方便。
  • 我无视了QTP自带的Action划分和调用。原因是如果我按照QTP希望的,将一个动作写成一个Action文件,然后用Copy或Existing的方式调用其他Action,那会产生太多无用的文件,每个脚本文件还会自带上一个Excel,如果脚本再从OFFICE 2003的电脑复制到OFFICE 2007的电脑上,每个脚本打开都会报个错,还得做不少操作,麻烦也没必要……随后文件划分的时候会细说。

远程安装QTP的问题:

有些童鞋需要远程安装QTP到电脑上,如果报错,90%的可能性是你使用系统自带的mstsc远程安装的关系。改用VNCServer吧,然后在自己电脑上装个VNC View,就和在本机上的操作一样了。(详情见:http://www.cydtest.com/?p=235

    然后在这个Part的最后,就是学会QTP的基本操作和理论知识。这个就不多说了,市面上的这类的书很多,根据书本好好练习,了解一下软件测试基础,QTP软件的基础,对象库操作,Spy的操作,弄清楚什么是RO什么是TO,有一定的编程基础。
最后来回顾一下说的几点吧:
PART01_02
PART – 01 END
转载请注明出处与原作者。
如果你觉得文章对你有所帮助,请留言。
如果你想请作者喝杯咖啡,请点这个超链接

9 thoughts on “[PLAYING QTP] PART 01 – BEGINNING

  1. Pingback: 武汉晶泰科技
  2. Pingback: 皇冠投注网
  3. 个人不太认同你说 随便拿一个工具来替代qtp, 大家可能觉得qtp 的什么的IDE不好,或者又说QTP扩展性太差。 我觉得这些说话都是错误的。 只不过是对QTP 还不够了解而言。 QTP在对象识别上暂时还是第一的。再加上11.5的isight 功能, 市面上的工具还是很难跟它比较的。 只不过是大家对他不够深入了解。 多看API,你会发现更多。 本人QQ:413866383

  4. hei,达哥,那个Alt+G我在11.5上试了没反应啊?还有你的后续什么时候出来啊,呵呵,期待呢。。你说不喜欢用自带的reporter,那该用什么啊,我很期待你的后续。呵呵

    1. Alt+G在11.5上不能用么?我目前没有了11.5的环境,因为太耗资源了,目前觉得还是11比较好用,11.5倒是加了一点小改进,不过也加入了太多华而不实的东西。不用自带的Report,那就自己写个Reporter Class,哈哈,后面会说到的。目前的话在写PART 05,关注哦~

  5. 记得那时候写了个死循环 退不出来 还找达哥 帮忙呢 呵呵 达哥 快些action拆分那吧 我现在正头疼这个问题。。

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据