Dim sTestCaseFolder, strScriptPath, sQTPResultsPath, sQTPResultsPathOrig
sBatchSheetPath = "D:\Project\Driver Script\Batch.xls"
sTestCaseFolder = "D:\Project\"
sQTPResultsPathOrig = "D:\Project\Result\"
'========== Create an object to access QTP's objects, methods and properties ==========
Set qtpApp = CreateObject("QuickTest.Application")
'Open QTP if it is already not open
If qtpApp.launched <> True Then
qtpApp.Launch
End If
qtpApp.Visible = True
'========== Set the run options for QTP ==========
qtpApp.Options.Run.ImageCaptureForTestResults = "OnError"
qtpApp.Options.Run.RunMode = "Fast"
'Set ViewResults property to false. This is because if you run many test cases in batch, you would not want QTP to open a separate result window for each of them
qtpApp.Options.Run.ViewResults = False
' ========== Read test cases from batch excel sheet ==========
Set xl_Batch = CreateObject("Excel.Application")
Set wb_Batch = xl_Batch.WorkBooks.Open(sBatchSheetPath)
'Loop through all the Rows
'1st row contains Execute button, 2nd row is header and the test case list starts from 3rd row. So, For loop is started from 3rd row
For iR = 3 to 1000
'Get the value from the Execute column
If xl_Batch.Cells(iR, 1).Value = "Yes" Then
'Get Test Case Name
sTestCaseName = xl_Batch.Cells(iR, 2).Value
'Get the location where the test case is stored
strScriptPath = sTestCaseFolder & sTestCaseName
'Open the Test Case in Read-Only mode
qtpApp.Open strScriptPath, True
WScript.Sleep 2000
'Create an object of type QTP Test
Set qtpTest = qtpApp.Test
'Instruct QTP to perform next step when error occurs
qtpTest.Settings.Run.OnError = "NextStep"
'Create the Run Results Options object
Set qtpResult = CreateObject("QuickTest.RunResultsOptions")
'Set the results location. This result refers to the QTP result
sQTPResultsPath = sQTPResultsPathOrig
sQTPResultsPath = sQTPResultsPath & sTestCaseName
qtpResult.ResultsLocation = sQTPResultsPath
'Run the test. The result will automatically be stored in the location set by you
WScript.Sleep 2000
qtpTest.Run qtpResult
ElseIf xl_Batch.Cells(iR, 1).Value = "No" Then
'Do nothing. You don't have to execute the test cases marked as No
ElseIf xl_Batch.Cells(iR, 1).Value = "" Then
'Blank value means that the list of test cases has finished
'So you can exit the for loop
Exit For
End If
Next
我将以上代码保存在Vbs文件中,我尝试使用下面的代码通过cmd提示符执行此文件
cscript Test.vbs
我收到的错误消息如下
D:\ Project \ Driver Script \ DriverScript.vbs(1,1)Microsoft VBScript编译错误:无效字符
我不太确定上面的代码在第一行的错误似乎指向的错误。任何帮助表示赞赏
注意:Code代码从Automationrepository网站转到Anish。我只是尝试使用他的教程和代码
为我的测试用例构建一个QTP框架答案 0 :(得分:0)
尝试:
cscript.exe /NoLogo "path\cscript Test.vbs"
在命令提示符下运行你的vbs