Add the below code to end of script to lock the machine automatically
Set obj = CreateObject("WScript.Shell")
sCmnd = "%windir%\SYSTEM32\rundll32.exe user32.dll,LockWorkStation"
obj.Run sCmnd, 0, False
Set obj =nothing
Search This Blog
Wednesday, October 27, 2010
Tuesday, October 19, 2010
Getting the Machine Name through the Script
The below piece of code will give you the machine name and the user name of the pc where it is running. This is particularly useful when we need system parameters:
Set oWshNetwork = CreateObject("WScript.Network")
sMachine = oWshNetwork.ComputerName
sUser = oWshNetwork.UserName
msgbox sMachine
msgbox sUser
You can get all other system params also using similar codes using WScript.Network
Set oWshNetwork = CreateObject("WScript.Network")
sMachine = oWshNetwork.ComputerName
sUser = oWshNetwork.UserName
msgbox sMachine
msgbox sUser
You can get all other system params also using similar codes using WScript.Network
Thursday, October 14, 2010
Memory Usage Using WMI
The below code can be used to get the memory usage, peak memory usage and the virtual memory usage as in the Task Manager without opening it. Here we are using the WMI object methods:
' To get the Machine Name
Set objWMISvc = GetObject( "winmgmts:\\.\root\cimv2" )
Set colItems = objWMISvc.ExecQuery( "Select * from Win32_ComputerSystem", , 48 )
For Each objItem in colItems
PCName = objItem.Name
Next
'To get the Memory Values
On Error Resume Next
arrComputers = Array(PCName)
For Each strComputer In arrComputers
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
For Each objItem In colItems
If objItem.Name = "ProcessNameYouWant.exe" Then
VM = objItem.PageFileUsage/1024
End If
Next
Set MemItems = objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfProc_Process", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In MemItems
If objItem.Name = "ProcessNameYouWant" Then
mem = objItem.WorkingSet/1024
peak = objItem.WorkingSetPeak/1024
End If
Next
Next
' To get the Machine Name
Set objWMISvc = GetObject( "winmgmts:\\.\root\cimv2" )
Set colItems = objWMISvc.ExecQuery( "Select * from Win32_ComputerSystem", , 48 )
For Each objItem in colItems
PCName = objItem.Name
Next
'To get the Memory Values
On Error Resume Next
arrComputers = Array(PCName)
For Each strComputer In arrComputers
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process")
For Each objItem In colItems
If objItem.Name = "ProcessNameYouWant.exe" Then
VM = objItem.PageFileUsage/1024
End If
Next
Set MemItems = objWMIService.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfProc_Process", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In MemItems
If objItem.Name = "ProcessNameYouWant" Then
mem = objItem.WorkingSet/1024
peak = objItem.WorkingSetPeak/1024
End If
Next
Next
Wednesday, October 13, 2010
Add or Remove the Recovery Scenario dynamically from tge script
The below code is helpful in adding and removing the Recovery Scenario dynamically from the settings. This case would be particularly required in case where there is a looping of the recovery scenarios, i.e, a recovery scenario is triggered when inside another recovery scenario.
Here goes the code:
Set qtApp = CreateObject("QuickTest.Application")
Set qtTestRecovery = qtApp.Test.Settings.Recovery
'This part of the code is used to remove all the existing recovery scenarios associated with the test
If qtTestRecovery.Count > 0 Then
qtTestRecovery.RemoveAll
End If
' This is used to add the recovery scenarios. The first parameter is the location of the qrs file. 2nd parameter is the scenario name as given at the time of creating the recovery scenario and 3rd is the priority (used when multiplr scenarios need to be added. At that time we can have 1,2,3 etc)
qtTestRecovery.Add "E:\RecoveryScenario.qrs", "RecoveryScenario" , 1
For intIndex = 1 To qtTestRecovery.Count
qtTestRecovery.Item(intIndex).Enabled = True
Next
qtTestRecovery.Enabled = true
qtTestRecovery.SetActivationMode "OnError"
Set qtApp = Nothing
Set qtTestRecovery = Nothing
'Only if the below line of code is added the recovery scenario would be added to your code.
Recovery.Enabled= True
Here goes the code:
Set qtApp = CreateObject("QuickTest.Application")
Set qtTestRecovery = qtApp.Test.Settings.Recovery
'This part of the code is used to remove all the existing recovery scenarios associated with the test
If qtTestRecovery.Count > 0 Then
qtTestRecovery.RemoveAll
End If
' This is used to add the recovery scenarios. The first parameter is the location of the qrs file. 2nd parameter is the scenario name as given at the time of creating the recovery scenario and 3rd is the priority (used when multiplr scenarios need to be added. At that time we can have 1,2,3 etc)
qtTestRecovery.Add "E:\RecoveryScenario.qrs", "RecoveryScenario" , 1
For intIndex = 1 To qtTestRecovery.Count
qtTestRecovery.Item(intIndex).Enabled = True
Next
qtTestRecovery.Enabled = true
qtTestRecovery.SetActivationMode "OnError"
Set qtApp = Nothing
Set qtTestRecovery = Nothing
'Only if the below line of code is added the recovery scenario would be added to your code.
Recovery.Enabled= True
Tuesday, September 21, 2010
Recovery Scenario for Unknown Window
The following code can be added in the recovery scenario as a function call. When the occurence is set to "On Error" it will check for any unknown window, if it finds this unknown window, it will click ok or cancel button or any other button which we are giving in the script. If there is not such unwindow and still the object expected by QTP is not visible, then it will also click Retry for the QTP error.
This is very important since we are handling here both application generated as well as QTP generated errors. You can also add the function for caputuring the screenshot here to make it an excellent looking Recovery Scenario.
Function UnknownWindow(Object, Method, Arguments, retVal)
Dim var
var=Array("&No","OK","Ok", "Cancel", "Close")
Set o_Desc=description.Create
Set o_Nobutn=description.Create
o_Desc("Class Name").value="Dialog"
o_Desc("ispopupwindow").value=True
If Window(o_Desc).Exist Then
Window(o_Desc).Activate
Arr_Count=Ubound(var)
For i= 0 to Arr_Count
o_Nobutn("text").value=var(i)
If Window(o_Desc).winbutton(o_Nobutn).Exist(0) Then
Enabled = Window(o_Desc).winbutton(o_Nobutn).GetROProperty("enabled")
If Enabled = "True" Then
Exit For
End If
End If
Next
Window(o_Desc).winbutton(o_Nobutn).Click
Else
QTP_Error
End If
End Function
'-----------------------------------------------------------
Public Function QTP_Error
count = 1
For Count = 1 to 2
Set WshShell =CreateObject("WScript.Shell")
Btncode = WshShell.Popup ("object is disabled", 1)
WshShell.SendKeys "{TAB}"
wait 2
WshShell.SendKeys "~"
Next
CloseApplication
ExitTestIteration
End Function
This is very important since we are handling here both application generated as well as QTP generated errors. You can also add the function for caputuring the screenshot here to make it an excellent looking Recovery Scenario.
Function UnknownWindow(Object, Method, Arguments, retVal)
Dim var
var=Array("&No","OK","Ok", "Cancel", "Close")
Set o_Desc=description.Create
Set o_Nobutn=description.Create
o_Desc("Class Name").value="Dialog"
o_Desc("ispopupwindow").value=True
If Window(o_Desc).Exist Then
Window(o_Desc).Activate
Arr_Count=Ubound(var)
For i= 0 to Arr_Count
o_Nobutn("text").value=var(i)
If Window(o_Desc).winbutton(o_Nobutn).Exist(0) Then
Enabled = Window(o_Desc).winbutton(o_Nobutn).GetROProperty("enabled")
If Enabled = "True" Then
Exit For
End If
End If
Next
Window(o_Desc).winbutton(o_Nobutn).Click
Else
QTP_Error
End If
End Function
'-----------------------------------------------------------
Public Function QTP_Error
count = 1
For Count = 1 to 2
Set WshShell =CreateObject("WScript.Shell")
Btncode = WshShell.Popup ("object is disabled", 1)
WshShell.SendKeys "{TAB}"
wait 2
WshShell.SendKeys "~"
Next
CloseApplication
ExitTestIteration
End Function
Capturing the screenshot in case of error
The following piece of code can be inserted as a fucntion call in you recovery scenario. If you set the occurence as "On Error", it will take the screenshot of your screen in the event of an error. This is helpful in understanding what exactly happend before the recovery scenario was triggered.
Dim filename
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists("D:\Automation\Results\Screenshots")= "False" Then
FSO.CreateFolder("D:\Automation\Results\Screenshots")
End If
timenow = now
timenw= split (timenow, " ")
filename = RecipeNo &"_"&timenw(1)&".png"
filename = Replace(filename,"/","")
filename = Replace(filename,":","")
filename = "D:\Ranger Automation\Results\Screenshots"&"\"&filename
Desktop.CaptureBitmap filename,true
Reporter.ReportEvent micFail,"image","<
"
Dim filename
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FolderExists("D:\Automation\Results\Screenshots")= "False" Then
FSO.CreateFolder("D:\Automation\Results\Screenshots")
End If
timenow = now
timenw= split (timenow, " ")
filename = RecipeNo &"_"&timenw(1)&".png"
filename = Replace(filename,"/","")
filename = Replace(filename,":","")
filename = "D:\Ranger Automation\Results\Screenshots"&"\"&filename
Desktop.CaptureBitmap filename,true
Reporter.ReportEvent micFail,"image","<
Create a line chart in excel
Set Excel = CreateObject("Excel.Application")
Set Book = Excel.Workbooks.Open("E:\Performance.xls")
Set Sheet = Book.Worksheets(1)
Set Range = Sheet.UsedRange
Range.Select ' Selects the area in the excel sheet with the data
Set Charts= Excel.Charts
Charts.Add
Set objCharts = Charts(1)
objCharts.Activate
objCharts.ChartType = 65 ' This will select a line chart
objCharts.SeriesCollection(1).Border.Weight = -4138 'Used to increase the width of the line in the graph
objCharts.SeriesCollection(2).Border.Weight = -4138
objCharts.SeriesCollection(3).Border.Weight = -4138
Book.Save
Excel.Quit
For more details and other types of charts. Please refer the website:
http://technet.microsoft.com/en-us/library/ee692900.aspx
Set Book = Excel.Workbooks.Open("E:\Performance.xls")
Set Sheet = Book.Worksheets(1)
Set Range = Sheet.UsedRange
Range.Select ' Selects the area in the excel sheet with the data
Set Charts= Excel.Charts
Charts.Add
Set objCharts = Charts(1)
objCharts.Activate
objCharts.ChartType = 65 ' This will select a line chart
objCharts.SeriesCollection(1).Border.Weight = -4138 'Used to increase the width of the line in the graph
objCharts.SeriesCollection(2).Border.Weight = -4138
objCharts.SeriesCollection(3).Border.Weight = -4138
Book.Save
Excel.Quit
For more details and other types of charts. Please refer the website:
http://technet.microsoft.com/en-us/library/ee692900.aspx
Subscribe to:
Posts (Atom)