How to run regression tests on UNIX machines and UNIX commands triggered from Windows machines with VBScript or VB.NET code.
Part of my SOA automation framework was to write a layer on VB.NET, that internally calls the QTP (to run some functional tests for a Windows application) and also call many other tools needed to be run both in Windows and all supported UNIX hosts. After a little investigation I learned to call the UNIX boxes from my regression test machine and run a series of UNIX commands from a Windows machine using VB.NET or VBScript code. I finally found a solution with the option to use a UNIX Remote Shell object to do the same without writing any test script specifically for UNIX boxes in Python again. Still we are able to manage the VBScript for the same for both Windows and UNIX boxes.
RSH is used to execute commands on a remote machine. The RSH command executes the command or a program in another host from the current working machine without having to log into that remote machine by entering a password as in ssh. You can run any UNIX command, or a shell script of a remote host.
As an example of rsh use, the following executes the command mkdir testdir as user remoteuser on the computer "host.example.com" running a UNIX-like system:
rsh -l remoteuser host.example.com "mkdir testdir"
Sample UNIX command to execute the product exe file from a Windows machine:
Rsh.exe aix -l g1qareg setenv LIBPATH /export/home/hg1/host_6.0.1306.0.exe
Command executed:
Rsh.exe aix -l g1qareg setenv LIBPATH /export/home/hg1/STT_Tests/Generate_Regression/builds/aix5/doc1host_6.0.1306.0/; cd /export/home/hg1/STT_Tests/Generate_Regression/Input/56_inputs/all;/export/home/hg1/STT_Tests/Generate_Regression/builds/aix5/Test_6.0.1306.0/TestTool /export/home/hg1/Test1.rem ops=/export/home/hg1/STT_Tests/56_generic_ops/Test1.ops MMGX CMP ecp=/export/home/hg1/STT_Tests/builds/aix5/Test1/doc1ecp;
Part of the code snippet in VBScript to generate dynamically using configuration settings parameters:
'=================INSTALL SETTINGS====================================
Install_on = array("zsuse") 'Names should be same as arrUnixBoxNames below
'arrUnixBoxNames=array("hpux11","redhat","sun480","sun450","tru64","aix","hpuxi","zsuse")
'================= RUN - MANDATORY SETTINGS==========================
user_ID ="g1qareg" ' used in RSH calls.
Public Const use_Doc1gen_MMGX_Swtich = True
Private Sub setBuildVersion()
If Lcase(Shell_Verbosity) = "on" Then : wscript.echo("setBuildVersion() called.") : End If
Dim strLine, logFileStream, localFSO, objWshShell, objWshShellExec, strCmd
localFSO = CreateObject("Scripting.FileSystemObject")
'Set localFSO.CreateTextFile(oTempLogFile, True)
'On Error Resume Next
objWshShell = WScript.CreateObject("WScript.Shell")
Select Case Unix_Boxes(i)
Case "windows"
strCmd = "%comspec% /c " & strDOC1GenDir & " Test.exe > " & oTempLogFile
Case Else
strCmd = "%comspec% /c Rsh.exe " & Unix_Boxes(i) & " -l " & user_ID & " " _
& strEnv & "; " & strDir & "Test.exe > " & oTempLogFile
End Select
objWshShellExec = objWshShell.Exec(strCmd)
If Lcase(Debug_Mode) = "on" Then
'wscript.echo "Rsh.exe "&Unix_Boxes(i) &" -l g1ar01 " &strEnv &"; " &strDOC1GenDir &"doc1gen"
msgbox("Rsh.exe " & Unix_Boxes(i) & " -l " & user_ID & " " & strEnv & "; " & strDir & "Test.exe")
End If
The following shows the PUTTY or TELNET configuration to open the UNIX boxes from the Windows machines.
Note: RSH does not require any of the tools to be installed in the test machine, only manual verification requires these tools.
Note: if you are not able open the telnet client from "RUN" -> "COMMAND" then enable the client in Windows 7 machines using the following setting:
"Control Panel" -> "Program and Features" -> "Windows features on or off" -> "Enable the Telnet client"
Overview of Framework Architecture
Regression Script Basic Flow Diagram