Единственные различия в работе на виртуальной машине по сравнению с работой на реальной машине, на которые вам, возможно, нужно обратить внимание, - это реальные аппаратные различия. Преимущество использования виртуальной машины заключается в том, что все комбинации ОС будут работать на одном и том же виртуальном оборудовании - на одном и том же VLAN-адаптере VLAN, одной и той же «сетевой карте» VANILA и т. Д. Однако для тестирования это также является недостатком, поскольку это означает, что вы не проводите тестирование на оборудовании реального мира.
JavaScript, работающий в браузере, обычно не должен заботиться о вашем оборудовании, но могут быть ситуации, когда артефакты могут быть заметны. Если ваш JavaScript использует расширенные функции браузера, такие как плагины, элементы управления ActiveX, или функции отображения, такие как Flash, Silverlight, OpenGL или Canvas, или что-либо еще, или такие вещи, как воспроизведение видео или аудио, ваш код может быть чувствителен к аппаратным различиям между компьютерами, которые могут не проявляется при тестировании исключительно на однородных виртуальных машинах. Точно так же, если ваш JavaScript выполняет довольно низкоуровневые операции проводного протокола (отправка пакетов данных через XmlHttpRequest), различия между стеком виртуальной сети виртуальной машины и фактическим оборудованием и драйверами сетевой карты могут привести к изменениям во времени прибытия пакетов, потерянным пакетам или, возможно, даже неупорядоченные пакеты.
Наилучший вариант действий IMO - проводить большую часть вашего тестирования, возможно, даже все ваши автоматические тесты, на виртуальных машинах просто потому, что это проще в управлении и более экономично, а также планировать и планировать некоторые тесты. на сильно различающемся оборудовании - как супер быстрые, так и супер ужасные видеокарты, встроенные mobo audio, а также звуковые карты сторонних производителей, системы uniproc и multiproc и т. д.