自动化iRobot工具操作手册

测试用例模板中的对象类型 QTP中的对象类型 作为对象名称的属性
Web 按钮 WebButton(Class Name) name
输入框 WebEdit(Class Name) name
图片 Image(Class Name) File name
链接 Link(Class Name) name
下拉框 Weblist(Class Name) name
单选按钮 WebRadioGroup(Class Name) name
复选框 WebCheckBox(Class Name) name
浏览上传输入框 WebFile(Class Name) name
表格 WebTable(Class Name) innertext
网页元素 WebElement(Class Name) innertext
WinButton WinButton(Class Name) text
WinEdit WinEdit(Class Name) attached text
Static Static(Class Name) text
SliverLight Slv按钮 button(slvtypename) devname
Slv输入框 edit(slvtypename) devname
Slv下拉框 combo box(slvtypename) devname
Slv单选按钮 radio button(slvtypename) devname
Slv文本块 TextBlock(slvtypename) parent text
Java Java按钮 JavaButton(to_class) attached text
Java输入框 JavaEdit(to_class) attached text
Oracle Oracle下拉框 OracleList(Class Name) description
Oracle输入框 OracleTextField(Class Name) description
Oracle复选框 OracleCheckbox(Class Name) description
Oracle按钮 OracleButton(Class Name) lable
Oracle单选按钮 OracleRadioGroup(Class Name) selected item
Oracle清单栏 OracleListOfValues(Class Name) title
OracleForm窗口 OracleFormWindow(Class Name) short title
OracleFlex窗口 OracleFlexWindow(Class Name) title
Oracle状态栏 OracleStatusLine(Class Name) error code
Oracle通知栏 OracleNotification(Class Name) title

1、 目的和范围
1.1目的
本文的目的是指导测试人员使用功能测试自动化工具iRobot进行自动化测试。
1.2范围
分类 适用iRobot 不适用iRobot
产品类型 Web类产品:
平台公共服务类产品,如:Jalor、SSO
IT应用类产品,如:CPP、CES
部分软件包产品:Oracle、SilverLight 非Web类产品:
C/S类的产品,如:ESPACE
无界面服务类产品
其他软件包产品
测试类型 功能测试(主要是回归测试) 单元测试、非功能测试
生命周期 产品生命周期长且还有多个版本规划(有大量回归测试需求) 产品生命周期较短的、一次性产品(无回归测试需求)
稳定性 功能相对稳定且界面改动比较少 功能经常改变、页面频繁变更
质量 质量要求较高的产品,如:业务重要、全球使用 质量要求不高的产品
其他 1、 逻辑判断较少的场景 1、 逻辑判断较多的场景,如:根据页面多个字段逻辑判断后执行操作

2、 工具简介
2.1工具简介
功能测试自动化工具iRobot旨在降低自动化测试的门槛, 实现测试用例与测试数据分离,通过用例自动转化技术,将合格的测试用例自动转化为测试脚本,在测试时按照测试数据模板输入测试数据,通过集中调度测试脚本和测试数据完成自动化测试。
2.2安装
1.下载最新版本到本地安装;
2.需要安装QTP/UFT;
3.需要安装IE,推荐的版本为IE8和IE9。其他浏览器暂不支持;
4.需要安装Office Excel,推荐的版本为2003和2007.
3、 编写测试用例
3.1测试用例编号
测试用例编号为必填字段,每个测试用例必有一个测试用例编号并且测试用例编号必须符合Window创建文件夹命名规范,不能含有特殊字符,如:“/”、“\”、“|”、“!”、“$”等,否则该用例步骤将不会被正常解析。如下图:

3.2是否自动执行
是否自动执行字段只能选择“Y”或“N”,“Y”表示该用例会被执行,“N”表示该用例不须要执行。只须要在每个用例的第一个步骤前填写该字段即可,如上图所示。
3.3父级对象
父级对象是为了指定须要被操作的对象所在的页面范围。父级对象的类型有很多,这里我们只须要用到产品中最常见的几种。
3.3.1Web类父级对象
1)B.P
Browser(……).Page(……),最常见的父级对象类型,一半Page后面就是具体页面某个元素了。例如:

上图中红色框类的“系统管理”链接,可以用QTP的Object Spy工具查看到它所在的父级对象,如下图:

可以看到“系统管理”所在的父级对象是Browse(„„).Page(„„)类型的,这种情况,我们就可以选择该父级对象为B.P类型,然后再来判断页面层级,若该页面是第一层页面,则选择B1.P,若为第二层页面,则选择B2.P,以此类推。
2)B.P.F
Browser(……).Page(……).Frame(……),这种类型通常出现在页面弹出的选择框中,如下图:

图中红色框类的弹出框是点击一个按钮弹出的,它就是一个Frame,用QTP的Object Spy工具查看此弹出框里的元素如下图:

可以看到此父级对象的类型为Browser(„„).Page(„„).Frame(„„),这种情况就选择B.P.F的父级对象类型,若弹出框是第一层页面弹出的,则选择B1.P.F,若是第二层弹出的,则选择为B2.P.F,依次类推。
3)B.W.P
Browser(……).Window(……).Page(……),这种类型普通出现在网页对话框,例如下图:
可以看到父级对象的类型为Browser(„„).Window(„„).Page(„„),这种情况选择父级对象类型为B.W.P,若为第一层页面则选择为B1.W.P,若为第二层页面,则选择为B2.W.P,依次类推。
4)B.D
Browser(……).Dialog(……),这种类型通常出现在如下图所示的场景:

以看到父级对象为Browser(„„).Dialog(„„),这种情况选择父级对象类型为B.D,若是第一层页面的弹出的对话框则选择为B1.D,若
是第二层,则选择为B2.D,依次类推。在涉及对话框Dialog的操作时,切记将Espace的聊天对话框关闭,不然会影响到对Dialog的操作。
3.3.2 SilverLight父级对象
加载了QTP的SliverLight插件之后便可识别出SilverLight类型的对象了。
3.3.3 Java类父级对象
加载了QTP的Java插件后便可识别到java类型的对象。
1)B.P.JA
2)JD
3.3.4 Oracle父级对象
加载了QTP的Oracle插件之后便可识别出Oracle类型的对象了。
1) OXW
2) OMW
3) ON
4) OMW.OT
5) OA
3.3.5填写规则
一般在用例的第一步都会指定父级对象,但不是每个步骤都须要指定父级对象,指定了父级对象的步骤及其以下的步骤都是共用相同的父级对象的,除非父级对象发生改变。
3.4对象类型与对象名称
查看对象的类型可以用QTP的ObjectSpy来查看,而对象名称是由对象的某个属性确定的,不同对象类型的对象使用不同的属性作为对象名称,其对应关系如下:

3.4.1按钮
支持的操作
1) 单击
2) 检查是否存在
3) 检查属性
3.4.2输入框
支持的操作
1) 单击
2) 输入
3) 检查是否存在
4) 检查属性
3.4.3图片
支持的操作
1) 单击
2) 检查是否存在
3) 检查属性
3.4.4链接
支持的操作
1) 单击
2) 检查是否存在
3) 检查属性
3.4.5下拉框
支持的操作
1) 单击
2) 选择
3) 检查是否存在
4) 检查属性
3.4.6单选按钮
支持的操作
1) 选择
2) 检查是否存在
3) 检查属性
3.4.7复选框
支持的操作
1) 单击
2) 输入
3) 检查是否存在
4) 检查属性
3.4.8浏览上传输入框
支持的操作
1) 单击
2) 输入
3) 检查是否存在
4) 检查属性
3.4.9表格
innertext 属性作为其对象名称,但是发现,其innertext属性很长,而且有一部分并不是固定的,所以我们可以只用在“对象名称”字段写上部分文字,并用“.*”进行匹配没有写完的文字,如:“选择.*”
支持的操作
1) 单击
2) 检查是否存在
3) 检查属性
3.4.10网页元素
QTP无法识别的Web对象都是网页元素
支持的操作
1) 单击
2) 检查属性
3.4.11 WinButton
支持的操作
1) 单击
2) 检查是否存在
3) 检查属性
3.4.12 WinEdit
支持的操作
1) 输入
2) 检查是否存在
3) 检查属性
3.4.13 Static
支持的操作
1) 单击
2) 检查是否存在
3) 检查属性
3.5识别属性
某些情况下,对象的默认识别属性,为空,或者与其他对象重复,这种时候就须要使用其它属性来作为他的名称,这种场景下,我们可以在“识别属性”字段填写上用户自己选取的属性,然后再在“对象名称”中填入对应的属性值
3.6序号
当同一个页面中有相同名字的对象时,可以用“序号”标识为第几个对象,按从左至右、从上至下的原则。当要选择最后一个对象时,可以用“序号”来标识也可以用“Last”来标识操作类型
3.7对象库的管理与应用
以上方法是通过对象的某个单一属性来描述对象。iRobot V2R01版本以后,同可以结合QTP本身的对象库来描述识别对象,本章节将介绍如何结合QTP的对象库来使用iRobot
3.7.1QTP对象库的引用

QTP自动化测试的原理是封装真实的被测对象并转化为QTP对象到对象库,回放时把被测对象的鉴别属性去和对象库里面的对象的鉴别属性进行匹配,如果结果一致则进行下一步操作,不一致则报错,提示无法识别对象。
1)录制生成
使用QTP的录制功能录制需要操作的那些界面的基本操作,录制完成后,打开对象库,对象库的打开有两种方式
一:快捷键Ctrl+R
二:QTP上方菜单栏→Resources→ ObjectRepository
2)手动添加(添加单个)
用QTP的对象抓取工具,Object Spy抓取想要添加的某个对象,然后单击加号。
3)批量添加
打开QTP对象库,QTP上方菜单栏→Resources→ ObjectRepository,单击绿色的加号。然后把抓取对象的箭头放在需要获取对象的页面上的任意位置,然后单击一下,选择最顶层,然后点击OK。然后出现几个可供选择的添加方式。
1、仅仅添加指定的对象。
2、添加默认的对象。
3、添加页面所有的对象。
4、选择需要添加的对象。
批量添加对象一般选择第二个,其余的选择用户可以自己一个个的添加,然后查看对象库增加前后有什么区别,大家就能够很好的明白這几个之间的区别。
3.7.2对象库的导出
对象库经常需要进行迁移,所以对象库的导出和导入是管理对象库中一个必不可少的环节。
一:对象库的导出
点击对象库上方菜单栏File,然后出现两个导出选项,第一个是导出到本地,第二个是导出到本地并且替换以前的对象库文件。导出的对象库文件保存后会自动以.tsr作为后缀名。
当我们导出对象库以后会发些对象库这些原来可以编辑的东西都变灰了,都变成了不可编辑的状态了。這个时候别急,這个时候我们就需要在Object Repository Manager中进行操作。
3.7.3对象库的维护
对象库导出后变成不可编辑状态,对象库的导入,往对象库里面添加对象这些问题将在Object Repository Manager中一一得到解决。
1、 对象的修改
有些时候一个对象库可能包含许多同名的对象,为了更好的区分這些对象我们需要对对象的逻辑名进行修改。
一:QTP上方菜单栏→Resources→Object Repository Manager
二:导入对象库文件
QTP上方菜单栏→File→Open,然后选择一个对象库文件
三:然后展现在我们面前还是一个不可编辑置灰状态,這个时候我们点击一下QTP菜单栏上的小铅笔,這个时候就会发现可以对name进行修改了,如下图所示:
四:然后就选择需要修改的对象,单击一下,就可以在右边的编辑栏对它的逻辑名进行修改了,也可以删除对象多余无用的识别属性,然后点击保存。
第一个红色框框为修改后的保存按钮,第二个为对象的逻辑名,第三个为删除按钮,删除无用或者多余的对象属性值,第四个是对象的属性值。
2、 增加对象
在测试过程中,可能录制的脚本有个对象没有录制进去,导致有步操作执行不下去,這个时候需要往对象库里面添加這个对象。
一、点击QTP菜单栏上的绿色的十字架,如下图所示:
二、然后就会出现一个一个小手,這个就是QTP的Object SPY的小手,然后把這个小手移动到需要抓取的对象上面,点击一下,然后点击OK:
然后我们就可以在对象库里面找到這个新添加的对象
三、另外一种添加对象到对象库里面的方法,进入Object Repository Manager后,点击Object SPY這个小侦探。
然后把小手放到需要添加的对象上面,然后就侦探到這个对象的属性,然后点击小加号:然后就可以在对象库中看见新增的這个对象了
3、 删除对象
进入对象库,选择需要删除的对象点击删除按钮删除。
4、合并对象库

实际工作中编写用例,可能一个脚本需要多个人在编写,编写完成后需要整合,這个时候对象库也需要进行合并,首先进入QTP对象库合并的界面,方法如
下:QTP上方菜单栏→Resources→Object Repository Manager→Tools→Object Repository
Merge Tool,点击之后会弹出一个对话框New Merge,选择需要合并的对象库文件Primary file和Secondary
File然后点击OK(如果需要多个对象库合并,则两两合并完后再把合并后的对象库文件和别的对象库文件用同样的方法进行合并)。接下来会弹出一个
Statistics的对话框,在对话框的右边是需要合并的两个对象库的信息,左边是合并后的对象库信息。然后点击Close按钮,然后点击保存另存为,
输入新对象库的名称,合并后的对象库生成。
3.7.4在iRobot中引用QTP的对象库
1、对象库文件的存放
对象库文件必须保存在iRobot安装目录的OR及其子文件夹下,建议以OR为根目录,新建一个文件夹(以产品名来命名),作为对象库文件的存放路径,文件的命名最好按照产品组名称和项目的模块名来命名。
2、选择对象库文件
建立测试用例模板与对象库之间的对应关系,一个EXCEL只能选择一个对象库,一个对象库可以被多个对象库调用。
首先需要选择一个对象库文件,启动宏Excel宏功能以后单击模板左上方的选择对象文件,然后选择OR路径下的对象库文件。(点击选项来启动宏)
然后单击Excel模板上的选择对象這一列,就会弹出一个选择框,就可以选择封装好的某个对象了(第一次点击选择对象的时候会卡住一小会是正常现象因为這个时候正在读取对象库文件)
3、选择对象

3.7.5正则表达式
当获取的对象属性是动态变化的时候,這个时候就需要用到正则表达式也就是模糊匹配,如下图的html id的属性的_0是动态变化的。这种情况就需要用到正则表达式。
点击<#>图标,然后会弹出一个正则表达式的弹出框,把Regular expression勾选上,把红色框框里面的_0去掉用.*替代,然后点击OK,如下图所示:
3.8操作类型
操作类型字段为测试用例的必填字段,每个步骤必须填写操作类型
3.8.1. 打开网址
关闭当前桌面上所有浏览器,并打开新的浏览器,进入指定网址
3.8.2. 新开网址
新打开一个浏览器,并进入指定网址
3.8.3. 关闭指定浏览器
关闭指定的浏览器,根据指定的父级对象来关闭浏览器,所以父级对象字段必填
3.8.4. 关闭所有浏览器
关闭当前桌面上存在的所有浏览器,其他字段可以不用填
3.8.5. 最大化浏览器
最大化当前桌面上所有浏览器,其他字段不用填
3.8.6. 最小化浏览器
最小化当前桌面上所有浏览器,其他字段不用填
3.8.7. 刷新浏览器
刷新指定的某个浏览器。
3.8.8. 回退浏览器
回退指定的某个浏览器
3.8.9. 页面跳转
在某个浏览器上进行页面的跳转,跳转到指定的网址
3.8.10. 清除IE缓存
3.8.11. 中英文转换
对浏览器的中英文环境进行转换操作
3.8.12. 执行SQL语句
对数据库中的表进行增,删,改操作
上图“对象名称”字段填写的信息依次为数据库的类型(目前只支持Oracle,DB2),数据库账号,数据库密码,和数据库连接串(TNS),“操作值”字段为需要操作的SQL语句。注:(TNS和SQL语句不能包含换行符)
3.8.13. 去掉首尾空格
去掉一个字符串首尾空格
3.8.14. 比较
比较两个数值是否相等
3.8.15. 加
需要计算几个数值相加的时候,可以用数值相加这个操作,具体见下图:

以上是先获取表格里面的数值设置成变量,然后再进行数值相加,相加后得到的和会保存在SaveValue里面,最后和预期的数值进行比较。
3.8.16. 除(百分比)
需要获取两个数相除后的值,可以使用除百分比这个操作,具体见下图:

3.8.17. 截取字符串(左)
取得左边几位的字符串,并保存在SaveValue临时变量里面
3.8.18. 截取字符串(右)
取得右边几位的字符串,并保存在SaveValue临时变量里面
3.8.19. 截取字符串(中)
3.8.20. 键盘操作
键盘操作是完全模拟对键盘的按键操作的(锁屏的情况下不能进行键盘操做)
上图是对网页进行Alt+F4的操作,下图是常见的部分键盘操作的按键和代码的对应关系,键盘操作都是用{}括起来的。

3.8.21. 单击
1) 普通对象
2) 存在于动态表格中的对象
若对象存在于动态表格中,且无法使用某个属性唯一标识,则使用此操作,进行点击,若要对上图中红色框内的图片进行点击操作,按照如下步骤操作:
用Object Spy查看该表格的“innertext”属性:
然后在测试用例模板中填写如下:
上图意为,点击“DicTable”表格中,“CVE-test-0001”关键字所在行,第6列,单元格中第1个图片。

中“对象名称”字段由4个参数组成:1)DicTable(表格的名称html
id属性);2)CVE-test-0001(行关键字);3)6(图片所在的列数);4)1(图片所在单元格中的序号),4个参数用英文的逗号“,”隔
开。第2个参数,也可以填写行数,但是须要加上“#”关键字,例如:DicTable,#2,6,1
3.8.22. 单击(模拟鼠标操作)
当“单击”操作无法进行点击,可以使用“单击(模拟鼠标)”这种操作(尽量少使用这种方法,因为当电脑锁屏时候鼠标的光标是没有的,会导致这一步骤失败,如果大量使用这种方法鼠标光标会经常移动导致自己无法操作)如下图:
3.8.23. 单击(DD)
单击Windows弹出框的保存时候,有时候会发现使用单击有时候会点击不到,
所以在处理这种单击Windows弹出框的时候,可以使用单击(DD),Windows弹出框和单击(DD)的具体用法见下图:
3.8.24. 右击
右击某个对象
3.8.25. 输入
1) 普通对象
向对象输入值
上图意为,勾选“status”复选框,注意,若是“复选框”的输入操作,那么“操作值”只能输入“On”或者“Off”,“On”代表勾选,“Off”代表取消勾选。
2) 存在于动态表格中的对象
若对象存在于动态表格中,且无法使用某个属性唯一标识,则使用此操作向对象中输入值,如
若要向图中红框内的输入框输入数据“test1”,则按照以下步骤操作:
用Object Spy 查看此表格的“innertext”属性,如下图:
然后在测试用例模板中可以如下输入:

思为,向“IntDemandSourceList
Maintenance”表格中,“MDSMXGLIST”所在行,第3列单元格中的第一个输入框中输入值“test1”。“对象名称”字段一共由4个参
数组成:Tablename,RowKey,ColNo,Index,他们之间用英文的逗号“,”隔开。第一个参数代表对象所在表格的名称(html
id属性),第二个参数代表 行的关键字,第三个参数代表
所在列数,第四个参数代表,对象存在于单元格中的序列。其中第二个参数也可以用行数来表示,但是须要加上“#”关键字,例如:
table_IntDemandSourceList,#2,3,1
意为,向“table_IntDemandSourceList”表格中,第2行,第3列单元格中的第一个输入框中输入值“test1”
3) DOJO对象的输入
DojoFilterComboBox的默认识别属性为html id。
3.8.26. 选取日期1
“选取日期1”是用于使用日历控件选取日期的操作,目前只支持如下类型的日历控件

时间: 2024-11-10 07:37:56

自动化iRobot工具操作手册的相关文章

LSMW批处理工具操作手册

      目录     1. 创建PROJECT 1 2.第一步:初始界面后点击执行出现如下对话框 3 3.第二步:维护源结构 8 4.第三步:Maintain Source Fields 9 4.第四步:Maintain Structure Relations 11 5.第五步:维护字段关联 12 6.第六步:Maintain Fixed Values, Translations, User-Defined Routines 13 7.第七步:Specify Files 13 8.第八步:A

Jenkins+maven+svn+tomcat操作手册(一)

1.1 概述 在企业开发中最常用的build工具是maven,因此绝大多数项目都是采用maven来进行开发的.在项目开发过程中,经常需要做的事情就是项目的编译.打包和发布等这些重复性的事情.如何做到自动化的处理这些繁琐与无聊的工作,就是本文需要解决的问题. 解决的方案就是使用jenkins这个工具来帮助我们. 1.2 准备条件 前提是电脑上已经具备java开发的环境:jdk+eclipse(或MyEclipse/netbeans等)+tomcat+svn. 我本机的环境: System:win7

Cacti 操作手册

  Cacti是一款基于MySQL,SNMP,PHP等开发的工具.可以获得SNMP的信息通过图像的方式进行显示,通过B/S架构提供网管服务. Cacti将各端口信息.流量信息图形化的表示了出来,并能够查看设备的工作时间,状态及各个端口在某个时段的流量信息,cacti同时能够通过安装各种插件,达到自己所需要的某个功能. Cacti的注册 通过登录网页进入cacti页面,点击左边竖栏的Devices按钮,之后点击ADD进行添加设备的操作: 添加设备 Devices 1. Description给与设

web 环境搭建00前端自动化构建工具(gulp)

web 环境搭建----前端自动化构建工具(gulp): 1----先下载安装node.js 2----然后在node.js命令行安装:npm install gulp -g (全局下载安装gulp插件) 3----然后进入到项目文件夹(命令cd 文件夹名),在项目文件夹中安装依赖文件:npm install gulp --save-dev (根据依赖文件下载gulp插件) 4----在项目文件夹目录下初始化:npm init (初始化文件) {初始化文件后项目中会出现packgae.json文

实全邮件发送操作手册

实全邮件发送工具是采用VS2008 C# 开发.基于SMTP邮件传输协议.使用.Net SmtpClient进行的邮件发送客户端工具.SMTP 是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议.SMTP 是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知.工具由邮件管理客户端及邮件发送服务程序组成.邮件管理客户端主要用于邮件发送配置及邮件内容管理:邮件发送服务程序是Windows服务程序,它将即时读取邮件进行发送.工具可广泛用于应用系统跟踪.报警.工

自动化管理工具puppet

Linux之puppet puppet简介 puppet是一套IT基础设施自动化管理工具,可以管理其整个生命周期,其官方网站:www.puppetlabs.org.其作者Luke Kanies成立了puppetLabs,于2005年发布0.2版本.puppet基于ruby语言研发,puppet有声明性.基于模型的配置语言,其也有自己的配置编程言. puppet的优势 基于master/agent的认证机制 不依赖于客户端系统的管理权限 可实现配置自动推送给客户端 puppet的版本 0.2 0.

前端自动化构建工具——gulp

gulp是基于流的前端自动化构建工具. 一.环境配置 gulp是基于nodejs的,所以没有 nodejs 环境的要先去安装好 然后给系统配上gulp环境 npm install -g gulp 再到某一工程目录下 跟grunt一般,也是需要package.json包依赖文件和一个入口文件 gulpfile.js(其他名字识别不了) 然后就类似的先装上gulp npm install gulp --save-dev 最基本的使用方式是这样:(使用jshint插件校验js代码) var jshin

Grunt——自动化任务处理工具框架

学习文章,详细原文链接:http://yujiangshui.com/grunt-basic-tutorial/ 1. grunt是一个JavaScript任务运行器,自动化任务处理工具,是一个工具框架. 2. grunt基于node.js,用js开发. 3. 安装grunt (1)安装Node.js (2)npm install -g grunt-cil   (注意:安装的并不是Grunt,而是Grunt-cil,即命令行的Grunt,这样可以使用Grunt命令来执行某个项目中的Gruntfi

APP自动化框架LazyAndroid使用手册(1)--框架简介

作者:cryanimal  QQ:164166060 APP自动化简介 APP自动化,即通过自动化的方式,对APP施行一系列的仿按键输入.触摸屏输入.手势输入等操作,以达到对APP的功能进行自动化测试的目的. 其一般过程如下图所示: APP自动化常用工具简介 Monkey Monkey 是Android SDK 自带的自动化测试工具,可以运行在模拟器里或实际设备中,它向系统发送随机的用户事件流,如按键输入.触摸屏输入.手势输入.Sensor 事件等, 实现对正在开发的应用程序进行表现或者压力测试