Forum Discussion

scott_unten's avatar
scott_unten
Occasional Contributor
11 years ago
Solved

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 Micro...
  • hlalumiere's avatar
    11 years ago
    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.