软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试工具>>Mercury>>正文
QTP脚本还可以这样写
文章出处:51testing博客 作者:阳阳 发布时间:2006-12-22

    一提到自动化测试工具,给人印象最深的就是录制和回放了。录制测试人员的操作过程,再回放出来并多次运行,达到使用机器代替人来执行测试的效果。

    QTP采用的关键字驱动与专家视图的设计思想,不但可以自动生成代码,使初学者快速入门,更为高级测试人员提供了便利的编程界面,使其可以高效的完成自动化测试脚本,不用完全依赖于录制和回放过程。

    下面就我个人的使用经验,简单谈谈如何不依赖于录制和回放来完成QTP脚本的。

    操作步骤很简点,主要分为三步:
    第一步,维护对象库,添加必需的对象以及配置对象的属性。
    第二步,在专家视图中,编写测试代码。
    第三步,运行并调试代码。

    举个简单的例子。

    以在51testing的网站上搜索关键字QTP为例。

    首先,打开QTP,点击工具栏上的Object Repository按钮,打开对象库维护界面。如图一(图片暂时上传不了)


    点击Add Objects按钮,添加站内搜索的文本框以及后面的查询按钮对象,如图二

    然后,在专家视图中,手动输入如下代码:
    Browser("软件测试
专业网站:51Testing软件测试网").Page("软件测试专业网站:51Testing软件测试网").WebEdit("keyword").Set "QTP"
    Browser("软件测试专业网站:51Testing软件测试网").Page("软件测试专业网站:51Testing软件测试网").Image("GO").Click

    由于录制的过程中,待测试的页面是已经打开的,所以为了保证这个测试的前提条件,在前面添加打开IE的语句。
    SystemUtil.Run "iexplore.exe","
"

    这样,使用QTP的自动化测试脚本就完成了,运行看看是否通过?结果是一次性通过,而且没有其他需要修改的地方了。

    还可以在此基础上增加关闭所有IE的函数,增加验证点等等使脚本更加健壮和完整,这里就不赘述了。

 

    如果使用录制和回放的方法来开发脚本,可能存在以下几个问题:

    一个是自动生成的代码有一些是没有用的,有时候反而会影响代码的质量;

    一个是通过录制生成的代码,健壮性都不好,如果要使脚本在无人值守的情况下顺畅地运行,还是需要手动修改的。比如在对象找不到的地方增加判断对象是否存在,再继续下一步操作等等;

    再有,就是录制的过程中,会使你的对象库中多出来一些脚本正常运行以外的多余的对象,给维护对象库也增加了工作量。

    比较这两种方法,总体感觉直接添加对象并编写代码的方式,可以弥补录制回放过程的不足,节省了脚本的开发时间,减少了对象库的维护工作量,大大提高了自动化测试脚本的开发效率。

    当然,能够这样做是有前提的。
    第一,必须对待测试的系统非常熟悉。即开始写自动化脚本之前就能从大脑中反映出每一个步骤中需要的对象及操作。
    第二,对QTP的工作原理以及工具本身非常熟悉。能够有办法解决脚本运行时出现的任何问题。
    第三,有良好的编程基础尤其是针对VBscrīpt语言的。如果对于代码的结构、可维护性都把握很好的话,那么效果就会更加明显了。

    补充一点,使用这种方法,你的对象库的设计一定要到位,保证在写代码的时候,很容易的找到你要操作的对象,否则就得不偿失了。

原始连接:http://blog.51testing.com/?8181/action_viewspace_itemid_1692.html


站内搜索
相关文章
◎对动态的weblist取得其name值
◎QTP中测试环境的初始化
◎QTP Recovery Scenario 简介
◎解决LR无法动态从数据库取值的方法
◎详解loadrunner的think time
◎QTP的登陆脚本设计
◎再论TD的数据迁移
◎关于IP欺骗的问题
◎LoadRunner与Winsock协议[翻译]
◎QTP的录制回放过程
◎LoadRunner函数介绍续
◎LoadRunner函数介绍
◎如何通过LoadRunner监控Linux和Unix操作系统的资源状况
◎专注于业务需求的自动化测试——Mercury Business Process Testing
◎如何查看LoadRunner虚拟用户(vuser)类型
◎使用LoadRunner测试TUXEDO
◎对LR回放中highest severity level was"ERROR"的解决方法
◎使用Winrunner进行性能测试
◎如何区分Server Time 和 Network Time
◎利用LR测试程序基类的性能
◎如何用LR监视服务器LINUX的方法
◎如何在QC中调用QTP进行测试
◎WinRunner使用经验介绍
◎使用LoadRunner来测试BEA TUXEDO(LoadRunner7.6)
◎MI测试工具介绍
◎VB 调用 QuickTestpro 脚本
◎QTP的登陆脚本设计
◎QTP的登陆脚本设计
◎loadruner报错:Step download timeout(120 seconds)的解决方法
◎QuickTestPro SP考试心得
◎LoadRunner本机录制http协议程序遇到的问题以及解决方法
◎关于"The RPC server is unavailable"的探讨及解决方案
◎QuickTestPro处理带有IFRAME的问题
◎QuickTestPro处理带有IFRAME的问题(续)
◎如何用QTP解析PDF
◎利用loadrunner测试ORACLE存储过程的性能
◎MERCURY最终用户管理:以最终用户为出发点,将业务和IT紧密结合
◎仅有基础架构管理是不够的:新的IT运作方式势在必行
◎美科利质量中心服务最佳实践白皮书
◎无代理监控:监控关键系统的全新典范
◎应用实施:卓越中心的发展
◎实施全面的J2EE监控和诊断解决方案
◎美科利客户的见解
◎改进质量和测试管理
◎错误警报不复存在:成功实施应用管理战略
◎代理和无代理系统管理的比较:运营总成本
◎高级测试管理的工具和技术
◎ERP功能测试最佳实践:10个步骤确保ERP系统的可靠性
◎美科利和SAP:优化业务成果
◎四款主流测试工具的测试流程
热门文章
◎主流测试工具介绍(1)
◎Winrunner经验总结
◎主流测试工具介绍(2)
◎主流测试工具介绍(3)
◎Winrunner TSL命令简介(一)
◎WinRunner的问题整理
◎LoadRunner监视的性能计数器
◎四款主流测试工具的测试流程
◎Loadrunner中参数的设置
◎LoadRunner的一个解决方案
◎让LoadRunner走下神坛
◎WinRunner 脚本标准格式
◎LoadRunner简化国泰航空测试流程
◎WinRunner如何实现自动化测试
◎利用loadrunner测试ORACLE存储过程的性能
◎jboss tomcat weblogic websphere 性能对比测试
◎Winrunner TSL命令简介(四)
◎Winrunner TSL命令简介(二)
◎使用LoadRunner测试TUXEDO
◎TestDirector项目数据迁移完整过程
◎LoadRunner函数介绍
◎关于"RPC server is unavailable"的解决方案
◎Winrunner TSL命令简介(三)
◎使用Winrunner进行性能测试
◎TD7.6 字段中英文对照表
◎Winrunner Context Sensitive命令列表
◎LoadRunner本机录制http协议程序遇到的问题以及解决方法
◎WinRunner使用经验介绍
◎TD中Case的复用
◎对脚本的建议
◎MI测试工具介绍
◎QTP的登陆脚本设计
◎如何用QTP解析PDF
◎winsock协议错误编码解析
◎TD 7.x 升级到 TD 8.0 的一些经验(SQLSERVER 下)
◎QuickTestPro SP考试心得
◎loadruner报错:Step download timeout(120 seconds)的解决方法
◎使用LoadRunner来测试BEATUXEDO (LoadRunner 7.6)
◎QuickTestPro中的快捷键
◎ERP功能测试最佳实践:10个步骤确保ERP系统的可靠性
◎高级测试管理的工具和技术
◎winsock的buffer简单解析
◎何谓 Keyword-Driven Testing?
◎LoadRunner学习——LoadRunner的安装
◎QTP的学习历程
◎使用LoadRunner来测试BEA TUXEDO(LoadRunner7.6)
◎LoadRunner函数介绍续
◎QTP的登陆脚本设计
◎关于"The RPC server is unavailable"的探讨及解决方案
◎改进质量和测试管理

Google提供的广告