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

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

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

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

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

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

15
задан Paul Stovell 26 August 2010 в 09:14
поделиться

2 ответа

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

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

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

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

Думаю, это все. Запутанно, но работает. Надеюсь, кто-то из них поможет вам.

7
ответ дан 1 December 2019 в 05:02
поделиться

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

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

Я полагаю, вы также рассматривали удаленное взаимодействие Powershell?

2
ответ дан 1 December 2019 в 05:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: