收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
软件测试 > QTP > 正文

首页 | 领域细分: 游戏测试 安全测试 手机测试 Web测试 | 技术研究: 单元测试 入门教程 用例设计 性能测试 功能测试 | 测试职场: 面试精选 职场发展 面试试题

测试管理: 配置及流程 - 需求管理 - 质量验收 - 缺陷管理 - 其它管理相关 | 开发语言: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码

测试工具: LoadRunner JiRa QuickTestPro RoBot WinRunner TestDirector 其它测试工具 | 数据库: Mysql数据库 Oracle数据库 CSS/DIV基础 HTML基础

初学QTP的一点总结

来源:互联网 日期:2013-08-11 20:00

  QTP自动化测试工具有三种编程方式:

  非描述性编程、纯描述性编程和description描述性编程。

  非描述性编程:模拟用户操作,保存操作对象到对象库,测试脚本运行时从对象库查找对象,找到后,对对象执行某种动作的过程。

  纯描述性编程:描述唯一识别对象的属性值,保存脚本时,对象被保存到临时文件,测试脚本运行时从临时文件中查找对象,找到后,对对象执行某种动作的过程。该方法增强了测试对象的灵活性和重用性。

  Description描述性编程:当对象库中找不到指定对象时,或相同属性的对象存在二个或二个以上,无法精确定位到目标对象时,可采用description描述性编辑,描述对象独有的属性值(比如使用:index0,index1,index2…..方法定位到目标对象,index0表示找到第一个符合条件的对象)。

  Qtp脚本开发工具和其他开发工具的共同点和异同点:

  共同点:按照面向对象的开发思想和方法,可以对常用对象及操作(如login, exit, DBConnection Methods)封装成Function或sub,调用Function方法的函数名实现目标方法。

  异同点:QTP有以下特有的函数方法:

  Datatable方法:实现对象的参数化功能。

  1. 使用GetRowCount Method得到参数的行数。

  2. For循环语句控制运行次数。

  3. 循环结束时,使用GetRowCount Method当前行数+1,第二次循环获取第二行参数值。

  4. 对象可以用一个变量a替换,将Datatable的参数赋值给变量a,需要参数化的对象位置输入a即可。

  使用例子如下:

  pic=datatable.Value(”宝贝图片“,”Global”)

  browser(”CRM登录页面“).Dialog(”选择文件“).WinListView(”SysListView32″).Select pic

  注意:变量不能带引用

  Webtable方法:

  1.GetRowWithCellText:返回text内容在第几行

  2.GetCellData:根据行和列返回参数值

  使用例子如下:

  a=datatable.Value(”B”,”Global”)

  rownumber=browser(”淘我喜欢“).Page(”淘我喜“).WebTable(a).GetRowWithCellText(names,2)

  status=browser(”淘我喜欢“).Page(”淘我喜欢“).WebTable(a).GetCellData(rownumber,4)

  3.先找对象之间的关联关系,根据一个属性的属性值,找到目标对象或目标属性值,进行目标动作。

  GetROProperty方法:得到脚本运行时的对象属性值,访方法经常和条件判断语句结合使用使用场景的例子如下:

  1. 如需校验界面信息是否为期望值时,先得到对象的属性值,然后与另一个参数值进行比较,相同返回pass,不相同返回fail。

  2. 某些对象属性是动态变化的,当对象a的状态为true时,对象B的状态是true,反之为flase;运行flase状态的对象脚本将会抛错,因此需要基于当时的情况,决定下一步执行怎样的操作。

  StrComp function方法:比较二进制或text格式字符串的长度。校验界面值时很有用哦,有时经常遇到显示看起来一致,但实际存在数据类型和前、后空格的差异,使用该方法会返回比较结果值。该函数语法请查看QTP帮助文档。

  还有很多很多的方法需要了解,因为时间关系大概知道这些。

  只需了解方法的用处,相似方法之间的区别,函数语法记不往没大关系,脚本开发过程中查帮助文档很管用的。

  掌握排错方法也很重要,只要是人写的代码,都有出错的可能,很难达到机器的精确度,出了问题学会排查问题:

  1. 学会使用检错和单步调试定位问题。

  2. 调试时,指定当前行开始运行,运行到当前行结束。

  3. 根据需要设断点,切换到脚本编辑器下方的debug viewer-variables窗口,查看测试运行时输出的参数值。

  Object repository manager工具:

  1. 对象文件的合并,为了实现对象的统一管理,所有测试脚本均使用一个对象文件,有利于提高脚本的编写和维护效率。如果有多个对象文件,容易造成对象文件混乱,分不清用到的对象到那个对象文件查找。

  2. Vbs对象和脚本对象的区别,vbs函数本身不带对象,函数调试时,将函数文件拷贝到测试脚本中,使用的是测试脚本的对象,而非函数的对象。因此FUNCTION函数页面,找不到测试脚本中定义的对象。

  3. 对象库有啥用处?用于保存对象信息。

  4. 每个对象都有唯一识别对象的属性,Object Spy工具用于观察运行时测试对象的属性和方法。

  5. 非描述性编程方式,模拟用户操作,保存操作对象到对象库,保存后的对象可以手工挪动位置,但是目标上层对象的属性和原上层对象的属性不一致时,不能合并,如果合并将出现 browser().page()下面的对象识别不到,脚本运行时,将提示测试对象未定义信息。

  Function library和Function defineition generator的区别:

  1.Function library:把函数保存到QTP能够解析的Vbs文件中,测试脚本开发时,调用函数名即实现函数方法。

  2.Function defineition generator:通过该工具生成函数脚本模板,插入到测试脚本中使用,和调用函数的效果是一样的。生成器生成的函数模板如下:

  ‘@Description登录我的淘宝

  Public Function login

  ‘TODO: add function body here

  —增加对象及操作脚本

  End Function

本周排行

别人正在浏览

强悍的草根IT技术社区,这里应该有您想要的!
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号