QTP自动化测试框架:第四章 主要方法介绍(action部分,作为驱动)
后续将主要介绍一些此次框架中用的主要方法
先来看一下aciton中的整体内容
1. 引用外部DLL来读取INI文件,这里分为读和写两个
'//refer external dll to read and write ini file
'第一个是用来读取INI的,方法名为 GetPrivateProfileInt,具体的可查看帮助文件,在这个地方要注意参数个数以及当读的时候是需要返回值的,所以最后是 micString+micByRef,而写的时候则不需要
Extern.Declare micInteger,"GetPrivateProfileInt", "kernel32.dll","GetPrivateProfileInt", micString,micString,micInteger,micString+micByRef 写入INI文件 Extern.Declare micLong,"WritePrivateProfileString", "kernel32.dll","WritePrivateProfileString", micString,micString,micString,micString
以下是具体调用地方
初始化过程中读取INI文件中的参数
'调用方法 Sub InitializeTestParameter() RestartRunIndicator=Cint(ReadIniFile("RunScenario","RestartRun",InitialFilePath)) If RestartRunIndicator=0 Then '0 present current test run normally,if 1 represent current test has been restarted InitialIterator=Cint(ReadIniFile("InitialParameter","InitialIterator",InitialFilePath)) InitialTestCaseNo=Cint(ReadIniFile("InitialParameter","InitialTestCaseNo",InitialFilePath)) Environment("DefinedTestIteration")=Cint(ReadIniFile("InitialParameter","Environment(""DefinedTestIteration"")",InitialFilePath)) Environment("DefinedActionIteration")=Cint(ReadIniFile("InitialParameter","Environment(""DefinedActionIteration"")",InitialFilePath)) else InitialIterator=Cint(ReadIniFile("RecoveryParameter","InitialIterator",InitialFilePath)) InitialTestCaseNo=Cint(ReadIniFile("RecoveryParameter","InitialTestCaseNo",InitialFilePath)) Environment("DefinedTestIteration")=Cint(ReadIniFile("RecoveryParameter","Environment(""DefinedTestIteration"")",InitialFilePath)) Environment("DefinedActionIteration")=Cint(ReadIniFile("RecoveryParameter","Environment(""DefinedActionIteration"")",InitialFilePath)) End If End Sub
写的时候非常简单
Function WriteIniFile(SectionName,KeyName,KeyVlaue,InitialPath) Extern.WritePrivateProfileString SectionName,KeyName,KeyVlaue,InitialPath ‘分别指定section ,Key也就是参数名和具体参数,以及文件路径即可 End Function
读的时候需要多一步
Function ReadIniFile(SectionName,KeyName,InitialFilePath) ReadIniFile=Extern.GetPrivateProfileInt(SectionName,KeyName,1000,InitialFilePath) '1000 just use to distinguish an exception when required key or section not found. ’这个地方需要注意当要读取的参数名不存在的时候,会返回一个值1000.用来区分读取失败。出现这种情况通常是配置存在问题,所以直接结束action,弹出提示,不再向下继续执行 If CLng(ReadIniFile)=1000 Then Reporter.ReportEvent micFail,"ReadIniFile","KeyName : "+KeyName + "in Section "+SectionName+"in fILE: "+InitialFilePath+"Not Found" End Function Msgbox "Section or KeyName not found" ExitAction() End If