Forum Discussion

scott_unten's avatar
scott_unten
Occasional Contributor
12 years ago

TestComplete limitations on MS Virtual Server or PC

Hi, I'm considering running TestComplete on Microsoft's Virtual Server or Virtual PC, so I'm trying to gather some input from users that have used TestComplete on Microsoft Virtual Server and/or Microsoft Virtual PC.  What types of limitations or challenges did you face?  Thanks in advance.
  • I don't use MS virtualization, but I do manage a bank of 45 test VMs on 10 VMWare ESXi servers. There are no real limitations incurred from running TC on a VM, although TC takes up quite a bit of memory and thus forces you to have fewer VMs per machine.



    How well it will perform depends on your ability to size and configure your VMs and hypervisor properly. There are a lot of small particularities in configuring a VM (and its host) that will dramatically affect performance. The biggest bottlenecks are storage speed and memory amount. From my experience, it is definitely worth it to invest in a fast SAN array (NOT the cheap NAS units you can buy for a couple of hundred bucks!) and an extra SSD for scratch when building the host. For the VM, you will generally want to allocate around 2GB per VM for Windows OSes (XP can do fine with 1.5GB), and reserve about 100MHz of processor per VM minimum. Try to see how many VMs you can fit per machine for the amount of memory you have, and then divide half the total CPU MHz you have across your VMs. For example on a server with 20GB RAM and 2x 4-cores 3GHz Xeons (VMWare would display it as 24GHz of CPU total) , you can run 10 VMs with 2GB each concurrently (more if you have a fast scratch disk and use VMWare's overcommit technology, although I wouldn't recomment doing so with a regular mechanical HDD...), so 24GHz / 2 / 10 = 600MHz you can reserve for each VM as a minimum, and keep the rest floating. Make single-core VMs, always, unless it's a production VM for a server or something. Test VMs don't really need a lot of power, and making a VM using more than one virtual core will cause stalls where one VM is waiting for two free virtual cores to be available because the others are using theirs but just barely.



    Anyways what I am trying to say is if your test environment is well made and maintained, TC won't have any serious issue with running on a VM.
  • hlalumiere's avatar
    hlalumiere
    Regular Contributor
    I don't use MS virtualization, but I do manage a bank of 45 test VMs on 10 VMWare ESXi servers. There are no real limitations incurred from running TC on a VM, although TC takes up quite a bit of memory and thus forces you to have fewer VMs per machine.



    How well it will perform depends on your ability to size and configure your VMs and hypervisor properly. There are a lot of small particularities in configuring a VM (and its host) that will dramatically affect performance. The biggest bottlenecks are storage speed and memory amount. From my experience, it is definitely worth it to invest in a fast SAN array (NOT the cheap NAS units you can buy for a couple of hundred bucks!) and an extra SSD for scratch when building the host. For the VM, you will generally want to allocate around 2GB per VM for Windows OSes (XP can do fine with 1.5GB), and reserve about 100MHz of processor per VM minimum. Try to see how many VMs you can fit per machine for the amount of memory you have, and then divide half the total CPU MHz you have across your VMs. For example on a server with 20GB RAM and 2x 4-cores 3GHz Xeons (VMWare would display it as 24GHz of CPU total) , you can run 10 VMs with 2GB each concurrently (more if you have a fast scratch disk and use VMWare's overcommit technology, although I wouldn't recomment doing so with a regular mechanical HDD...), so 24GHz / 2 / 10 = 600MHz you can reserve for each VM as a minimum, and keep the rest floating. Make single-core VMs, always, unless it's a production VM for a server or something. Test VMs don't really need a lot of power, and making a VM using more than one virtual core will cause stalls where one VM is waiting for two free virtual cores to be available because the others are using theirs but just barely.



    Anyways what I am trying to say is if your test environment is well made and maintained, TC won't have any serious issue with running on a VM.
  • hlalumiere's avatar
    hlalumiere
    Regular Contributor
    One final remark would be to differentiate the types of virtualization technologies. VMWare ESXi, Citrix Xen, and Microsoft Hyper-V are Type-1 hypervisors (sometimes called "bare-metal"...), meaning they are not hosted, running on top of another OS, they talk directly to the hardware. I know you will say Hyper-V runs on Windows, but the Hyper-V technology is tied in directly to the Windows hardware abstraction layer, and is considered type 1. Microsoft Virtual Server, VMWare Workstation, VirtualBox, etc... are all type-2 hypervisors, meaning they have to talk to the host OS, and thus do not perform as well. Microsoft Virtual Server is also discontinued, and has been effectively replaced with Hyper-V, so I definitely wouldn't invest in that, waste of hardware....
  • scott_unten's avatar
    scott_unten
    Occasional Contributor
    Hi Hugo,



    Thank you very much for your very detailed answer!  It should help us in setting up our VM.



    Tanya,



    Thank you for prompting other users for an answer.



    Best regards,

    Scott
  • AlexKaras's avatar
    AlexKaras
    Champion Level 3
    Hugo,

    Great reply!



    Scott,

    I think that Hugo's reply is equally applicable for the MS virtualization as well, in the sense that if you have a fine-tuned virtual environment, then TestComplete works on it almost like on the regular physical box. So you should invest in a good administrator experienced in virtual technologies.

    Another story is that MS Virtual Server (Virtual PC is an old desktop platform and should not be counted seriously unless you are looking for a local virtual environment for one or two virtual machines running simultaneously. And even in this case I would recommend to consider VirtualBox by Oracle instead.) is less prefered then VMWare (without considering the price). MS HyperV for the latest MS OSes might be not bad option as well.

    Also note, that for virtual environments you will need floating but not node-locked licenses for TestComplete/TestExecute.

  • hlalumiere's avatar
    hlalumiere
    Regular Contributor
    As far as price goes, VMWare ESXi is completely free (with some limitations, the worst one being no vCenter and no remote management API; I believe they removed all physical host limitations in v5.5...), and it is the same hypervisor they use in their enterprise-level products, so it is pretty hard to beat for a small cluster of individually managed servers. If your setup is a bit more elaborate you will want at least a basic paid license, for centralized management through vCenter.
  • scott_unten's avatar
    scott_unten
    Occasional Contributor
    Thank you Alexei and Hugo.  I'm learning a lot from this forum and your posts.