Ho codice VBScript che avvia QuickTest Professional, esegue una serie di test QTP e invia i risultati via e-mail. Funziona bene, ma preferirei usare una lingua con un migliore supporto per gli strumenti (un buon IDE per esempio). Attualmente sto chiamando. Librerie net dallo script di avvio, quindi mi chiedevo se fosse possibile usare un linguaggio come C# per realizzare lo stesso compito. Se è così, ci sono buone risorse che affrontano questo? Potrei trovare molto poco su questo argomento tramite Google e non sembrano esserci altre domande su SO di questo argomento.È possibile utilizzare una lingua diversa da VBScript per eseguire a livello di codice test QTP?
Per chiarezza, ho incluso il codice per la routine che fa la maggior parte del lavoro. Questo non include le dichiarazioni .Net, ma failedTestsList
e allTestsList
sono istanze di System.ArrayList
.
EDIT: Tutti gli esempi di documentazione QTP utilizzano VBScript, ma come si può vedere, il codice sta solo creando gli oggetti QTP. Presumo che questi sarebbero richiamabili da un'altra lingua che supportava la creazione di questi oggetti. Sembra solo dai miei fallimenti di Google che nessuno lo stia facendo.
Sub ExecuteQTPTest(name)
Dim App, resultsPath
Dim testPath, testResults
testPath = name
allTestsList.Add(name)
Set App = CreateObject("QuickTest.Application")
App.Launch
App.Visible = False
App.Open testPath
SetQTPTestOptions(App)
SetQTPRunOptions(App)
SetQTPWebOptions(App)
App.Folders.RemoveAll
Dim qtpTest, qtpResultsOpt
Set qtpTest = App.Test
Set qtpResultsOpt = CreateObject("QuickTest.RunResultsOptions")
resultsPath = testPath & "\RES1"
qtpResultsOpt.ResultsLocation = resultsPath
qtpTest.Run qtpResultsOpt ''// Run the test
testResults = "Test Status: " & qtpTest.LastRunResults.Status & vbCrLf & _
"Last Error: " & qtpTest.LastRunResults.LastError & vbCrLf & _
"Detailed Results located at " & qtpTest.LastRunResults.Path & _
" can be viewed with the QTP Results Viewer Tool " & vbCrLf
If qtpTest.LastRunResults.Status <> "Passed" Then
g_testRunPassed = False
failureCount = failureCount + 1
failedTestsList.Add(name)
LogResults testResults, name
End If
qtpTest.Close
Set qtpResultsOpt = Nothing
Set qtpTest = Nothing
App.Quit
Set App = Nothing
End Sub
Grazie. Penso che questo potrebbe essere il nudge nella giusta direzione che stavo cercando. Lo farò al lavoro martedì. – ssakl
Questo codice ha funzionato. Tuttavia, per QTP versione 10.0, ho dovuto cambiare usando QTObjectModelLib; usare QuickTest ;. Ho anche aggiunto un'app.Quit() alla fine. Questo è un ottimo punto di partenza. Grazie! – ssakl