`
happmaoo
  • 浏览: 4342618 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ACT连续进行压力测试(脚本代码)

阅读更多

'**************************************************************
'功能: 实现多个项目中的多个测试,流水线执行.
'环境配置:先建立一个测试文件夹,然后为每个项目建立一个文件夹
' 在每个文件夹中,建立多个测试,这些工作在ACT中完成.
'程序思路:
'NO1. 遍历测试文件夹中的每一个文件夹
'NO2. 获取文件夹的名称,并根据其打开项目
'NO3. 在该文件夹内,生成所有以VBS/vbs为扩展名的测试文件.
'NO4. 循环读取刚新建的文件内的每条记录,并依据打开测试.
'程序亮点:
'NO1. 调用WScript.Sleep(310000),使线程阻塞.并将其限制在打开测试
' 函数中去.降低了程序的复杂性.
'**************************************************************

Option Explicit

Dim g_oProject, g_oController
Dim fso, fs, f, f1, fc, s, text, ext, fcollection, tempStr
Dim logtxt, bIsRunning
'on error resume next
Set fso = CreateObject("Scripting.FileSystemObject")
Const ForReading = 1, ForWriting = 2, ForAppending = 3

'创建日志文件
Set logtxt = fso.CreateTextFile("E:\Work\ACTTest\TestLog.txt", True)


'访问文件,用于读取项目名称
Set f = fso.GetFolder("E:\Work\ACTTest\")
Set fc = f.SubFolders

For Each f1 in fc
Set g_oProject = OpenProject("E:\Work\ACTTest\" + f1.Name , f1.Name + ".act")
Set g_oController = CreateObject("ACT.Controller")

'生成测试文件列表,文件名为 ext.txt
CreateTestName(f1.Name)

logtxt.WriteLine("****************************************************************************")
logtxt.WriteLine("")
logtxt.WriteLine(f1.Name + " 测试日志如下:")
logtxt.WriteLine("")

'If (Not(IsObject(f1))) Then
'logtxt.WriteLine("Error creating E:\Work\ACTTest\" & f1.Name & "\test.txt 文件对象 object")
'WScript.Echo("Error creating 文件对象 object")
'Call WScript.Quit()
'End if
'Set text = fso.GetFile("E:\Work\ACTTest\ext.txt")
Set text = fso.OpenTextFile("E:\Work\ACTTest\" + f1.Name + "\ext.txt")
While text.AtEndOfStream <> True
Dim pp
pp = text.ReadLine()
'WScript.Echo(pp)
bIsRunning = g_oController.TestIsRunning
'If bIsRunning Then
'Call g_oController.StopTest()
'End If
Call RunTest(g_oProject, pp, g_oController)
logtxt.WriteLine("正在测试" + pp)
Wend
logtxt.WriteLine("")
logtxt.WriteLine("****************************************************************************")
logtxt.WriteLine("")
If (g_oProject.IsOpen) Then
Call g_oProject.Close()
WScript.Echo(f1.Name + "正在关闭....")
End If
Next

'If (g_oProject.IsOpen) Then
'WScript.Echo("ACT is open.")
'Else
'WScript.Echo("ACT is not open.")
'End If

If (Err.Number > 0) Then
WScript.Echo("共有" + Err.Number + "错误")
'exit the script
'Call WScript.Quit()
End If

'关闭对象

logtxt.Close()

'''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Function to
' Returns the folders.
'
Sub ShowFolderList(folderspec)
Dim fs, f, f1, fc, s
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(folderspec)
Set fc = f.SubFolders
For Each f1 in fc
s = s & f1.name
s = s & vbCrLf
Next
MsgBox s
End Sub

'''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Function to open an ACT project.
' Returns the open project.
'
Function OpenProject(strProjectPath, strProjectFileName)
Dim oProject
On Error Resume Next
Set oProject = CreateObject("ACT.Project")

' check for null object
If (Not(IsObject(oProject))) Then
WScript.Echo("Error creating project object")
Call WScript.Quit()
Else
' open the project
Call oProject.Open(strProjectPath, strProjectFileName, False)
' check for any VB error
If (Err.Number > 0) Then
WScript.Echo("Error opening project")
' exit the script
Call WScript.Quit()
End If
End If
Set OpenProject = oProject
If (oProject.IsOpen) Then
WScript.Echo(strProjectPath + "\" + strProjectFileName + " is open.")
Else
WScript.Sleep(10000)
Call oProject.Open(strProjectPath, strProjectFileName, False)
If (oProject.IsOpen) Then
WScript.Echo(strProjectPath + "\" + strProjectFileName + " is open.")
Else
WScript.Echo(strProjectPath + "\" + strProjectFileName + " is not open.")
End If
End If
End Function

'''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 生成测试名称列表
' 创建文本文件,返回空
'
Function CreateTestName2()
Dim ext, f ,fc, f1, fcollection
Set ext = fso.CreateTextFile("E:\Work\ACTTest\\ext.txt", True)
Set f = fso.GetFolder("E:\Work\ACTTest\" + strPath + "\")
Set fc = f.SubFolders
For Each f1 in fc
Set f = fso.GetFolder(f1)
Set fcollection = f.Files
'WScript.Echo(f1.Name)
For Each s in fcollection
tempStr = Mid(s.ShortName, Len(s.ShortName) - 2)
If (tempStr = "VBS" Or tempStr = "vbs") Then
ext.WriteLine(Left(s.Name, Len(s.Name) - 4))
'WScript.Echo(Left(s.Name, Len(s.Name) - 4))
Else
'WScript.Echo("File: " & Mid(s.ShortName, Len(s.ShortName) - 2))
End If

Next
Next
End Function

Function CreateTestName(strPath)
Dim ext, f ,fc, f1, fcollection
Set ext = fso.CreateTextFile("E:\Work\ACTTest\" + strPath + "\ext.txt", True)
Set f = fso.GetFolder("E:\Work\ACTTest\" + strPath + "\")
Set fcollection = f.Files
'WScript.Echo(f1.Name)
For Each s in fcollection
tempStr = Mid(s.ShortName, Len(s.ShortName) - 2)
If (tempStr = "VBS" Or tempStr = "vbs") Then
ext.WriteLine(Left(s.Name, Len(s.Name) - 4))
'WScript.Echo(Left(s.Name, Len(s.Name) - 4))
Else
'WScript.Echo("File: " & Mid(s.ShortName, Len(s.ShortName) - 2))
End If
Next
ext.Close()
End Function


'''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Procedure to run the specified test from the
' ACT project.
'
Sub RunTest(oProject, strTestName, oController)
Dim oTest, bIsRunning

bIsRunning = oController.TestIsRunning
If bIsRunning Then
'WScript.Echo("ACT is already running a test.")
WScript.Echo("Please wait 5 minutes....")
WScript.Sleep(310000)
WScript.Echo(Time)
Call RunTest(oProject, strTestName, oController)
Else
Set oTest = oProject.Tests.Item(strTestName)
WScript.Echo(Time)
WScript.Echo("Starting test " + strTestName + " ....")
Call oController.StartTest(oProject, oTest, False)
End If
End Sub

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics