我有启动 QuickTest Professional、执行一系列 QTP 测试并通过电子邮件发送结果的 VBScript 代码。这很好用,但我更喜欢使用具有更好工具支持的语言(例如一个好的 IDE)。我目前正在从启动脚本调用 .Net 库,所以我想知道是否可以使用像 C# 这样的语言来完成相同的任务。如果是这样,是否有任何好的资源可以解决这个问题?我可以通过谷歌找到关于这个主题的很少,而且似乎没有关于这个主题的任何其他问题。
为了清楚起见,我已经包含了完成大部分工作的例程的代码。这不包括 .Net 声明,但failedTestsList
和allTestsList
是 .Net 的实例System.ArrayList
。
编辑:所有 QTP 文档示例都使用 VBScript,但正如您所见,代码只是创建 QTP 对象。我会假设这些可以从另一种支持创建这些对象的语言中调用。从我的谷歌失败看来,没有人这样做。
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