"When developing our test strategy, we must minimize the impact caused by changes in the applications we are testing, and changes in the tools we use to test them."
--Carl J. Nagle
RRAFS框架 - 2
一.运行上边的例子后你会发现,datapool文件夹出现很多.CDD,.STD,.SDD文件,从哪里来的呢?
研究ExportXLTables脚本,其中下边有三个函数,功能是导出xls文件内容到.CDD,.STD,.SDD,.ClassicsC.map文件。
status = ExportXLSToFiles( fileXLS := HighLevelTables, _
dirXLS := dirXLS, _
dirOUT := dirOUT, _
delimiter := separator)
status = ExportXLSToFiles( fileXLS := LowLevelTables, _
dirXLS := dirXLS, _
dirOUT := dirOUT, _
delimiter := separator)
status = ExportXLSToOneFile( fileXLS := ApplicationMap, _
fileOUT := MapOUT, _
dirXLS := dirXLS, _
dirOUT := dirOUT, _
delimiter := " ")
备注:函数代码ExportXLSToOneFile在单元ExcelUtilities.SBL中。
核心代码如下
For sheet = 1 to numSheets
Set worksheet = worksheets(sheet)
Set cells = worksheet.UsedRange
sheetname = worksheet.Name
fileref = FreeFile
fullpath = directoryOUT & sheetname
Open fullpath For Output As #fileref
rows = cells.Rows.Count
columns = cells.Columns.Count
'handle special .MAP case
if (StrComp(Right$(sheetname, 4), ".MAP", 1) = 0) then columns = 1
For row = 1 to rows
For column = 1 to columns
cell = cells.Rows(row).Columns(column).Value
'don't write a separator after the last field
if (column < columns) then cell = cell & separator
Print #fileref, cell ;
Next column
'if cell was empty then newline already occurred
if Len(cell) > 0 then Print #fileref, ""
Next row
Close #fileref
fileref = 0
Next sheet
打开excel文件,获得work-sheet个数,然后把相应的单元内容写入要导出的文件。
二.文件格式
AppMap文件是是INI文件格式,如下:
[LoginWindow]
LoginWindow="Type=Window;Caption=Login"
文件.CDD,STD,.SDD格式是完全按照ClassicsC_HIGH.xls格式导出,可自行对比文件。
三.重要函数
运行,调试代码后我们注意到启动脚本中CycleDriverTest.rec核心代码为
CDCycleDriver "Regression.cdd", "", CycleLog, SuiteLog, MainLog, CDCycleDrivenMode
整个启动脚本这里才是真正的核心。
RRAFS框架 – 3
下边表格中是rational robot自动化测试框架rrafs的三个核心引擎:
元素
文件
描述
Cycle Driver
CycleDriver.SBL
这个引擎是测试框架的核心引擎。他执行包含一系列套件的测试脚本,CycleDriver引擎调用SuitDriver引擎处理每个SUIT(测试表格),在Cycle层次上,他通过关键字t来识别。见备注1
Suite Driver
SuiteDriver.SBL
SuitDriver是测试框架核心引擎之一.它执行处理包含为了完成测试任务的动作命令的套件。 SuiteDriver 处理每一个执行动作,或者StepDriver(测试表). SuitDriver通过关键字"T"来处理.
备注2
Step Driver
StepDriver.SBL
核心引擎之一.执行需要完成特殊命令的.sdd文件 。关键字“c“调用驱动命令来处理,“t”调用组件命令来处理
备注:3
备注:
1. 看上图:表格Regression.CDD。T,CycleDriver就是通过“;RT“字段下的关键字来调用SuitDriver处理LoginWinTests等.STD文件。
2. 看上面表格:LoginWinTest.STD,SuitDriver通过“;RT“字段下的关键字来调用StepDriver处理等LaunchClassicsC.SDD文件
3.下表是SDD例子,可以看到第一列字段下面关键字分别为C和T
;RT
COMMAND
ARG
ARG
ARG
ARG
ARG
C
Version
1.0
C
SetApplicationMap
ClassicC.MAP
C
LaunchApplication
ClassicC
ClassicsEXE
""
""
ClassicC.MAP
;RT
WINDOW
COMP
ACTION
ARG
ARG
Description:
T
LoginWindow
LoginWindow
VerifyProperty
Caption
Classics Login
Make sure Login comes up.