Выполнение на нескольких компьютерах
TAEF поддерживает возможность выполнения Te.exe на одном компьютере, но выполнение тестов на отдельном компьютере. TAEF проверяет подлинность, авторизует и развертывает необходимые двоичные файлы для выполнения тестов и записывает всю информацию обратно в исходную консоль.
Необходимые условия
Для удаленного выполнения тестов необходимо выполнить следующие требования.
- На целевом компьютере необходимо установить и запустить Te.Service (x86 или x64).
Выполнение с учетными записями домена
- Учетная запись домена должна быть администратором или членом локальной группы "Удаленные пользователи TAEF" на целевом компьютере.
Выполнение с учетными записями, не относящиеся к домену
Локальная (не доменная учетная запись) должна существовать с одинаковыми именем пользователя и паролем на обоих компьютерах.
Этот пользователь должен быть членом локальной группы "Удаленные пользователи TAEF" на целевом компьютере.
На хост-компьютере локальный пользователь может выполнить Te.exe или добавить универсальные учетные данные для локального пользователя в диспетчер учетных данных.
cmdkey /generic:<targetmachine> /user:<user_name> /pass:[PLACEHOLDER]
Если вы работаете на компьютере, присоединенном к домену, компьютер, присоединенный к домену, должен иметь исключение границ IPSec.
Удаленное выполнение тестов
/runOn:
Чтобы выполнять тесты удаленно, необходимо указать параметр /runOn:<имя> компьютера для Te.exe вместе с остальными командами. При выполнении предварительных требований остальное взаимодействие с пользователем будет таким же, как и при локальном выполнении тестов. Все выходные данные журнала будут сохранены или записаны на локальный компьютер.
Пример:
te unittests\wex.common.tests.dll /runon:TAEFTest1
- Отправляет все необходимые двоичные файлы для теста на целевой компьютер (TAEFTest1) и удаленно выполняет все тесты TAEF, существующие в wex.common.tests.dll, при входе в консоль.
Если не удается подключиться к удаленному компьютеру из-за 0x800706BA HRESULT и вы уверены, что правильно написали имя компьютера, попробуйте использовать IP-адрес компьютера или параметр /disableTimeouts . Иногда задержка DNS может быть достаточно большой, чтобы время ожидания попытки подключения истекло.
Примечание: Если команда /runOn: указана впервые, может потребоваться нажать кнопку Разблокировать в диалоговом окне исключения брандмауэра для Te.exe.
Тестовые зависимости
Te.exe автоматически определяет все собственные и управляемые зависимости модуля теста и отправляет их на удаленный компьютер вместе с тестовой библиотекой DLL. При этом не будут исключены системные двоичные файлы, а также все библиотеки COM, необходимые для тестирования.
Вы можете вручную указать дополнительные зависимости теста с помощью параметра командной строки /TestDependencies в виде списка файлов или каталогов для копирования с разделителями точкой с запятой.
Файлы
Каждая спецификация файла может содержать подстановочные знаки (test.txt, test*.dll и т. д.). Пример:
te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:*verification*.jpg;mysample.txt
- Отправляет все необходимые двоичные файлы для теста в TAEFTest1, а также все найденные файлы, соответствующие файлам, указанным в параметре /TestDependencies .
Directories
TAEF поддерживает рекурсивный поиск каталогов, которые существуют в каталоге или ниже каталога, содержащего тестовый двоичный файл. Пример:
te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\...
- Отправляет все необходимые двоичные файлы для теста в TAEFTest1, а также все файлы и каталоги в каталоге unittests или ниже его. TAEF сохраняет иерархию каталогов.
_ te unittests\wex.common.tests.dll /runon:TAEFTest1 /TestDependencies:unittests\*.jpg...
- Отправляет все необходимые двоичные файлы для теста в TAEFTest1, а также все jpg-файлы в каталоге unittests или ниже его. TAEF сохраняет иерархию каталогов.
Примечание: Если указать рекурсивный или не рекурсивный поиск каталога, который не существует в тестовом каталоге или под ним , все файлы будут скопированы на удаленный компьютер, но иерархия каталогов будет преобразована в плоскую структуру.
Вы можете указать тестовые зависимости с помощью метаданных DeploymentItem.
Контекст пользователя
По умолчанию TAEF пытается выполнить тесты на удаленном компьютере с контекстом пользователя. Это делается следующим образом:
- Перечисление всех активных сеансов на удаленном компьютере и поиск сеанса, который принадлежит вам.
Если TAEF находит сеанс, принадлежащий вам, на удаленном компьютере, он запускает тесты в этом сеансе (на этом рабочем столе и т. д.).
Примечание: Это не обязательно будет сеанс консоли. Это может быть сеанс удаленного рабочего стола.
Если TAEF не находит сеанс, принадлежащий вам на удаленном компьютере, он запускает тесты от имени пользователя, выполнившего вход в сеанс консоли (на этом рабочем столе и т. д.).
Наконец, если у вас нет сеанса на удаленном компьютере и никто не вошел в сеанс консоли, TAEF запустит тесты в сеансе 0 (неинтерактивном).
Запуск от имени
Если указать значение /runAs в дополнение к параметру /runOn, TAEF использует указанные выше эвристические методы в дополнение к тем, которые необходимы для выполнения параметра /runAs . Пример:
te unittests\wex.common.tests.dll /runon:TAEFTest1 /runas:system
- Выполняет все тесты TAEF, существующие в wex.common.tests.dll в TAEFTest1 с системной учетной записью.
Принцип работы
- Te.exe подключается к экземпляру Te.Service, запущенному на удаленном компьютере.
- проверка подлинности Windows (Согласование) выполняет проверку подлинности в Te.Service.
- Te.Service авторизует вас, проверяя, что вы являетесь администратором или членом локальной группы "Удаленные пользователи TAEF" на удаленном компьютере.
- Te.Service создает каталог в разделе RemoteTests с тем же именем, что и у тестовой библиотеки DLL.
- Te.exe создает список файлов, необходимых для выполнения тестов на удаленном компьютере. В этот список входят:
- Необходимые двоичные файлы TAEF
- Все собственные и (или) управляемые двоичные зависимости для тестовой библиотеки DLL (за исключением системных двоичных файлов)
- Все дополнительные файлы, указанные в параметре /TestDependencies
- Te.exe отправляет список тестовых зависимостей вместе с CPC для каждого файла в Te.Service.
- Te.Service ищет каждый файл на удаленном компьютере и сравнивает значения CRC. Все совпадения удаляются из списка, а список отправляется обратно клиенту.
- Если в списке зависимостей остались файлы, Te.exe отправляет каждую зависимость в Te.Service.
- Te.Service сохраняет их в каталоге <>Te.Service\RemoteTests\<test dll name>.
- Te.exe запрашивает у Te.Service запуск нового экземпляра Te.ProcessHost.exe на удаленном компьютере с использованием правильного контекста пользователя.
- Te.exe подключается к удаленному экземпляру Te.ProcessHost.exe и начинает выполнение тестов.