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


Экспорт задания HLK, завершилось сбоем

Теперь можно экспортировать задание, завершившемся сбоем, чтобы его можно было запустить на компьютере за пределами полной среды HLK. Для разработчиков драйверов эта функция позволяет автономно выполнять тест, чтобы упростить процесс воспроизведения сбоев.

Экспортированная тестовая среда тесно имитирует выделенную среду HLK. Однако это не гарантирует идентичное выполнение теста. Пользователю может потребоваться выполнить любое из следующих обстоятельств:

  • Тестовая инфраструктура не обрабатывает перезагрузки. Во многих случаях пользователю придется вручную перезапустить систему.
  • Возможны случаи, когда тест перезагружает систему через инфраструктуру клиента HLK в тестовой задаче. Например, эти перезагрузки не могут быть записаны в пакетном файле как запросы или перезагрузки во время автономного выполнения.
  • Файлы журналов без уникальных имен, записанные в одно и то же расположение разными задачами, могут привести к перезаписи некоторых из этих файлов.
  • Параметры, записанные в пакетный файл, могут отличаться при выполнении в разных системах. Например, идентификаторы экземпляров оборудования могут отличаться для одного и того же оборудования и драйвера при перемещении в другую систему, и пользователю придется найти соответствующее целевое значение (например, от диспетчер устройств) и обновить пакетный файл с правильным значением.
  • Тесты, зависящие от связанного задания конфигурации для настройки системы, могут быть подготовлены неправильно, так как HLK экспортирует только само тестовое задание.

Не все результаты можно экспортировать. В следующем списке описаны ограничения в тестах и результатах тестов, которые можно экспортировать:

  • Тесты должны быть выполнены и завершены с состоянием "Пройдено", "Сбой" или "Отменено".
  • Тестовый запуск должен успешно возвращать журналы инфраструктуры из клиентской системы. Эти файлы необходимы для экспорта теста.
  • Можно экспортировать только тесты отдельных компьютеров. Тесты, для выполнения которых требуется несколько компьютеров, нельзя экспортировать.
  • Тесты должны выполняться с помощью классического клиента HLK. Тестовые запуски в системах Windows Core или прокси-клиентах не экспортируются.
  • Тесты, помеченные как не экспортируемые из-за известных проблем с инфраструктурой или по другим причинам, не экспортируются.
  1. На вкладке Результаты в HLK Studio щелкните правой кнопкой мыши неудачный результат и выберите Экспорт тестового запуска.

контекстное меню при щелчке правой кнопкой мыши на сбой результата теста

  1. Откроется диалоговое окно сохранения. Сохраните экспортируемое задание на флэш-накопителе или в другом внешнем расположении, чтобы вы могли выполнить экспортируемый тест на другой компьютер. Один и тот же тест нельзя экспортировать в одно и то же расположение более одного раза. Диалоговое окно подтвердит, что экспорт завершен.

Диалоговое окно успешности после экспорта результата теста

  1. Двоичные файлы теста и пакетный файл, необходимые для выполнения теста в автономной системе, экспортируются в указанный каталог. Экспортируемый тест сохраняется в подкаталоге с именем и архитектурой неудачного задания. Компоненты инфраструктуры, которые необходимо установить для запуска теста, сохраняются в подкаталоге Infrastructure вместе с именем архитектуры, на которую нацелена эта инфраструктура.

Примечание

  Компоненты инфраструктуры следует устанавливать в целевой системе только один раз. Не нужно переустанавливать эти компоненты для каждого неудачного задания.

Например, сохранение неудачного задания x64 под названием Set Render Target on the root of drive E:\ экспортирует папку заданий и установщик инфраструктуры, используя следующую структуру папок:

E:.
├───Infrastructure(X64)
└───Set_Render_Target(X64)
    ├───CoreClr
    ├───MinTe
    │   └───CoreClr
    ├───NetFx2.0
    ├───NetFx4.5
    ├───verifysupportfiles
    │   ├───CoreClr
    │   ├───MinTe
    │   │   └───CoreClr
    │   ├───NetFx2.0
    │   └───NetFx4.5
    └───[windir]
        └───system32 

Экспортируемый тестовый пакет содержит несколько файлов и вложенных папок, включая следующие:

  • readme1st.txt — содержит сведения о выполнении экспортированного теста.
  • run.cmd — пакетный файл, используемый для запуска теста.
  • двоичные файлы и другие файлы, необходимые для запуска теста
  • setup(architecture).exe — установка исполняемого файла, который используется для установки инфраструктуры.
  1. Переведите экспортированную папку тестов на новый компьютер для тестирования. Путь не должен содержать пробелов, так как это приведет к сбою некоторых тестов.

  2. Выполните (сохранить папку)\Infrastructure(architecture)\setup(architecture).exe, чтобы установить компоненты инфраструктуры перед запуском теста. Установщик инфраструктуры отобразит диалоговое окно с указанием успешной установки компонентов.

Примечание

Компоненты инфраструктуры следует устанавливать в целевой системе только один раз. Не нужно переустанавливать эти компоненты для каждого неудачного задания.

Примечание

Архитектура установщика и задания должны соответствовать архитектуре целевой системы, в которой он установлен.

  1. В пакетном файле в папке (папка сохранения)(имя задания)(архитектура) можно внести любые необходимые изменения в пакетный файл для запуска на тестовом компьютере. В качестве примеров можно внести следующие изменения:
  • Комментирование строк, которые не влияют на сбой задания
  • Изменение значений параметров в соответствии с компьютером, на котором выполняется экспортируемый тест. Например, идентификатор экземпляра одного и того же оборудования часто отличается в двух отдельных системах, поэтому его необходимо обновить перед запуском экспортированного теста.
  • Добавление команд для подключения отладчика

Примечание

Если в задаче отображается сообщение об ошибке "Этот тест не удается выполнить, так как он может перезагрузить компьютер"., необходимо изменить run.cmd и добавить /rebootstatefile=(some_file_name) в командную строку задачи, завершиющейся сбоем, как показано в примере ниже:

cmd /c TE.exe /inproc /enablewttlogging /appendwttlogging devfund_pcirootportsurpriseremovetest_wlk_certification.dll
/p:"MultiDeviceHardwareIdSdelQueryHardwareID=!MultiDeviceHardwareIdSdelQueryHardwareID!"
/p:"MultiDeviceInstanceIdSdelWDKDeviceID=!MultiDeviceInstanceIdSdelWDKDeviceID!" /p:"DQ=!DQ!"
/p:"TestCycles=!TestCycles!" /p:"IOPeriod=!IOPeriod!" /p:"WDTFREMOTESYSTEM=!WDTFREMOTESYSTEM!"
/p:"Wpa2PskAesSsid=!Wpa2PskAesSsid!"
/p:"DriverVerifierAdditionalDrivers=!DriverVerifierAdditionalDrivers!"
/p:"DriverVerifierExcludedFlags=!DriverVerifierExcludedFlags!"
/p:"DriverVerifierCustomizeConfiguration=!DriverVerifierCustomizeConfiguration!"
/rebootStateFile=rebootstatefile.xml
  1. Завершив внесение изменений, запустите командную строку с правами администратора, перейдите в тестовый каталог и выполните run.cmd. Каждая задача в пакетном файле связана с номером задачи, который можно использовать в качестве отправной точки при запуске пакетного файла. По умолчанию выполнение приостанавливается между задачами. Поддерживаются следующие режимы выполнения:
  • "Выполнить" без параметров начинает выполнение в начале пакетного файла с паузой между каждой задачей.
  • "Выполнить 5" запустит пакетный файл и переходит к задаче 5.
  • Запуск fast запускает пакетный файл в быстром режиме (без паузы между задачами) в начале.
  • "Выполнить 5 FAST" запустит пакетный файл в быстром режиме (без паузы между задачами) на задаче 5.
  • RebootResume запустит пакетный файл с последней перезагрузки с момента последнего выполнения скрипта. Также поддерживается флаг FAST.
  • RerunLast запустит пакетный файл из команды, которая выполнялась при последнем выходе пакетного файла. Эту команду можно использовать для повторного запуска задачи несколько раз, нажав клавиши CONTROL+C, чтобы выйти из скрипта во время задачи, и выполнив rerunlast.cmd, чтобы повторно выполнить предыдущую команду. Также поддерживается флаг FAST.
  1. После выявления и устранения проблемы, которая приводит к сбою теста, можно развернуть исправление и убедиться, что задание успешно выполнено в среде HLK.

Примечание

Вы не можете импортировать успешные результаты обратно в среду HLK. Задание необходимо повторно запустить из среды.