《QTP自动化测试进阶》读书笔记
《QTP自动化测试进阶》读书笔记(1)
学习《QTP自动化测试进阶》第一章。
采用不同的项目开发模型对自动化测试有不同的影响。
(1)瀑布模型:瀑布模型在需求定义方面做得很好,这对自动化测试是有益的,包括可以尽早选择合适的自动化测试策略,让自动化测试可以高层次、整体地进行计划。
(2)RUP:RUP强调的迭代开发让自动化测试可以应用在开发周期的很大一部分时间中。但是,也意味着频繁的变更,自动化测试需要与开发策略紧密结合,关注早期构建、迭代的速度、风险、覆盖目标等。
(3)敏捷:敏捷方法打破了传统的自动化测试方法。第一个破坏点集中在自动化的可接受性测试。这种测试所使用的工具超越了传统的自动化测试工具的范围,并且,很难被其他类型的自动化重用。细粒度的迭代让每次自动化测试难以集中目标和定义标准。
要想成为专业的QTP自动化测试工程师,需要掌握很多方面的专业技术。包括:
1、VBScript 。QTP使用VBScript作为测试脚本语言,因此需要掌握很多VBScript的知识。
2、软件测试自动化框架知识。为了让自动化测试脚本的可重用性、可维护性更强,自动化测试框架方面的知识不可或缺。
3、COM/DCOM 技术。主要是Excel, Word, Outlook等相关的COM技术,例如,在自动化测试过程中经常需要调用Excel编程接口来读取数据。
4、SQL语言。查询数据库读取测试数据、添加数据库验证点,这些都需要SQL语言的基础和数据库应用基础。
5、HTML、XML、DOM 。测试WEB页面、Web服务、AJAX应用时经常需要跟这些技术打交道。
学习《QTP自动化测试进阶》第二章。
手工测试不可替代的地方至少包括以下几点:
测试用例的设计:测试人员的经验和对错误的猜测能力是工具不可替代的。
界面和用户体验测试:人类的审美观和心理体验是工具不可模拟的。
正确性的检查:人们对是非的判断、逻辑推理能力是工具不具备的。
在进行项目的自动化测试之前,先要考虑以下5个方面:
(1)测试自动化类似于软件开发过程
(2)测试自动化是一个长期的过程
(3)确保测试自动化的资源,包括人员和技能
(4)循序渐进地开展自动化测试
(5)确保测试过程的成熟度
IBM的网站上提供了一个自动化ROI计算器:
http://www-01.ibm.com/software/rational/offerings/testing/roi/tool/ROI_Rational.html
自动化测试项目计划
1 工作阶段分解
1.1 项目启动阶段
1.1.1 评估过去的项目
1.1.2 目标范围
1.1.3 效果衡量
1.1.4 团队成员构成
1.1.5 招聘
1.2 早期项目支持阶段
1.2.1 目标和目的
1.2.2 约束调研
1.2.3 可测试性评审
1.2.4 需求评审
1.2.5 测试流程分析
1.2.6 组织介入
1.3 测试自动化计划阶段
1.3.1 测试需求
1.3.2 自动化测试策略
1.3.3 可交付的成果
1.3.4 测试程序参数
1.3.5 培训计划
1.3.6 技术环境
1.3.7 自动化工具兼容性检查
1.3.8 风险评估
1.3.9 测试计划归档
1.3.10 自动化测试数据
1.3.11 自动化测试环境
1.3.12 角色和责任
1.3.13 自动化测试系统管理
1.4 测试自动化设计阶段
1.4.1 原型自动化测试环境
1.4.2 自动化技术和工具
1.4.3 自动化设计标准
1.4.4 自动化脚本编码计划
1.4.5 测试自动化库
1.5 自动化开发阶段
1.5.1 自动化脚本编码任务分配
1.5.2 脚本同行评审
1.5.3 测试脚本和工具的改进
1.5.4 测似脚本配置管理
1.6 自动化集成阶段
1.6.1 环境建立
1.6.2 测试阶段执行
1.6.3 自动化测试报告
1.6.4 问题处理
1.7 自动化过程改进阶段
1.7.1 测试工具/脚本评估
1.7.2 回顾和评审
1.7.3 维护测试过程库
1.7.4 自动化内部知识网
1.7.5 持续培训
2 时间表
2.1 关键里程碑
2.2 迭代周期目标的实现
2.3 项目进度表
3 项目资源
3.1 组队计划
3.2 资源需求计划
3.3 培训计划
3.4 预算
4 项目监控
4.1 自动化效果评估
4.2 进度控制计划
4.3 预算控制计划
4.4 报告计划
4.5 度量计划
5 配套流程
5.1 配置管理计划
5.2 缺陷跟踪和问题处理
5.3 自动化框架评估
5.4 框架归档计划
5.5 过程改进
自动化功能测试脚本的开发方式主要有以下几种:
线性的
结构化的
共享的
数据驱动的
关键字驱动的
更多参考资料:
1、《修炼成QTP高手的十个步骤》:
http://blog.csdn.net/Testing_is_believing/archive/2008/07/07/2623007.aspx
2、在2007年10月的《Better Software Magazine》中,Dion Johnson发表文章《Test Automation Grows Up》指出现在我们都把自动化测试当成是手工测试的附属品、是手工测试的“儿子”,就像当年把测试当成是开发的“儿子”一样。
3、Bob Galen在名为《Sizing up Automation Candidates – Selecting Which Tests,When To Automate Them,and Which To Take Off the Ticket Entirely》的文章中提到 , 采用不同的项目开发模型对自动化测试有不同的影响:
http://downloads.seapine.com/pub/papers/stpSizingAuto.pdf
4、Alan S.Koch在《Agility and Quality》一文中讨论了敏捷项目中测试人员的角色问题:
http://blog.csdn.net/Testing_is_believing/archive/2007/10/09/1817399.aspx
5、Alan S. Koch在《The QA Catchall》一文中提到,测试不能保证质量、技术评审也不能保证质量,质量保证必须内建于开发中:
http://blog.csdn.net/Testing_is_believing/archive/2007/09/30/1808454.aspx
6、《自动化测试与脚本编写能力》:
http://blog.csdn.net/Testing_is_believing/archive/2008/05/27/2487614.aspx
7、作为一名专业的自动化测试工程师,不应该仅仅局限于对工具的掌握和使用,应该建立测试的自动化知识体系(ABOK,Automation Body of Knowledge):
http://www.automatedtestinginstitute.com/home/index.php?option=com_content&view=category&id=69&Itemid=95
8、在《Are You Ready for the Test Automation Game》一文中,Kerry Zallar描述了软件测试组织的成熟度对于成功实施自动化测试的重要影响:
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=MAGAZINE&ObjectId=5040&tth=DYN&tt=siteemail&iDyn=2
9、《敏捷测试的最佳实践,第 4 部分: 自动化测试的 ROI》一文从自动化测试的测试脚本的开发维护成本量,测试脚本生命周期即脚本重复运行次数,测试脚本运行错误比率,测试周期长度来估算自动化测试投入产出比(EROI)模式:
http://www.ibm.com/developerworks/cn/rational/r-cn-agiletesting4/
10、Dion Johnson在《Test Automation ROI》一文中介绍了几种计算自动化测试ROI的方法:
http://www.stickyminds.com/getfile.asp?ot=XML&id=8502&fn=XDD8502filelistfilename1.pdf
11、IBM的网站上提供了一个自动化ROI计算器:
http://www-01.ibm.com/software/rational/offerings/testing/roi/tool/ROI_Rational.html
12、软件在设计时考虑可测性的问题,可以让自动化测试开展得更加顺利,Tarun Lalwani在《Developing automation friendly web application》一文中介绍了如何设计和开发自动化“友好”的Web应用程序:
http://knowledgeinbox.com/articles/qtp/general/developing-automation-friendly-web-application/
13、Michael Kelly在《Choosing a test automation framework》一文中介绍了几种自动化测试框架的脚本编写方法:
http://www.ibm.com/developerworks/rational/library/591.html
14、Automated Testing Institute归纳了自动化测试框架的演变历史,第一代框架为“线性的”,第二代框架是“数据驱动的”,第三代框架是“关键字驱动的”:
http://www.automatedtestinginstitute.com/home/index.php?option=com_content&view=article&id=69&Itemid=75
15、Bret Pettichord在《Hey Vendors, Give Us Real Scripting Languages》这篇文章中提到测试工具厂商的编程语言的种种弊端:
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=COL&ObjectId=2326
16、《Ten Steps to Building Software Test Automation That Works》一文描述了迈向成功自动化测试的路线图:
http://www.qasignature.com/offers/tensteps.htm
17、LogiGear的白皮书《Achieving the Full Potential of Test Automation》中总结了一些自动化测试的经验:
http://www.logigear.com/campaigns/ta_whitepaper.pdf
18、Meir Bar-Tal在《Implementing a GUI Layer with Classes》这篇文章中提到自动化测试项目应该与开发项目一样看待:
《QTP自动化测试进阶》读书笔记(2)
学习《QTP自动化测试进阶》第三章。
测试工具的选型是成功应用测试工具的第一步,测试工具的选型应该注意以下几点:
(1)首先,分析项目的特点,软件系统采用的开发工具、语言、技术、平台等。还要结合测试的类型、测试的要求。
(2)同时还要了解目前存在的各种测试工具的情况,包括工具的生产厂家、价格、产品特性、技术支持和售后服务情况,还要了解该工具的市场占有率、使用人群等情况,如果是国外厂商生产的测试工具,最好再了解清楚国内的代理机构的情况等。
(3)选型的最后一步是编写选型报告。通过综合分析所有收集回来的材料,横向比较测试工具的优势和劣势。
自动化测试工具的原理:
1、基于代码层面的功能自动化测试工具主要是一些单元测试工具
2、基于浏览器和DOM对象模型的功能自动化测试工具
3、基于GUI对象识别的测试工具原理
4、反射机制在自动化功能测试工具中的使用
5、UI Automation在自动化功能测试工具中的使用
QTP的对象识别:
1、Object Identification
2、QTP的3类顺序标识(Ordinal Identifiers):Location, Index 和 CreationTime
3、QTP的智能识别(Smart Identification)
学习《QTP自动化测试进阶》第4章
1、下载QTP10:
2、安装QTP
3、很多初学者往往忽略了对QTP自带的帮助文档的学习,而实际上,这些正是最佳的学习QTP使用和自动化测试脚本开发的渠道。
4、观看QTP的视频教程:
C:\Program Files\HP\QuickTest Professional\help
5、熟悉QTP 自带的样例程序 Flight
6、录制、回放
录制的设置
熟悉关键字视图、专家视图
更多参考资料:
1、《Three Key Tools for Automated Testing: Language, Driver, Harness》 - Bret Pettichord :
http://www.io.com/~wazmo/blog/archives/2009_04.html#000293
2、自动化测试工具Watir与SilkTest的比较:
http://wiki.openqa.org/display/WTR/Comparison+of+Watir+with+Silk+Test
3、《Flex自动化功能测试工具大比拼》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/09/5163447.aspx
4、Andrei在http://qaheaven.com/的一篇名为《HP QTP 9.5 vs AutomatedQA TestComplete 7》的文章中对比了QTP9.5与TC7:
http://blog.csdn.net/Testing_is_believing/archive/2009/11/14/4810051.aspx
5、微软的开源测试框架White(通过开源的代码分析有助于大家理解自动化测试工具的原理):
http://blog.csdn.net/Testing_is_believing/archive/2009/11/11/4797026.aspx
6、《微软UI自动化测试的技术演变》:
http://blogs.msdn.com/stbcblog/archive/2010/01/25/Tech-Trend-of-Microsoft-UI-Automation-Testing-Part-1.aspx
7、《Selecting Automated Testing Tools》一文介绍了选择自动化测试工具时需要考虑的各个方面:
http://www.automatedqa.com/techpapers/testcomplete/selecting-testing-tools-requirements/
8、制定QTP自动化测试工具培训大纲可参考:
http://blog.csdn.net/Testing_is_believing/archive/2009/12/12/4993009.aspx
9、其它自动化测试工具相关的信息可参考:
http://blog.csdn.net/Testing_is_believing/category/642324.aspx
http://blog.csdn.net/Testing_is_believing/category/332639.aspx
http://blog.csdn.net/Testing_is_believing/category/647265.aspx
10、QTP安装包中的Readme.htm文件
11、HP Quick Test Professional最新试用版本的下载地址:
https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&cp=1-11-127-24^1352_4000_100__
12、HP Quality Center资源库(HP Quality Center Resource Library):
https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&cp=1-11-127-24^40625_4000_100__
13、QTP升级补丁查询页面(需要先注册HP Passport):
http://support.openview.hp.com/selfsolve/patches
14、《QTP9.2的帮助文件》:
http://blog.csdn.net/Testing_is_believing/archive/2008/01/06/2027756.aspx
15、Dion Johnson在《Record & Playback, You Have My Apologies》一文中以一种独特的方式提醒大家要以正确的态度对待录制回放模式的脚本编写方式:
16、HP在线视频中心(HP Software Web Events Center):
https://h30457.www3.hp.com/HP-Software-Web-Events/home.aspx
《QTP自动化测试进阶》读书笔记(3)
学习《QTP自动化测试进阶》第5章 – QTP的基本使用
使用QTP进行自动化测试的基本过程:
(1)录制测试脚本。
(2)编辑测试脚本。
(3)调试测试脚本。
(4)运行测试脚本。
(5)分析测试结果。
Object Spy的使用,测试过程中查看GUI对象的属性和方法!
对象库管理比较关键,录制时会自动添加对象到对象库,也可以手工添加!
测试对象作为资源,可导出到文件中,以方便其他测试脚本的使用,方法是在对象库管理界面中,选择菜单“File | Export Local Object”
Action与对象库之间要关联
Reporter.ReportEvent用于写测试日志
脚本调试技巧:
1、选择菜单“Tools | Check Syntax”,或者按快捷键“CTRL + F7”对测试脚本进行语法检查
2、设置断点(F9)
3、步进(F10)
4、跳入函数(F11)
5、Debug Viewer 查看对象、变量
F5运行脚本
Test Batch Runner可以批量运行测试脚本
收集了更多参考资料有待研究:
1、《QTP的Action模板》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/19/5214580.aspx
2、《增强QTP调试器功能的方法》:
http://blog.csdn.net/Testing_is_believing/archive/2008/03/19/2198263.aspx
http://www.advancedqtp.com/knowledge-base/articles/qtp-tricks4/qtp-hacks/vs2008-pdmdll-dramatically-improves-qtps-debug-engine/
3、knowledgeinbox.com中关于QTP调试技巧的文章:
http://knowledgeinbox.com/articles/qtp/debugging/
4、《QTP测试脚本的维护 - 使用Update运行模式和Maintenance运行模式》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/10/5170465.aspx
5、《QTP测试脚本批处理运行的两个工具》:
http://blog.csdn.net/Testing_is_believing/archive/2008/03/20/2201178.aspx
6、MTM(MultiTestManager,QTP批量运行测试的小工具)的下载地址:
http://www.advancedqtp.com/Uploads/MultiTestManagerV8_2_4.zip
7、QTP附带的介绍对象库管理的视频:
<QTP安装目录>\help\ORMPresentation.avi
8、QTP附带的介绍基本使用方法的视频:
<QTP安装目录>\help\ORMPresentation.avi
《QTP自动化测试进阶》读书笔记(4)
学习《QTP自动化测试进阶》第6章 –QuickTest Professional与其他工具的整合
QTP可以与WinRunner、LoadRunner、QC整合。
QTP与QC结合能实现BPT(Business Process Testing)测试。该框架让非技术人员,例如领域专家、业务专家可以在非脚本编程的环境下通过业务组件(Business Components)构建业务测试过程。
QC插件下载:
http://update.external.hp.com/qualitycenter/qc100/index.html
BPT过程:
1、业务专家编写手工组件
2、把手工组件转换成自动化组件
3、自动化测试工程师创建应用程序域和对象库
4、自动化工程师编写自动化脚本(建立函数库、实现关键字)
5、业务专家编辑业务流程(组合组件)
6、业务专家把业务流程测试用例添加到测试集并运行
要成功地通过QC调用QTP执行业务流程测试脚本,需要在QTP中设置“Allow other HP products to run tests and components”
补充学习参考资料:
1、关于QTP调用AutoIt的方法可参考:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/16/5200693.aspx
2、《Using QTP with LoadRunner for Load Testing》:
http://www.loadrunnertnt.com/concepts/using-qtp-with-loadrunner-for-load-testing/
3、《HP QuickTest Professional for Business Process Testing》详细介绍了如何进行BPT测试:
在QTP安装目录中的help目录查阅帮助文档QTP4BPT.pdf
4、Quality Center安装包下载地址:
https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&cp=1-11-127-24^1131_4000_100__
5、ConnectedTesting.com的BPT-Based Test Automation Framework就是一个基于BPT的框架,《Test Automation with CTA Framework》这个PPT对这种框架的使用作了详细的解释:
http://www.connectedtesting.com/Presentations/CTA%20Test%20Automation%20Framework%20v2.1.ppt
6、《QTP整合Sikuli》:
http://blog.csdn.net/Testing_is_believing/archive/2010/03/14/5378408.aspx
《QTP自动化测试进阶》读书笔记(5)
学习《QTP自动化测试进阶》第7章
QTP支持的检查点类型:
(1)标准检查点(Standard Checkpoint):用于检查测试对象的属性。
(2)图像检查点(Image Checkpoint):用于检查被测试应用程序的图像。
(3)位图检查点(Bitmap Checkpoint):把检查被测试应用程序的某个区域当成位图来检查。
(4)表格检查点(Table Checkpoint):用于检查表格信息。
(5)文本检查点(Text Checkpoint):用于检查文本字符串是否在应用程序中的适当位置出现。
(6)文本区域检查点(Text Area Checkpoint):用于检查文本字符串是否按既定的标准出现在应用程序的预定区域。
(7)可访问性检查点(Accessibility Checkpoint):用于检查网页是否满足W3C的网页内容可访问性指南的要求。
(8)页面检查点(Page Checkpoint):用于检查网页的属性。
(9)数据库检查点(DataBase Checkpoint):用于检查应用程序所访问的数据库。
(10)XML检查点(XML Checkpoint):用于检查XML文档。
扩展学习资料:
1、《自定义CheckPoint》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/02/5121061.aspx
2、Yaron Assa在《Checkpoints and points-of-view》一文中介绍了自定义的CheckPoint脚本编写的方法:
3、Knowledgeinbox.com中有几篇关于QTP检查点的文章也值得参考:
http://knowledgeinbox.com/articles/qtp/checkpoints/
4、《QTP下基于XML+DP的关键字驱动DEMO》:
http://blog.csdn.net/Testing_is_believing/archive/2009/11/29/4900529.aspx
5、《用TestComplete实现一个关键字驱动测试框架》:
http://blog.csdn.net/Testing_is_believing/archive/2008/06/27/2593103.aspx
6、《51测试天地》第十二期《框架经理-FrameworkManager简介》
FrameworkManager是由Yaron Assa开发的一个开源的QTP自动化测试框架,目的是让QTP的脚本编写更为优雅和清晰(for elegant, clean scripting with QTP)。下载地址:
http://www.advancedqtp.com/knowledge-base/projects/frameworkmanager/frameworkmanager-version-081/
《QTP自动化测试进阶》读书笔记(6)
学习《QTP自动化测试进阶》第8章 – 数据驱动
测试脚本的开发和维护是自动化测试的重要环节,适当地调整和增强测试脚本,能提高测试脚本的灵活性,增加测试覆盖面,以及提高应对测试对象变更的能力。数据驱动方式的测试脚本开发是解决这类问题的重要手段。
数据驱动的测试方法要解决的核心问题是把数据从测试脚本中分离出来,从而实现测试脚本的参数化。
数据驱动测试的一般步骤:
(1)参数化测试步骤的数据,绑定到数据表格中的某个字段。
(2)编辑数据表格,在表格中编辑多行测试数据(取决于测试用例以及测试覆盖率的需要)。
(3)设置迭代次数,选择数据行,运行测试脚本每次迭代从中选择一行数据。
QTP参数化的方式:
1、随机数
2、环境变量
3、DataTable
参考资料:
1、《QTP的Action间的信息共享的4种方法》:
http://blog.csdn.net/Testing_is_believing/archive/2008/06/09/2528094.aspx
2、《该使用QTP的Action还是Function》:
http://blog.csdn.net/Testing_is_believing/archive/2008/02/04/2084011.aspx
3、《在QTP中使用Dictionary对象来替代环境变量》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/08/5161955.aspx
4、《在DataTable中如何保留数据格式》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/02/5121380.aspx
5、《如何从Excel文件中导入所有Sheet到DataTable中》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/02/5121328.aspx
6、《Share Store - 进程间数据共享》:
http://blog.csdn.net/Testing_is_believing/archive/2009/12/30/5109011.aspx
7、数据驱动的第一步是定义好数据源,数据源除了QTP的DataTable之外,可以是文本文件、Excel文件、数据库表格等,关于在QTP中调用Excel的方法可参考这几篇文章:
http://blog.csdn.net/Testing_is_believing/archive/2008/07/07/2623162.aspx
http://blog.csdn.net/Testing_is_believing/archive/2008/07/04/2612221.aspx
http://blog.csdn.net/Testing_is_believing/archive/2008/05/14/2446747.aspx
8、AdvancedQTP.com上有一个在线测试QTP的DataTable的掌握程度的网页:
http://www.advancedqtp.com//wp-content/uploads/Quiz/DT/QuizForce.html
9、《QTP: Creating a Highly Efficient Test-Data Dictionary》:
http://relevantcodes.com/qtp-creating-a-highly-efficient-test-data-dictionary/
10、《Introduction to Parameterization with QTP’s Local DataTable》:
http://relevantcodes.com/introduction-to-parameterization-qtps-local-datatable/
《QTP自动化测试进阶》读书笔记(7)
学习《QTP自动化测试进阶》第9章 – VBScript基础
作为QTP的脚本语言,VBScript是写好QTP脚本的必备知识!
变量的声明可以用Dim语句,也可以不预先声明,而直接在脚本中使用变量名,这是隐式的变量声明方法。这虽然带来一定的方便性,但不是一种好的编码习惯,因为可能会因为变量名的拼写错误而导致代码出现意外的结果。
字符串连接使用“&” 运算符,虽然可以使用“+”运算符来连接两个字符串,但是由于“+”同样用于数值相加运算,所以还是建议使用“&”运算符来连接字符串,以避免产生混淆,加强代码的可理解性。
Sub和Function都是过程,但是Sub不能返回值,而Function可以返回值。Function的返回值是通过赋值给Function名来传递的,而不是“Return”语句。
可利用ReDim语句来动态创建数组
可使用UBound函数来获得数组的大小
正则表达式提供了功能强大、灵活而又高效的方法来处理文本。利用正则表达式的全面模式匹配表达法,可以快速分析大量文本,从而找到特定的字符模式。
RegisterUserFunc是一个很有用的函数,可以将VBS函数注册到指定的测试对象中。
补充学习资料:
1、《如何在 QTP 中使用 IntelliSense (智能敏感)访问自定义的 VBS 函数和对象》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/01/5117536.aspx
2、Meir Bar-Tal给我们展现了用VBS的类实现面向对象的QTP自动化测试框架:
http://www.advancedqtp.com/knowledge-base/articles/qtp-tricks4/descriptive-programming/implementing-a-gui-layer-with-classes/
3、《QTP面向对象框架》:
http://blog.csdn.net/Testing_is_believing/archive/2009/12/19/5040680.aspx
4、AdvancedQTP.com上的一个在线测试VBScript脚本掌握程度的页面:
http://www.advancedqtp.com//wp-content/uploads/Quiz/VBScript%20Basic/QuizForce.html
5、《QTP操作注册表》:
http://blog.csdn.net/Testing_is_believing/archive/2008/03/23/2211002.aspx
6、《在QTP中使用Dictionary对象》:
http://blog.csdn.net/Testing_is_believing/archive/2008/03/18/2195340.aspx
7、《On Error Resume Next》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/23/5248641.aspx
8、《VBS中的ExecuteGlobal语句的使用》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/19/5214523.aspx
9、《VBS中如何获取一个数组中最大值的位置》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/07/5154093.aspx
10、《FileSystemObject对象》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/06/5146258.aspx
11、VBS 中函数参数支持 ByVal 和 ByRef 两种传递方式,这篇文章解释了它们的区别:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/02/5122407.aspx
12、《获取两个字符串之间的字符串的VBS函数》:
http://blog.csdn.net/Testing_is_believing/archive/2008/06/12/2540629.aspx
13、AdvancedQTP.com上关于VBScript的教程:
http://www.advancedqtp.com/first-steps/tutorials/vbscript-techniques-id124/vbscript-tutorial/
14、QTP帮助文档VBScript56.CHM
15、《QTP脚本编写技巧 - 从函数中返回多个值的方法》:
http://blog.csdn.net/Testing_is_believing/archive/2010/03/22/5403131.aspx
16、推荐一个学习正则表达式的网站:
http://www.regular-expressions.info/
17、relevantcodes.com的一篇文章《VBScript: Compare 2 Excel Files》中介绍了如何用VBScript来比较两个Excel文件的数据:
http://relevantcodes.com/vbscript-compare-2-excel-files/
《QTP自动化测试进阶》读书笔记(8)
学习《QTP自动化测试进阶》第10章 – QTP测试脚本开发
Utility对象:
用PathFinder对象查找文件
用XMLUtil对象检查XML
用Extern对象加载DLL
用SystemUtil的Run方法启动被测试程序
用Reporter写测试结果
用Environment读写环境变量
QTP内置函数的使用:
用Print函数显示信息
用Wait函数暂停测试脚本的执行
用ExecuteFile执行VBScript脚本
用DotNetFactory对象访问.NET类库
恢复场景(Recovery Scenario):让QTP在碰到非预期的事件或错误时,可以恢复脚本的执行控制权
补充学习参考资料:
1、LearnQTP.com上的《QTP and DotNetfactory》系列文章:
http://www.learnqtp.com/category/dotnetfactory/
2、《QTP中为什么恢复场景(Recovery Scenario)没有被触发》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/25/5255831.aspx
3、《QTP的TextUtil对象的使用》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/21/5221808.aspx
4、《揭秘QTP保留对象机制》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/08/5162020.aspx
5、在 QTP10 中, Reporter 对象有了一些改进,《QTP10的Reporter对象》这篇文章作了相关介绍:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/02/5121064.aspx
6、《重写QTP的Reporter对象》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/01/5117119.aspx
7、《QTP的报告管理扩展框架 - ReporterManager》:
http://blog.csdn.net/Testing_is_believing/archive/2008/01/27/2068905.aspx
8、ReporterManager下载地址:
http://www.advancedqtp.com/knowledge-base/projects/reportermanager/reportermanager-version-921/
9、Dani Vainstein写的StringUtil,可以让我们拥有类似.NET Framework中的字符串处理类库般的能力,下载地址:
http://www.advancedqtp.com/knowledge-base/projects/stringutil/the-stringutil-project/
10、《RFT的异常处理方式》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/23/5248635.aspx
11、《Recovery Scenario Test Run Error: Item in list or menu not found》
http://relevantcodes.com/recovery-scenario-test-run-error-item-in-list-or-menu-not-found/
《QTP自动化测试进阶》读书笔记(9)
学习《QTP自动化测试进阶》第11章 – QTP描述性编程
使用QTP的描述性编程编写脚本的方式,与录制脚本以及在关键字视图编写脚本的方式有很大的不同。描述性编程能提供更加灵活的测试脚本编写方法,并且能摆脱测试对象库的限制,编写出更为复杂、适应力更强的测试脚本。
两种描述性编程的开发方式:
直接描述
使用Description对象
描述性编程的“后续强迫性”:如果在测试对象层次结构的某一点开始使用了描述性编程,则该测试对象层次结构下的后续测试对象都要使用描述性编程的方式来描述对象。
其他学习资料:
1、《两种DP描述方法的比较》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/01/5116959.aspx
2、《什么时候使用DP》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/01/5116856.aspx
3、《QTP中使用OR还是DP对于IE内存泄漏的影响》:
http://blog.csdn.net/Testing_is_believing/archive/2009/11/29/4900770.aspx
4、《QTP: Creating Object Descriptions “On The Fly”》:
http://relevantcodes.com/qtp-creating-object-descriptions-on-the-fly/
5、《QTP: Understanding the Description Object (Description.Create)》介绍了Description对象的使用方法:
http://relevantcodes.com/qtp-all-about-the-description-object-description-create/
6、《Descriptive Programming (DP) – 4 (Creating a Test Script)》:
http://relevantcodes.com/descriptive-programming-dp-4-creating-a-test-script/
7、《Descriptive Programming (DP) Concepts – 3 (Ordinal Identifiers)》介绍了使用描述性编程时顺序标识符的用法:
http://relevantcodes.com/descriptive-programming-dp-concepts-3-ordinal-identifiers-demo/
8、《Descriptive Programming (DP) vs Object Repository (OR)》介绍了使用对象库和使用描述性编程的区别:
http://relevantcodes.com/dp-vs-or/
9、《Descriptive Programming (DP) Concepts – 2 {Regular Expressions}》介绍了描述性编程中正则表达式的使用:
http://relevantcodes.com/descriptive-programming-dp-concepts-2-regular-expressions/
10、《Descriptive Programming (DP) Concepts – 1》介绍了描述性编程的基本概念和脚本编写方法:
http://relevantcodes.com/descriptive-programming-concepts-1/
《QTP自动化测试进阶》读书笔记(10)
学习《QTP自动化测试进阶》第12章 – 使用QTP测试标准Windows对象
使用CaptureBitmap方法来截屏
使用ChildObjects方法获取某个对象中包含的对象列表
使用RunAnalog方法运行低级录制过程
熟悉和掌握各类标准Windows控件的测试:
Dialog
Static
WinButton
WinCalendar
WinCheckBox
WinCombobox
Window
WinEdit
WinEditor
WinList
WinListView
WinMenu
WinRadioButton
WinScrollBar
WinSpin
WinStatusBar
WinTab
WinToolbar
WinTreeview
WinObject
在GUI测试过程中,通常会碰到对象无法被测试工具识别的问题,这时候往往需要特殊的解决办法,其中一种方法就是通过发送键盘按键的方式来操纵控件
Mercury.DeviceReplay对象是QTP的一个隐藏对象(QTP的帮助文档中并没有记载),可用于模拟鼠标单击和移动,还有键盘输入等操作。
其他学习资料:
1、《在QTP中自定义测试对象WinList的Select方法》:http://blog.csdn.net/Testing_is_believing/archive/2010/01/07/5149604.aspx
2、《揭秘QTP的DeviceReplay对象》:
http://blog.csdn.net/Testing_is_believing/archive/2008/06/02/2504745.aspx
3、relevantcodes.com的《QTP: Working With Multiple Windows Applications》这篇文章介绍了如何测试多个相同Windows应用程序的方法:
http://relevantcodes.com/qtp-working-with-multiple-windows-applications/
4、relevantcodes.com在《Automating Windows Calculator Part 1》这篇文章中介绍了用QTP测试Windows计算器的例子,对于初学者理解QTP自动化测试过程、函数的使用等方面的内容都很有帮助:
http://relevantcodes.com/automating-windows-calculator-part-1/
5、《QTP测试WinToolbar控件》:
http://blog.csdn.net/Testing_is_believing/archive/2010/03/24/5412286.aspx
《QTP自动化测试进阶》读书笔记(11)
学习《QTP自动化测试进阶》第13章 – 使用QTP测试ActiveX对象
要测试ActiveX控件,首先,需要在启动QTP时加载ActiveX插件
AcxUtil对象可用于操作ActiveX控件,使用FireEvent方法来执行ActiveX控件中的方法
熟悉和掌握各类ActiveX控件的测试:
RadioButton
CheckBox
Calendar
Label
ProgressBar
SliderBar
ListBox
其他相关资源:
1、MSFlexGrid 是微软的 ActiveX 表格控件,功能强大,在编程中经常使用,但是QTP在识别和测试这个控件时会碰到很多问题,这篇文章介绍了相关解决办法:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/03/5125657.aspx
2、daniva在《Automating Google Earth》一文中介绍了如何在QTP中测试Google Earth这种包含ActiveX插件的WEB页面:
http://www.advancedqtp.com/knowledge-base/articles/environment-techniques-id15/web-id34/automating-google-earth/
3、《QTP测试CodeJock Xtreme Suite控件》:
http://blog.csdn.net/Testing_is_believing/archive/2010/03/13/5377163.aspx
《QTP自动化测试进阶》读书笔记(12)
学习《QTP自动化测试进阶》第14章 –使用QTP测试VB对象
要想QTP能识别和录制各种VB控件,首先,必须在QTP启动时加载Visual Basic插件。
测试这些VB控件应该注意利用其Object属性,通过Object属性来访问其内部属性和方法,从而达到控制VB控件的效果。
熟悉和掌握各类VB控件的测试:
VbButton
VbCheckBox
VbComboBox
VbEdit
VbEditor
VbFrame
VbLabel
VbList
VbRadioButton
VbScrollBar
VbWindow
其他学习资源:
1、《QTP测试CodeJock Xtreme Suite控件》:
http://blog.csdn.net/Testing_is_believing/archive/2010/03/13/5377163.aspx
2、QTP帮助文档VisualBasic.chm
《QTP自动化测试进阶》读书笔记(13)
学习《QTP自动化测试进阶》第15章 –使用QTP测试Web对象
加载Web插件
先启动QTP,再启动浏览器,否则Web元素识别不了
最新版本QTP11支持的浏览器:
IE:6、7、8
Firefox:3.0.x、3.5、
QTP支持直接访问DOM(Document Object Model),可以通过DOM来访问HTML标签。例如:
On Error Resume Next
Set Doc = Browser("Google").Page("Google").Object
' 循环获取Page中的所有对象
For Each Element In Doc.all
TagName = Element.TagName ' 获取标签名
InnerText = Element.innerText ' 获取inner text
' 把信息写入测试结果
Reporter.ReportEvent 0, TagName, InnerText
Next
在测试WEB站点应用程序时,通常会碰到验证码的问题(尤其是论坛类的站点),对于这类问题,通常的做法是利用OCR(Optical Character Recognization,光学字符识别)技术,通过识别图片中的文字来获取验证码,但是这种方法可靠性不高,受到验证码图片混淆程度的影响。另外一种做法是在开发阶段由程序员屏蔽验证码功能,或者提供所谓的“万能验证码”。
还有另外一种解决方法,参考:
15.4 WEB页面测试案例分析2 – Discuz!验证码问题
其他学习资源:
1、SAFFRON框架是针对Web开发的一个简单的QTP测试框架原型,是Adam Gensler于06年写的,需要QTP 9.1版本以上:
http://blog.csdn.net/Testing_is_believing/archive/2008/08/28/2845530.aspx
2、《使用QTP进行WEB页面性能测试》:
http://blog.csdn.net/Testing_is_believing/archive/2010/02/02/5280103.aspx
3、《QTP & DOM》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/08/5161739.aspx
4、《QTP访问DOM的方法》:
http://blog.csdn.net/Testing_is_believing/archive/2008/03/09/2159089.aspx
5、《利用QTP在WEB应用程序上进行简单的猴子测试》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/07/5153807.aspx
6、《扩展QTP的WebTable测试对象》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/07/5153656.aspx
7、《QTP的Register New Browser Control工具》:
http://blog.csdn.net/Testing_is_believing/archive/2008/07/01/2601073.aspx
8、《在QTP中列举当前打开的所有浏览器对象的函数》:
http://blog.csdn.net/Testing_is_believing/archive/2008/05/11/2434870.aspx
9、《在QTP中巧用WebTable对象的ChildItem方法进行测试》:
http://blog.csdn.net/Testing_is_believing/archive/2008/03/09/2160202.aspx
10、《TestCompelte与QTP在Web测试方面的比较》:
http://blog.csdn.net/Testing_is_believing/archive/2008/02/02/2079098.aspx
11、《Rad ComboBox for ASP.NET AJAX ( Telerik )》:
http://www.advancedqtp.com/knowledge-base/articles/environment-techniques-id15/web-id34/rad-combobox-for-aspnet-ajax-telerik/
12、《QTP测试Yahoo邮箱》:
http://blog.csdn.net/Testing_is_believing/archive/2010/03/16/5384474.aspx
13、relevantcodes.com的《Automating GMail with QTP》这篇文章详细介绍了如何用QTP进行Gmail邮箱的自动化测试:
http://relevantcodes.com/automating-gmail-with-qtp/
14、relevantcodes.com的《QTP: Working with Multiple Browser Applications》这篇文章介绍了如何测试多个浏览器窗口的情况:
http://relevantcodes.com/qtp-working-with-multiple-browser-applications-revised/
15、relevantcodes.com的《QTP: Synchronization for AJAX Applications》这篇文章介绍了如何封装一个AjaxUtil对象来统一处理等待AJAX数据加载的问题:
http://relevantcodes.com/qtp-synchronization-for-ajax-applications/
《QTP自动化测试进阶》读书笔记(14)
学习《QTP自动化测试进阶》第16章 – QTP的插件技术
Adobe为Flex程序的自动化测试提供的QTP插件:
http://labs.adobe.com/wiki/index.php/Flash_Builder_4:Release_Notes#Flex_4_Plug-in_for_HP_QuickTest_Professional
Jamo为手机应用程序自动化测试提供的QTP插件:
http://www.jamosolutions.com/documents/meuxqtp.html
启动QTP测试项目,并加载相关插件:
Dim qtApp
Dim blnNeedChangeAddins
Dim arrTestAddins
' 创建QTP应用程序实例对象
Set qtApp = CreateObject("QuickTest.Application")
' 创建一个数组用于存储QTP启动的测试项目所关联的插件
arrTestAddins = qtApp.GetAssociatedAddinsForTest("C:\Tests\AddInTest")
blnNeedChangeAddins = False
' 检查是否所有需要的插件都已经加载
For Each testAddin In arrTestAddins
' 如果插件未加载,则需要修改插件关联设置
If qtApp.Addins(testAddin).Status <> "Active" Then
blnNeedChangeAddins = True
Exit For
End If
Next
' 如果需要修改插件设置,则退出QTP
If qtApp.Launched And blnNeedChangeAddins Then
qtApp.Quit
End If
' 重新加载插件
If blnNeedChangeAddins Then
Dim blnActivateOK
' 加载相关联的插件并检查是否加载成功
blnActivateOK = qtApp.SetActiveAddins(arrTestAddins, errorDescription)
' 如果加载插件碰到问题,则显示包含问题信息的消息框
If Not blnActivateOK Then
MsgBox errorDescription
' 退出脚本运行
WScript.Quit
End If
End If
' 启动QTP(加载新的插件设置)
If Not qtApp.Launched Then
qtApp.Launch
End If
' 让QTP可见
qtApp.Visible = True
' 打开测试项目
qtApp.Open "C:\Tests\AddInTest"
' 释放QTP对象
Set qtApp = Nothing
对于某些测试环境,例如Web、.NET、Java、Delphi,QTP提供了扩展相关插件的Add-in Extensibility机制,让我们可以通过插件扩展来支持那些不被QTP直接支持的第三方控件、自定义的控件。
Extensibility Accelerator 提供给了一个类似Visual Studio的IDE,用于简化和加速Web插件扩展的设计、开发和部署工作。
其他参考资料:
1、《QTP测试Flash程序的方法》:
http://blog.csdn.net/Testing_is_believing/archive/2008/06/30/2599728.aspx
2、《QTP与手机测试》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/03/5125043.aspx
3、Adobe为QTP提供的Flex4插件下载地址:
http://download.macromedia.com/pub/labs/flex/4/flex4_automation_install_100509.zip
4、《Web Extensibility Lesson – Building a toolkit Support》介绍了一个Web 插件扩展开发的例子:
http://www.advancedqtp.com/knowledge-base/articles/code-techniques-id15/web-extensibility-lesson-building-a-toolkit-support-2/
5、QTP Extensibility Accelerator 的demo视频:
http://h30423.www3.hp.com/index.jsp?fr_story=2535f2613537a9e3491ca53047faf913c0666d2e&rf=rss
6、Extensibility Accelerator下载地址:
https://h30406.www3.hp.com/campaigns/2009/wwcampaign/1-7F8KV/index.php?jumpid=ex_r11374_us/en/large/tsg/ext_accelerator_default_sdr_ptr/3-3BYNQ26/20091124
7、W3School的JavaScript教程:
http://www.w3school.com.cn/js/index.asp
《QTP自动化测试进阶》读书笔记(15)
学习《QTP自动化测试进阶》第17章 –使用QTP的.NET插件测试.NET平台软件
QTP .NET插件用于识别和录制WPF(Windows Presentation Foundation)控件、Windows Forms控件或者Web Forms控件
额外多了一个.NET Windows Forms Spy查看控件属性
WinForm:
通过Object属性来获取对象的内部属性、访问并执行控件方法
WPF:
可通过三种方法访问WPF对象的内部属性和方法,分别是:AutomationElement、AutomationPattern和Object
其它资源
1、《Runtime Object Editor - 与QTP的.NET Spy类似的对象查看工具》:
http://blog.csdn.net/Testing_is_believing/archive/2008/06/16/2554924.aspx
2、Runtime Object Editor可从以下地址下载(需要注册CodeProject用户):
http://www.codeproject.com/KB/cs/RuntimeObjectEditor.aspx
3、《QTP测试.NET控件CheckedListBox》
http://blog.csdn.net/Testing_is_believing/archive/2010/03/13/5377341.aspx
4、《Expanding .Net DevExpress trees》:
http://www.advancedqtp.com/knowledge-base/qtips/dotnet-id23/expanding-a-net-devexpress-tress/
5、《Exploring Custom Controls》:
http://www.advancedqtp.com/knowledge-base/articles/environment-techniques-id15/net-id173/exploring-custom-controls/
http://www.advancedqtp.com/knowledge-base/articles/vbscript-techniques-id4/exploring-custom-controls-cont/
《QTP自动化测试进阶》读书笔记(16)
学习《QTP自动化测试进阶》第18章 –QTP的.NET插件扩展技术及其使用
在碰到一些不被直接支持的.NET控件时,可利用QTP的.NET插件的可扩展性来开发出支持第三方控件,或者是个性化控件的特性。
.NET插件扩展开发步骤:
1、安装Custom Server模板
2、建立.NET控件的测试扩展项目
3、实现控件录制逻辑
4、注册TrackBar控件的事件处理器
5、实现控件的运行逻辑
6、部署插件扩展包到QTP
7、运行和调试插件扩展包
参考:
1、《HP QuickTest Professional .NET Add-in Extensibility》:
<QTP安装目录>\help\Extensibility\NETExtensibility.pdf
2、《使用QTP的.NET插件扩展技术测试ComponentOne的ToolBar控件》:
http://blog.csdn.net/Testing_is_believing/archive/2010/03/13/5377441.aspx
QTestWare:
http://www.cnblogs.com/testware/archive/2010/05/14/1735545.html
《QTP自动化测试进阶》读书笔记(17)
学习《QTP自动化测试进阶》第19章 – QTP的自动化对象模型及其使用
QTP提供了完整的自动化对象模型,可用多种编程语言和开发工具来编写控制QTP运行和测试的代码
使用QTP自动化模型的场景:
初始化脚本:编写脚本自动化地启动QTP,并设置必要的录制、回放等环境变量选项。
维护测试:可以编写脚本循环遍历测试项目,更新一些测试对象的值,或者为已有的测试项目设置新的选项。
从其他程序中调用QTP:在其他测试程序中调用QTP、管理和安排测试脚本的运行。
其它学习资源
1、《在HTML页面中调度QTP》:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/01/5118756.aspx
2、《C#通过AOM调用QTP的内存泄漏问题》:
http://blog.csdn.net/Testing_is_believing/archive/2009/12/27/5086516.aspx
3、自动化测试框架中必不可少的一部分是测试脚本的调度执行,一般采用AOM方式调用QTP,需要包括设置测试参数、指定测试结果文件存储的目录、记录执行过程日志、发送邮件等功能,应该可以与持续集成框架结合。QTRunner就是这样一个用VBS写的QTP调度框架:
http://blog.csdn.net/Testing_is_believing/archive/2009/12/19/5037830.aspx
《QTP自动化测试进阶》读书笔记(18)
学习《QTP自动化测试进阶》第20章 – 使用QTP开发一个猴子测试工具
“猴子测试”,也叫随机测试,因为它的原理是利用测试工具随机产生键盘敲击和鼠标点击事件,就像一只大猩猩在狂敲键盘,因此,也叫猴子测试。
产生随机数:
Dim MyValue, Response
' 初始化随机数产生器
Randomize
Do Until Response = vbNo
' 随机选取0到10之间的整数
MyValue = Int((10 * Rnd+0) )
MsgBox MyValue
Response = MsgBox ("重新来一遍? ", vbYesNo)
Loop
通过WMI对象获取屏幕高度和宽度:
strComputer = "."
' 获取WMI对象
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
' 通过WMI查询桌面显示器的高度和宽度
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_DesktopMonitor",,48)
For Each objItem in colItems
Height = objItem.ScreenHeight
Width = objItem.ScreenWidth
Next
MsgBox Width & "," & Height
调用Win32API的鼠标函数:
' 通过Extern访问Windows API函数
Extern.Declare micVoid, "MouseEvent","user32.dll","mouse_event",
micInteger,micInteger ,micInteger ,micInteger ,micInteger
' 把鼠标移到该位置
Extern.MouseEvent 80+1,10, 100, 0, 0
' 鼠标左键单击
Extern.MouseEvent 2+4,0,0,0,0
Extern.Declare micInteger, "WindowFromPoint","user32.dll",
"WindowFromPoint",micInteger,micInteger
Msgbox Extern.WindowFromPoint (0,0)
截屏可用:
DeskTop.CaptureBitmap
参考资源:
1、《一个简单的猴子测试小工具》:
http://blog.csdn.net/Testing_is_believing/archive/2007/12/05/1919200.aspx
2、《使用猴子测试工具》:
http://blog.csdn.net/Testing_is_believing/archive/2007/11/18/1891312.aspx
3、这个网站有很多WMI的例子代码可以参考:
http://www.robvanderwoude.com/wmiexamples.php
《QTP自动化测试进阶》读书笔记(19)
学习《QTP自动化测试进阶》第21章 –使用QTP测试Web Services
QTP的Web Services插件可用于测试Web Services应用程序,可以使用QTP来调用Web Services的操作,并获取返回的XML数据,使用XML检查点对这些数据进行验证,从而测试Web Services的功能正确性。
参考资源:
1、《51测试天地》杂志第八期《开源的Web Service测试工具》:
http://www.51testing.com/html/55/n-73755.html
2、WebService介绍:
http://baike.baidu.com/view/837392.html?fromTaglist
3、QTP帮助文档《HP QuickTest Professional Web Services Add-in》:
<QTP安装目录>\help\WebServicesUsersGuide.chm
4、QTP附带的WebService视频:
<QTP安装目录>\help\WSPresentation.avi
5、《QTP: Not just for GUI anymore》:
http://connectedtesting.com/Presentations/QTP%20-%20Not%20just%20for%20GUI%20anymore.ppt
《QTP自动化测试进阶》读书笔记(20)
学习第22章 - 如何编写高质量的QTP测试脚本
高质量的QTP测试脚本可以让测试脚本的后期维护工作量较少,可以让代码的可读性增强,从而有利于测试员之间基于测试脚本的交流。
由于QTP的测试脚本采用的是VBScript脚本语言,因此,QTP的测试脚本应该采用和遵循VBScript的代码编写规范。代码编写规范可包括:
对象、变量和函数的命名规范
注释规范
代码行缩进规范
常用的代码风格规范:
(1)每个缩进为4个空格。
(2)为整体的注释缩进1个空格。
(3)在代码开始的声明语句缩进4个空格。
其它资源
1、《VBScript Programmer's Reference》第三版,作者:Adrian Kingsley-Hughes、Kathie Kingsley-Hughes、Daniel Read
2、VBScript教程:
http://www.advancedqtp.com/first-steps/tutorials/vbscript-techniques-id124/vbscript-tutorial/
3、w3schools.com的VBScript教程:
http://www.w3schools.com/Vbscript/