Поделиться через


Выполнение на нескольких компьютерах

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 и начинает выполнение тестов.