4 测试脚本
对于每个测试脚本来说,本文结合 JUnit 和 RFT 组织测试脚本的方法,(1)对每个测试方法使用 test 为前缀名,方便组织和阅读(2)使用 testMain 作为执行入口,调用测试方法。如对方法 Worksheets.Count、Worksheet.Name 进行测试,我们按下列结构进行组织。
清单 1. 对方法 Worksheets.Count、Worksheet.Name 进行测试
Sub testMain() testWorksheetsCount testWorksheetName End Sub Sub testWorksheetsCount() …. //Test Script End Sub Sub testWorksheetName() ….//Test script End Sub |
5 验证点的比较
不存在 VBA 语言的类似 JUnit 的测试 API 的工具。根据上文第 2 节中阐述的思想,可以自己编写相应的验证点比较方法。只需要函数返回的真实值和期望值进行比较就可以得到验证点的测试结果,即和真实值和期望值相等,这验证点通过,反之则验证点失败。为了使结果更有可读性,我们可以提供验证点的描述信息。例如验证方法:assertEquals,需要传入期望值,真实值,描述信息,同时把比较结果直接写入文本文件。测试用例脚本中,在验证点处可以调用此方法对验证点进行判断,自动生成测试结果。脚本如下所示:
清单 2. 在验证点处可以调用此方法对验证点进行判断,自动生成测试结果
Sub assertEquals(realValue As Variant, expectValue As Variant, testDescription As String) Dim vpResult As Boolean vpResult = TestAreEqual(realValue, expectValue) Dim testMsg As String testMsg = "---------------------VP Start---------------------" + Chr(13) + Chr(10) If vpResult = True Then testMsg = testMsg + "VP:Result=Pass" + Chr(13) + Chr(10) Else testMsg = testMsg + "VP:Result=Fail" + Chr(13) + Chr(10) Test_Result = False End If testMsg = testMsg + "VP:Desciption=" + testDescription + Chr(13) + Chr(10) testMsg = testMsg + "VP:RealValue=" + CStr(realValue) + Chr(13) + Chr(10) testMsg = testMsg + "VP:ExpectValue=" + CStr(expectValue) + Chr(13) + Chr(10) testMsg = testMsg + "----------------VP End-----------------------" + Chr(13) + Chr(10) If TESTLOG_VERBOSE Then TestLog_ITEM testMsg End If End Sub |
6 Log 文件处理的方法
测试的过程中往往会有异常发生或验证点失败,为了测试执行结束后对异常或者测试失败情况进行分析,需要把测试执行过程的信息进行记录,因此需要有 Log 处理机制。我们把测试执行中步骤信息,测试说明,测试结果等写入文本文件。为了有可读性,同时方便分析 Log 文件生成更易读的报告文件,需要对 Log 文件的内容和格式进行定义。
生成的 Log 文件包括以下部分:(1)开始执行时间(2)验证点信息,包括验证点描述信息、验证点期望值、真实值、验证点的结果 (3) 执行结束时间(4)整个测试用例的执行结果。每个测试用例生成一个 Log 文件,使用测试文件名来对 Log 文件来命名。我们使用以下格式:
--------------------------VP Start-------------------------- VP:Result=Pass or Fail VP:Desciption=The verification point description information. VP:RealValue=The real value of test object VP:ExpectValue=The expect value of test object. --------------------------VP End---------------------------- |
相关阅读: