Tengo el código VBScript que inicia QuickTest Professional, ejecuta una serie de pruebas QTP y envía los resultados por correo electrónico. Esto funciona bien, pero preferiría usar un lenguaje con mejor soporte de herramientas (un buen IDE, por ejemplo). Actualmente estoy llamando a las bibliotecas .Net desde el script de inicio, por lo que me preguntaba si era posible usar un lenguaje como C# para realizar la misma tarea. Si es así, ¿hay algún buen recurso que solucione esto? Pude encontrar muy poco sobre este tema a través de Google y no parece haber otras preguntas sobre SO sobre este tema.¿Puedo utilizar un lenguaje que no sea VBScript para ejecutar pruebas QTP mediante programación?
Para mayor claridad, he incluido el código para la rutina que hace la mayor parte del trabajo. Esto no incluye las declaraciones .Net, pero failedTestsList
y allTestsList
son instancias de System.ArrayList
.
EDIT: Todos los ejemplos de documentación QTP usan VBScript, pero como puede ver, el código solo crea los objetos QTP. Asumiría que podrían llamarse desde otro idioma que admite la creación de estos objetos. Parece por mis fallas de Google que nadie lo está haciendo.
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
Gracias. Creo que este puede ser el empujón en la dirección correcta que estaba buscando. Lo intentaré el martes. – ssakl
Este código funcionó. Sin embargo, para QTP versión 10.0, tuve que cambiar usando QTObjectModelLib; para usar QuickTest ;. También agregué una aplicación. Quit() al final. Este es un gran punto de partida. ¡Gracias! – ssakl