У меня есть код VBScript, который запускает QuickTest Professional, выполняет серию QTP-тестов и отправляет результаты по электронной почте. Это хорошо работает, но я бы предпочел использовать язык с лучшей поддержкой инструментов (например, хорошая IDE). В настоящее время я вызываю библиотеки .Net из запуска script, поэтому мне было интересно, можно ли использовать такой язык, как С#, для выполнения той же задачи. Если да, есть ли хорошие ресурсы, которые это касаются? Я мог бы найти очень мало по этой теме через Google, и, похоже, нет никаких других вопросов по поводу этой темы.
Для ясности я включил код для подпрограммы, который выполняет основную часть работы. Это не включает декларации .Net, но failedTestsList
и allTestsList
являются экземплярами System.ArrayList
.
EDIT. Все примеры документации QTP используют VBScript, но, как вы можете видеть, код просто создает объекты QTP. Я бы предположил, что они будут вызываться с другого языка, который поддерживал бы создание этих объектов. По моим ошибкам Google просто кажется, что никто этого не делает.
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