Skip to main content

Using a KVM-over-IP Device

This method of connecting to a system under test (SUT) from Eggplant Functional is intended as an alternative to the VNC method described here.


This testing method requires a SUT, a KVM-over-IP device, a network, and Eggplant Functional, as shown below.

Physical KVM-over-IP setup Physical KVM-over-IP setup

Why Use a KVM-over-IP Device?

In some testing environments, you might be unable to install a VNC server on your SUT for any of the following reasons:

  • You prefer to use a completely non-invasive approach when automating the SUT.
  • You have security or test requirements prohibiting the installation of a VNC server on the SUT.
  • There is no available VNC server for the SUT's platform, such as with some point-of-sale systems (i.e., IBM 4690) or other systems with specialized operating systems (Solaris, NetWare, Chrome OS, etc.).

In such situations, a KVM-over-IP device allows you to automate your SUT using Eggplant Functional by providing a hardware-based VNC server solution. Many of our customers in the retail and defense sectors use KVM devices to enable automation of their SUTs with Eggplant Functional, but customers from any sector can benefit from the use of a KVM-over-IP device.

Selecting a Device

We highly recommend the use of digital KVM-over-IP devices with Eggplant Functional. Digital KVM devices have DVI or HDMI display inputs, and in most cases, also have USB keyboard and mouse ports. Digital KVM devices natively support SUTs that have digital display and USB mouse and keyboard interfaces. If your SUT only has PS/2 inputs for mouse and keyboard control, please contact your Eggplant technical resource before proceeding with KVM use.

Depending on which KVM-over-IP device you have and which cables it comes with, you might need to purchase additional display adapters, such as an HDMI-to-DVI adapter.

The ADDERLink INFINITY Dual 2112 T is the recommended digital KVM-over-IP device for use with Eggplant Functional. It includes a USB port only (no PS/2) for mouse and keyboard control. The technical specifications of this KVM are discussed on the linked product page.

The ADDERLink Digital IPEPS is a simpler model that many of our customers have had success with, as well.

How it Works

A KVM-over-IP device has a VNC server running on it and an Ethernet port so that remote machines can connect to this VNC server. The device is also physically connected to the keyboard, video, and mouse ports of the SUT using standard cables. The KVM-over-IP device essentially converts the VNC protocol into standard keyboard and mouse signals going into the SUT, and converts video signals coming out of the SUT into the VNC protocol. To a connecting VNC client, such as Eggplant Functional, this KVM-over-IP setup is indistinguishable from a VNC server running directly on the SUT.

KVM-over-IP devices are available in single- or dual-channel models. Single-channel models allow only remote control of the system (i.e., via the VNC server), while dual-channel models allow you to also have a keyboard, video (monitor), and mouse connected directly to the KVM to manually use the SUT. Dual-channel models typically allow you to use the physical console and the VNC server at the same time.

Step by Step: Setting up a KVM-over-IP Device

This section is based on setting up an ADDERLink INFINITY Dual 2112 T, but setup using other KVM-over-IP devices should be similar.

  1. Connect the SUT and the KVM-over-IP device using the supplied mouse and keyboard cables.

    With the ADDERLink Infinity Dual, this is accomplished via a single USB cable connected between the KVM-over-IP device and a USB port on the SUT. A photograph of the available ports on the ADDERLink Infinity Dual is available here.

  2. Connect the SUT and KVM-over-IP device using the supplied display cable. The ADDERLink INFINITY Dual includes a DVI cable and DVI ports. Connect your SUT's DVI connector to the KVM device's primary video input. A photograph of the primary input DVI connector on the ADDERLink INFINITY Dual is available here. If your SUT uses HDMI but not DVI, you will need an adapter to allow a display connection between the KVM device and SUT.

  3. Connect the KVM-over-IP device to an external power source via the included power cable.


    Many KVM devices include an option to power the device over USB only, but we do not recommend this configuration.

  4. Connect your KVM-over-IP to your network using an Ethernet cable. This step is discussed on page 10 of the ADDERLink INFINITY Dual user manual.

    Determine whether the default IP address used by the device will be reachable by the machine running Eggplant Functional over your network. If it will not, follow the initial configuration instructions for your KVM-over-IP device in order to change the IP to a valid IP. Instructions for resetting and configuring the ADDERLink INFINITY Dual can be found on page 17 of the user manual.

  5. Connect to your KVM-over-IP device from Eggplant Functional using the Connection List. Use the IP address determined in step 5 above to set the Server value in the Connection panel. By default, the INFINITY DUAL uses port 5900.

    The Edit Connection window in Eggplant Functional

  6. Once connected, configure your KVM-over-IP device.

    1. Calibrate the mouse cursor and video.

      Configuring a KVM-over-IP device

    2. Configure the mouse to use the Absolute setting under Controls > Mouse Control > Absolute Mode and click Reconnect.

      Configuring the mouse

Tips and Tricks

These tips and tricks can be helpful when using a KVM-over-IP device with Eggplant Functional.

  1. Ensure that the mouse cursor on your KVM-over-IP device is calibrated and configured correctly to accurately mirror the location of the cursor on the Eggplant Functional Viewer window. Failure to configure the cursor correctly will result in the VNC cursor interacting with the wrong UI elements on the screen of the system under test. In particular, check that you are using Absolute Mode. See step 7, above, for more information.

    Improperly configured cursor on the KVM-over-IP VNC server Improperly configured cursor on the KVM-over-IP VNC server

  2. If you notice any issues with the keyboard or mouse interactions with your SUT through the KVM device either during manual control or when running automated scripts, ensure you are using the most recent version of the device firmware. KVM firmware can contain bugs that can prevent interactions with your SUT from behaving consistently, accurately, or efficiently. Firmware downloads and installation instructions can be found on the device manufacturer's website.

  3. Even when the KVM device is calibrated and configured correctly and you have installed the most recent version of the device's firmware, the VNC cursor might lag behind the Eggplant Functional Viewer window cursor. The degree of lag will depend on factors such as network speed and the physical capabilities of the KVM-over-IP device. Use Eggplant Functional’s global properties to ensure that your scripts and the SUT remain in sync. Below are some global properties that you can consider adjusting to ensure the consistency of your scripts. Which of these global properties will be needed in your scripts, and what values they are set to, will depend on the specific needs of your testing environment. For a complete list of these runtime global properties, see Run Options Global Properties.

    • the MouseMoveSpeed: By default the Eggplant Functional cursor jumps between locations rather than moving smoothly between them. Adjusting the MouseMoveSpeed to be slower can improve the VNC cursor’s ability to mirror the Eggplant Functional Viewer window cursor. Try setting the MouseMoveSpeed to 5 to see if this improves the tracking of the cursor. If this helps, experiment with higher values until you find a speed that is as fast and as reliable as possible.
    • the MouseClickDelay: This global property determines the delay between mouse up and mouse down events in a single Click command, and adjusting this value may be important to the success of Click commands against the SUT. If you find that the SUT is not responding to clicks even though the clicks occur in the correct location, try increasing the MouseClickDelay to around .05 or .1 seconds.
    • the RemoteWorkInterval: This global property puts a pause between actions to allow additional processing time on the SUT before the next action is sent. Try increasing the RemoteWorkInterval above the default of .7 seconds if the SUT is generally slow to respond to keyboard and mouse events through the KVM device.
  4. If you see issues with characters being typed multiple times into your SUT when using the TypeText command, try setting the NextKeyDelay global property to 0.

  5. If Eggplant Functional is unable to establish a connection to the KVM-over-IP device:

    • Verify that the IP address used by the KVM-over-IP device is accessible by the Eggplant Functional controller machine over the network.
    • Verify that the Eggplant Functional connection is using the proper IP address and port number specified by the KVM-over-IP device.