Script needs the following inputs:
1. QC Server name (URL), Domain, Project, Username and Password
2. Test case name or Test case folder name
3. Search Item (word/phrase)
4. Replace Item (word/phrase)
#######################################################################3
'============================================== ' Utility name: Find and Replace '============================================== ' Get the QC Connection parameters from the user Set oShell = CreateObject( "WScript.Shell" ) user = oShell.ExpandEnvironmentStrings("%UserName%") userName = InputBox("Enter the username", "Quality Center Username", user) userPassword = InputBox("Enter the password", "Quality Center Password") qcDomain = InputBox("Enter the domain", "Quality Center Domain", "WQA") qcProject = InputBox("Enter the project", "Quality Center Project", "FSDD_SDD") ' Establish the connection Set QCConnection = CreateObject("TDApiOle80.TDConnection") QCConnection.InitConnectionEx "http://wcpappa018609/qcbin" QCConnection.login userName, userPassword QCConnection.Connect qcDomain, qcProject ' Testcase and QC Path variables Dim tcName Dim qcPath qcPath = InputBox("Enter the absolute QC folder path", "QC Folder Path", "Subject\WAVES\Jan 2009 Reqs\1. Add Bank Draw Number") tcName = InputBox("Enter the testcase name: (leave blank for all testcases)", "Testcase Name", "1.2 Add Bank Draw Number") ' Search and replace variables Dim searchItem ' Search Sting Dim repItem ' Replace string searchItem = InputBox("Enter the search item", "Search Item") repItem = InputBox("Enter the replace item", "Replace Item") ' Initialize the QC connection variables Set tFact = QCConnection.TestFactory Set tFilter = tFact.Filter tFilter.Filter("TS_SUBJECT") = """" & qcPath & """" ' Find the QC Path ' tFilter.Filter("TS_NAME") = "" ' Find the testcase(s) in the given path If IsEmpty(tcName) = False Then tFilter.Filter("TS_NAME") = """" & tcName & """" End If ' Execute the filter Set tList = tFact.NewList(tFilter.Text) ' Create the log file setup Set oFSO = CreateObject("Scripting.FileSystemObject") Set oLogFile = oFSO.CreateTextFile("UpdateActualResult.log", True) ' Navigate through all the testcases that matched the search criteria (usually just one testcase) For i = 1 to tList.Count Set myTest = tList.Item(i) oLogFile.WriteLine vbCrLf & "Log for test case: " & myTest.name ' Check whether Version Control is enabled for the test On Error Resume Next Set objVCS = myTest.VCS On Error Goto 0 If IsObject(objVCS) Then ' Check out the test, if it not already checked out If objVCS.IsLocked = False Then objVCS.CheckOut "", "", True ' Verify if the test is checked out by other user - if Yes, exit test, if No, check out the test ElseIf objVCS.IsLocked AND userName <> objVCS.LockedBY Then oLogFile.WriteLine "WARNING: " & myTest.name & " is locked by: " & objVCS.LockedBy ExitTest End If End If Set dFact = myTest.DesignStepFactory Set dStepsList = dFact.NewList("") ' Navigate through all the teststeps and do the replacements Set oRegEx = New RegExp oRegEx.Pattern = searchItem For Each item in dStepsList ' Replace in the Step Description & Expected Result newStepDesc = oRegEx.Replace(item.StepDescription, repItem) newExpResult = oRegEx.Replace(item.StepExpectedResult, repItem) ' Print the log If newStepDesc <> item.StepDescription OR newExpResult <> item.StepExpectedResult Then oLogFile.WriteLine vbTab & "Replacement in Testcase " & myTest.Name & " step number - " & item.Order + 1 item.StepDescription = newStepDesc item.StepExpectedResult = newExpResult item.Post End If Next ' Clear off the variables Set dStepsList = Nothing Set dFact = Nothing ' Check whether test is VCS enabled - if Yes, then check-in the script, if NO, just unlock the test If IsObject(objVCS) Then objVCS.CheckIn "", "" End If ' Unlock the test If myTest.IsLocked Then myTest.UnLockObject End If Next ' Clear off the variables Set tList = Nothing Set tFilter = Nothing Set tFact = Nothing ' Disconnect from QC QCConnection.Disconnect QCConnection.Logout QCConnection.ReleaseConnection ' End the script MsgBox "All the replacements have been done! Press Refresh to see the results."
####################################################################################
No comments:
Post a Comment