图 3. 为Robot指定每个对象的对象类型、对象标志、执行动作和数据
以按钮举例来讲,如果要让Robot自动点击某个按钮,那么首先要告诉Robot需要在“Button”这种类型的对象上进行操作;其次要告诉Robot,在此类型的对象上要执行什么操作,比如click;第三要告诉Robot要click那个具体的按钮上,比如要click“登录”按钮。
表 2:对象识别表 动作类型对象类型对象标志执行动作数据 G Button 确定 Click G EditBox 姓名 Click Jack G ComboBox 角色列表 Click 系统管理员 G RadioButton 区域 Click在Robot测试技术框架中,相应的处理为:
'打开文件 Dim sData() as string InFileName = getExcelFileName ReadExcelData InFileName, sData() =============================== ‘对文件中每一行 Select Case (sObjType) Case "Button" ProcessButton(sObjAction, sObjData, sData) Case “EditBox” ProcessEditBox(sObjAction, sObjData, sData) Case “ComboBox” ProcessComboBox(sObjAction, sObjData, sData) Case “RadioButton” ProcessRadioButton(sObjAction, sObjData, sData) =============================== ‘对按钮执行的动作 Select Case(sObjAction) Case “Click” Window SetContext, "currentwindow", "" PushButton Click, "Text=" & sObjData, "" =============================== ‘对文本框执行的动作 Select Case(sObjAction) Case “Click” EditBox Click, "Name=" & sObjData, "" InputKeys "^+{HOME}{DELETE}" InputKeys sData =============================== ‘对组合框执行的动作 Select Case(sObjAction) Case “Click” ComboBox Click, "Name=" & sObjData, "" ComboListBox Click, "Name=" & sObjData, "Text=" & sData =============================== ‘对单选按钮执行的动作 Select Case(sObjAction) Case “Click” RadioButton Click, "Name=" & sObjData要强调的是,以按钮为例,虽然在表中需要为界面上每一个具体的按钮定义一行,但是在测试技术框架中,所有按钮处理的代码都是一样的。
3.2.3 验证点
没有验证点的自动化测试就不能称之为测试。从这句话中就可以看到验证点在自动化测试中的重要性。对于验证点来讲,因为不同的测试、不同的应用验证点都不相同,所以Robot测试技术框架仅仅提供了扩展的机制,不同的验证点可以通过扩展机制加入到测试技术框架中。
加入验证点之后,表的定义如下:
表 3:对象识别表 动作类型对象类型对象标志执行动作数据 G Button 确定 Click G HTMLLink 链接 Click G ComboBox 角色列表 Click 系统管理员 G RadioButton 区域 Click V VP VP_SUM VP_SUM 24最后一行是加入的验证点。所有的验证点其对象类型均为VP,不同的验证点有不同的对象标志,上表中的验证点是VP_SUM,验证点的基线数据为24。
在Robot测试技术框架中,处理如下:
‘对文件中每一行 Select Case (sObjType) Case …… Process…… Case “VP” ProcessVP(sObjAction, sData) =============================== ‘对验证点执行的动作 g_VP_SUM_Baseline = sData CallScript sObjAction =============================== ‘验证点脚本的处理 sData = g_VP_SUM_Baseline SQAGetProperty “”, “”, sActual if sData = sActual then …… else …… end if将验证点的基线数据放入全局变量g_VP_SUM_Baseline中,然后使用CallScript函数来调用验证点的脚本。对每一个验证点单独的创建一个脚本文件,脚本文件的名字和验证点的标志相同,都是VP_SUM。虽然各个验证点脚本的内容都不相同,但是一般的步骤是首先从全局变量g_VP_SUM_Baseline中取出基线数据,然后使用SQAGetProperty函数从界面上取实际的数据,再比较实际数据和基线数据。
3.2.4 数据池
往往需要使用不同的数据来运行同一个测试,在自动化测试中是使用数据池来实现的。数据池的增加比较简单,就是往表中增加表示数据的列,每一列代表一次测试执行所需要的数据。如下表:
表 4:数据池表a 动作类型对象类型对象标志执行动作数据1 G Button 确定 Click G HTMLLink 链接 Click G ComboBox 角色列表 Click 系统管理员普通管理员 G RadioButton 区域 Click V VP VP_SUM VP_SUM 24 24从上表中看到,“数据1”这一列代表一次测试的执行所需要的数据,“数据2”代表另外一次测试的执行所需要的数据。
在Robot测试技术框架中,加入循环,按照数据列的数量来进行循环,每一个循环均从第一行执行到最后一行。
3.2.5 执行分支
在测试中,往往是同一个业务或者功能,但是因为输入的数据、选择的条件不同,而具有不同的执行流程。执行分支的处理比较简单,就是在相应的数据列的位置上,填写代表忽略的特殊标志,比如“IGNORE”,当测试执行到此动作时,判断其数据是否是“IGNORE”,如果是,就不执行此动作而到下一个动作。对应的表如下:
表 5:数据池表b 动作类型对象类型对象标志执行动作数据1 G Button 确定 Click G HTMLLink 链接 Click G ComboBox 角色列表 Click 系统管理员普通管理员 G RadioButton 区域 Click V VP VP_SUM VP_SUM 24 IGNORE从上表中看到,第一次执行会执行VP_SUM验证点,但是第二次执行,因为验证点相应的数据是“IGNORE”,所以就不会执行VP_SUM验证点。
在Robot测试技术框架中,在每次执行动作时,先判断其数据是否是“IGNORE”即可。
3.2.6 数据关联
在测试中,需要处理数据关联这种情况。数据关联是指前一个动作执行完成后,应用产生新的数据,此数据在随后的动作中需要用到。因为这些数据是在执行的过程中由程序产生的,所以没有办法预先在表中准备。在这种情况下对应的表如下:
表 6:数据池表c 动作类型对象类型对象标志执行动作数据1 G Button 确定 Click G HTMLLink 链接 Click G ComboBox 角色列表 Click 系统管理员普通管理员 G RadioButton 区域 Click V VP VP_SUM VP_SUM 24 IGNORE G DC DC_GETID DC_GETID G EditBox 交易号 Click DC_GETID DC_GETID
文章来源于领测软件测试网 https://www.ltesting.net/