通过 STAF 的 EMAIL 服务,可以将测试结果以邮件形式通知测试人员
图 4 描述了无需人工干预的自动回归测试的流程:
图 4. 无需人工干预的自动回归测试流程
4. 多平台并发
4.1 多平台(Windows、Vista、Linux)
在回归测试的过程里,只有安装产品和执行测试脚本两部分与操作系统有关,而 RFT 和 STAF 都是跨平台的,所以很容易扩展到多平台。我们需要做的仅仅是在 RFT 和 STAX 脚本里,利用条件判断语句,对不同的操作系统做不同的处理。
示例代码 6. RFT 脚本中的平台判断
if(RationalTestScript.getOperatingSystem().isWindows()){ callScript(new testcases_for_win()); }else{ callScript(new testcases_for_linux()); } |
RFT 脚本有很多种判断平台的方法,示例代码只是其中的一种。当测试用例本身针对不同的平台,有比较大的差别时,除了可以在脚本内部根据不同的平台,灵活运动用不同的函数以外,也可以直接将一个脚本,分成针对不同平台的多个脚本,在另外的脚本中,统一调用。
示例代码 7. STAX 脚本中的平台判断
<if expr="Platform == 'Windows'"> ... <else> ...... </else> </if> |
同理,STAX 脚本的部分,如果根据不同的平台有所不同,也需要在脚本中区别操作系统,而后分别对待。
4.2 并发
STAX 不但可以顺序执行任务,还可以并发任务。通过并发任务,可以更好的利用资源,节约时间,提高效率。
示例代码 8. 并发任务
<! — Run install and test product function in parallel --> <paralleliterate var="vmIP" in="vmInfoIp"> <sequence> <script>vmInfoImage = vmInfo[vmIP]</script> <call function="'installandtestProduct'"> vmIP,buildPath,installPath,installConfiguration </call> <script>callRC = STAXResult</script> <if expr="callRC != 0"> <throw exception="'eTerminateFunction'"> 'Failed to install and test product' </throw> </if> </sequence> </paralleliterate> |
利用 STAX 提供的元素 parallel 和 paralleliterate,可以很容易实现同一系列任务在多台目标机上的并发执行。例如示例代码中原本针对一个目标机执行的安装和测试函数,通过 paralleliterate 即可变成同时在目标机列表中的所有目标机上同时执行,极大的节约了总体执行的时间,提高了执行的效率。
5. 结论
更加系统和全面的自动化回归测试,无疑是回归测试未来发展的一个必然趋势。本文是作者根据自动化回归测试的实际经验积累和总结而成。伴随着自动化测试的自动化程度展开的同时,介绍了几种主流的自动化测试工具的使用经验。希望能对正在实现和准备实现自动化回归测试的同仁有所帮助。
免责声明
本文仅代表作者本人观点