2014-01-12 36 views
0
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文件上面的代碼中,我試圖執行以下VBS文件不通過命令提示符

cscript Test.vbs 

錯誤消息使用的代碼通過命令提示符這個文件我收到的是如下

D:\Project\Driver Script\DriverScript.vbs(1, 1) Microsoft VBScript compilation error: Invalid character

我不太清楚上面的代碼與第一行錯誤似乎指向什麼錯誤。任何幫助表示讚賞

注:代碼積分從automationrepository網站去Anish。我只是想用他的教程和代碼搭建我的測試情況下,QTP框架

+0

運行VBS是否VBScript的運行批處理的外文件,即如果你只是運行該文件? – unclemeat

+0

我在VBSEdit中遇到了一個關於'Set qtpApp = CreateObject(「QuickTest.Application」)'的錯誤,可能是運行時無法將錯誤返回給您。 –

+0

@unclemeat下面是我得到的錯誤,當我運行該文件,Windows腳本宿主腳本:\t d:\項目\ driverScript.vbs 行:字符:錯誤:\t無效字符 代碼:\t 800A0408 資料來源:\t微軟VBScript編譯錯誤 –

回答

0

嘗試:

cscript.exe /NoLogo "path\cscript Test.vbs" 

在命令提示符下

相關問題