近一段时间,工作中遇到的一个需要做自动化的改进的软件项目,该项目情况如下。
v 项目现有情况概述
Ø 项目采用持续集成策略,每日构建,每日测试。
Ø 每日自动构建,自动安装皆已实现。
Ø 采用QuickTest Professional(QTP)9.0进行测试。
Ø 测试脚本已录制完备,且修改极少
Ø 每天由测试人员启动测试脚本。
Ø 得到测试结果后,测试人员将测试结果发布给项目组相关人员。
v 改进目标
要求对上述流程进行改进使之完全实现自动化,我们可以看到上述过程中除了“测试人员启动测试过程” 和“发送测试结果”之外都已实现自动化。我们需要对其做一定改进,以达到下面的目标。
Ø “每天测试人员启动测试脚本”改进为“每天QTP自动启动并执行已录制的测试脚本”
Ø 对于测试结果,要求能够自动通过Email发送给相关人员
v 问题焦点
上诉问题的关键在于如何自动启动QTP并执行软件测试过程
v 解决方法一,借助工具Multi Test Manager来实现
该工具最高版本为8.2.4, 在我们项目组中使用的是QTP9.0,Mercury的技术支持说该工具并不保证能够支持QTP9.0,但经过经过我的试验发现该工具是能够很好的支持QTP9.0的,至少在我们项目组中。
Ø Multi Test Manager简介
The Multi Test Manager Utility allows you to arrange any number of scripts into a batch and run this batch. This version of the Multi Test Manager Utility also allows you to schedule test runs locally as well as remotely at any given time. It also includes report generation as well as email notification. The Multi Test Manager Utility also has command line options which allows you to run QuickTest Professional and from the command line.
这段话是Multi Test Manager文档中的一段描述,我们可以看到这个工具提供给我们了以下的功能:批量执行多个测试脚本;定时执行;远程执行;自动生成测试报告;具有自动发送Email的功能。
对于采用持续集成持续测试的项目组来说,这个工具的这些功能简直太棒了。
Ø 我们可以通过GUI模式非常简单的使用Multi Test Manager,另外该工具也提供了命令行的使用方式,有了命令行的方式实现自动化就更加方便了,比如在自动安装成功后,通过命令行的方式调用Multi Test Manager启动自动测试过程;当然我们也可以通过GUI的方式实现定时执行测试脚本的功能。下面是该工具命令行使用方式说明:
/T
Run a specific test case
/R
Result path of the test case, if not specified default path is used
/TB
Path to a Multi Test Manager batch file ( .MTM or .MTB )
/CLOSE_QTP
Close QuickTest Professional when batch run is done
/CLOSE_MTM
Close Multi Test Manager when batch run is done
/LOG
Create report file
/SUMMARY
View report file when batch run is done
/NOUI
Run with no UI
Syntax: MultiTestManager.exe [/T ] [/TB ] [/CLOSE_QTP] [/CLOSE_MTM] [/LOG] [/SUMMARY] [/NOUI]
v 解决方法二,通过调用QTP自动化接口来自动启动测试过程
除了上述方式,我们还可以通过VBScript或其他脚本语言调用QTP自动化接口,实现该功能,关于此种方式,请参考QTP文档AutomationObjectModel.pdf
v 解决方法三,通过TD自动启动QTP
据我所知,在TestDirector/Quality Centre中也提供了定时调用QTP的功能,不过这个工具巨贵,公司并没有购买,无法试验。还是要写在这里给大家提供一种思路。