Forum Discussion

sriram_sig's avatar
sriram_sig
Contributor
6 years ago
Solved

Ping a machine name and verify IP address

I have a requirement to ping a machinename and fetch its IP address as a step in one of my testcases. Wanted to know if testcomplete can perform operations like this. I just have the license for web module and use python for scripting on testcomplete.

  • Yes, This can be possible using the WshShell

    A sample code to read the output of ping

     

    function getPingResult(serverName)
    {
      var oShell = getActiveXObject("WScript.Shell"); // Or oShell = WshShell
      var oExec = oShell.Exec("powershell -command  ping " + serverName );
      oExec.StdIn.Close(); // Close standard input before reading output
    
      // Get PowerShell output
      var strOutput = oExec.StdOut.ReadAll();
      // Trim leading and trailing empty lines
      strOutput = aqString.Trim(strOutput, aqString.stAll);
    
      // Post PowerShell output to the test log line by line
      aqString.ListSeparator = "\r\n";
      for (var i = 0; i < aqString.GetListLength(strOutput); i++)
      {
        Log.Message(aqString.GetListItem(strOutput, i));
      }
    }

2 Replies

  • shankar_r's avatar
    shankar_r
    Community Hero

    Yes, This can be possible using the WshShell

    A sample code to read the output of ping

     

    function getPingResult(serverName)
    {
      var oShell = getActiveXObject("WScript.Shell"); // Or oShell = WshShell
      var oExec = oShell.Exec("powershell -command  ping " + serverName );
      oExec.StdIn.Close(); // Close standard input before reading output
    
      // Get PowerShell output
      var strOutput = oExec.StdOut.ReadAll();
      // Trim leading and trailing empty lines
      strOutput = aqString.Trim(strOutput, aqString.stAll);
    
      // Post PowerShell output to the test log line by line
      aqString.ListSeparator = "\r\n";
      for (var i = 0; i < aqString.GetListLength(strOutput); i++)
      {
        Log.Message(aqString.GetListItem(strOutput, i));
      }
    }