Стратегия автоматического тестирования пользовательского интерфейса на удаленных виртуальных машинах - PullRequest
15 голосов
/ 26 августа 2010

Я использую TeamCity для своих сборок CI и хочу настроить вторую сборку для запуска автоматических тестов пользовательского интерфейса на виртуальных машинах Windows XP и Windows 7.

Представьте, что сборка работает следующим образом:

  1. Компиляция, запуск модульных тестов и т. Д.
  2. Подготовка MSI с использованием WiX
  3. Копирование MSI вцелевые тестовые машины
  4. Удаленно выполнять MSI
  5. Копировать код тестового жгута на удаленный компьютер
  6. Выполнить тесты
  7. Завершение сборки

Автоматизированные тесты пользовательского интерфейса написаны с использованием NUnit и должны запускаться непосредственно на тестовой виртуальной машине (они не могут запускаться удаленно).Важно, что если тесты не пройдены, они появятся в журнале сборки TeamCity и сборка завершится неудачно.Я бы предпочел не устанавливать VS или агенты сборки TeamCity ни на одной из тестовых виртуальных машин.

Похоже, что большая часть этого должна быть возможна с использованием psexec.exe .Есть ли альтернативные (желательно с открытым исходным кодом) инструменты, на которые мне следует обратить внимание?

Ответы [ 2 ]

7 голосов
/ 27 августа 2010

делает глубокий вдох

Мы искали что-то, чтобы помочь нам с нашими автоматизированными тестами пользовательского интерфейса. Мы используем ranorex для тестирования пользовательского интерфейса и TeamCity / Msbuild для выполнения тестов.

Мы никогда не находили никаких инструментов, которые могли бы нам помочь (я постоянно присматриваю за некоторыми, поэтому буду следить за этой темой), но вот что мы сделали вместо этого.

  1. Сервер CI копирует установочные файлы и тестовые сценарии на хост-сервер тестирования.
  2. Затем сервер CI запускает пользовательское приложение на хост-сервере тестирования, предоставляя имя виртуальной машины для запуска.
  3. Затем тестовый хост-сервер запускает программное обеспечение виртуальной машины, используя Virtual PC.exe -singlepc -pc vhdname.vhd -launch, и ожидает его выключения (после того, как он выполнит свои тесты).
  4. ВМ извлекает файлы установки и сценарии из сетевого расположения и выполняет.
  5. После выполнения тестов он возвращает результаты в сетевое расположение и отключается.
  6. Элемент управления возвращается в пользовательское приложение.
  7. Элемент управления возвращается на сервер CI, который по результатам определяет, прошел он или нет (и обновляет пользовательский интерфейс, чтобы разработчики были осведомлены о результате).
  8. Результаты собираются как артефакты в TeamCity и помечаются в Svn.

Я думаю, это все. Его запутанный, однако, это работает. Надеюсь, кто-то из вас поможет вам.

2 голосов
/ 26 августа 2010

Джефф Браун из команды Gallio говорит о инструменте под названием Архимед , который он планирует написать для поддержки такого рода требований. Это звучит многообещающе, но я не думаю, что в этом был достигнут большой прогресс.

Тем временем в проекте Gallio есть нечто, называемое VM Tool , которое может делать то, что вы хотите. Он предоставляет команды для остановки, запуска и создания снимков виртуальных машин и, что более важно, для копирования файлов туда-сюда и выполнения команд.

Полагаю, вы также рассмотрели Powershell Remoting ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...