测试执行流程与Mngt Tools
一套测试套件设计出来之后,它的价值在一遍一遍的执行中体现出来。如何能最大化的优化执行的流程,是Mngt tools的任务。在我的项目中,Mngt Tools是由一些VBS脚本和BAT脚本构成。
下图是Mngt Tools所包含的脚本。用户直接调用的脚本都是BAT脚本,实际实现在VBS脚本里。VBS脚本放在Script文件夹里面,如下图所示。
测试项目的执行流程定义如下。
+-----------------+
| Prepare Test
|
+-------+---------+
|
|
+-------v---------+
| Execute Test
|
+-------+---------+
|
|
+-------v----------+
| Generate Report |
+-------+----------+
|
|
+-------v----------+
| Analyze Result |
+------------------+
在准备Test阶段,最重要的是产生一份所有要执行的testcase的清单,在这里是TestCaseList.txt。显然,可以通过扫描Test Case
Repository目录来达成。这是通过脚本GenTestCaseList.bat来完成的。
另外,被测试产品的版本号是一个非常重要的信息,必须在product.version文件里指定。
Execute Test
通过调用Batchrun.bat,所有定义在TestCaseList.txt里的testcase都会被顺序执行。执行过程中的所有log会记录到Run.log文件里。
执行结果所有信息会在一个目录里保存,如下图所示。
其中,Batchrun.bat会把每一个Testcase的执行结果和错误信息(如果有的话)保存在TestResult.txt。这个文件会在"Generate
Report"阶段被转换成TestResult.html。
Execute Test Twice
因为GUI测试天然的不稳定性,有时候,你会希望执行两次,并且取两次运行合并后的结果作为最终结果。合并的算法是,一个testcase,只要有一次通过,就认为是通过的。这钟方式能够有效的消除不稳定性导致的testcase失败的机会。
对于这种方式,执行过程是下面这样.
1. Batch run all
test cases in TestCaseList.txt)
2. Restore
test environment
3. Batch run
only failed test cass
4. Merge test
results
BatchRun_Rerun.bat能自动的完成上述的流程。测试结果目录是下面的样子。
注意这里有三个TestResult文件。TestResult.txt, TestResult_Rerun.txt和TestResult_Merged.txt,分别是“第一次”,“第二次”,“合并后”的结果。
Generate Report
在所有testcase执行完之后,调用GenReport.bat,会为该次执行产生一个HTML report,如下所示。这个动作已经集成在BatchRun.bat和BatchRun_Rerun.bat脚本里面。不过也可以在测试执行完成后的任何时候调用GenReport.bat。
这个Report由总到分,逐级展示测试结果。最上面是整个testrun的结果,下面是TestModule和TestSuite的结果,最下面是每一个testcase的测试结果。
在查看每一条Testcase结果记录的地方,你可以立即获得错误信息和当时的Screenshot,他们都是对于结果分析非常有用的信息。实践表明,这种便利性可以大大加快结果分析的效率。如果你需要在Result
Viewer里面查看更详细的信息,那么可以打开ResultXML,这个文件正是Result
Viewer需要的文件。
Analyze Result
为了方便结果分析,需要用到GenExcel.bat这个脚本。它可以根据测试结果文件(TestResult.txt)文件,产生一个TestResult.xls文件。利用Excel的能力,你可以方便的根据测试结果过滤所有testcase,并且可以随时记录下分析结果。
如果需要汇报测试执行结果,那么可以在邮件正文给出汇总的信息,并附上TestResult.html和TestResult.xls两个文件。这样你的邮件基本上包含了各种stakeholder(team
leader, manager, developer...)可能感兴趣的信息,而且还不会显得凌乱。