本主題會引導您完成一系列腳本支援的步驟,以自動化 Windows HLK 驅動程式、系統和軟體裝置測試。 這可讓您執行 Windows HLK 測試,而不需使用 Windows HLK 使用者介面 (UI)。
建議您手動取消作業,並重新啟動計算機以警示 ObjectModel。 您可能需要使用縮短的測試集合檔案重新執行失敗/已取消的測試,或使用 Windows HLK Studio 手動執行。 此問題將在未來的版本中解決。
在一系列腳本步驟中執行 Windows HLK 測試的程式遵循類似 Windows HLK 快速入門指南的工作流程。

個別步驟如下:
-
Windows HLK 自動化工具必要條件
-
步驟 1:在測試伺服器上安裝控制器和支援程式
-
步驟 2:在測試計算機上安裝 HLK 用戶端
-
步驟 3:在控制器或測試伺服器上建立測試專案定義檔
-
步驟 4:根據控制器或測試伺服器上的專案定義檔產生測試的完整清單
-
步驟 5:篩選控制器上的完整測試清單
-
步驟 6:將篩選的測試清單新增至控制器上的專案定義檔
-
步驟 7:在控制器上執行測試專案
-
步驟 8:在 Excel 中分析測試結果
-
PDEF 參考
開始測試之前,請確定您已熟悉 Windows HLK 自動化概念和硬體需求。 請參閱 Windows HLK 必要條件。
測試伺服器計算機應該與操作系統一起安裝,並如 Windows HLK 必要條件中所述進行設定。 然後,您可以安裝下列程式:
-
Windows HLK。 如需如何安裝 Windows HLK 的詳細指示,請參閱 測試伺服器上的步驟 1:安裝控制器和 Studio。
-
Windows PowerShell 3.0。 請參閱 KB2506143。
-
Microsoft Excel (Excel 2007、Excel 2010 或 Excel 2013)。
-
適用於 Windows XP 的 Office 主要 Interop 元件。
-
將office.dll和Microsoft.Office.Interop.Excel.dll 下載並複製到 %WTTSTDIO%。 使用這些程式來支援 步驟 8:在 Excel 中分析測試結果。
若要確認 Windows HLK 控制器軟體的成功安裝,請檢查測試伺服器上的 C:Program Files (x86)Windows Kits8.1Hardware Certification KitStudio 中的下列程式:
-
hlkexecutionengine.exe
-
Microsoft.Windows.Kits.Hardware.Certification.Management.dll
-
Microsoft.Windows.Kits.Hardware.Certification.Project.dll
-
Microsoft.Windows.Kits.Hardware.Certification.Testcollection.dll
若要確認 Windows PowerShell 3.0 安裝成功,請執行下列動作:
確認 Windows PowerShell 3.0
-
若要開啟 Windows PowerShell 3.0 會話,請在執行 Windows 7 的計算機上開啟 x86 版本,按兩下 [開始],依序按兩下 [所有程式]、[配件]、[Windows PowerShell]、以滑鼠右鍵按兩下 [Windows PowerShell] [x86],然後按兩下 [以系統管理員身分執行]。
若要開啟 Windows PowerShell 3.0 工作階段,請在執行 Windows 8 或 Windows Server 2012 的電腦上開啟 x86 版本,請遵循開始使用 PowerShell 中的指示。
-
輸入
Get-Command -Module HardwareCertification以檢視下列 Windows HLK 自動化 Cmdlet 清單:Export-HwCertTestCollectionToXml
Import-HwCertTestCollectionFromXml
Merge-HwCertTestCollectionFromPackage
Merge-HwCertTestCollectionFromXm
New-HwCertTestCollectionExcelReport
New-HwCertTestCollection
New-HwCertProjectDefinitionFile
-
您可以使用下列命令,選擇性地使用自動接續來設定偵錯訊息輸出:
$DebugPreference = "Continue";
若要在測試系統上安裝 HLK 用戶端,請遵循步驟 2:在測試系統上安裝用戶端中找到的指示。
若要從每個測試計算機的 裝置管理員 找出測試裝置的硬體識別碼或裝置類別,請參閱探索裝置的硬體標識碼和裝置安裝類別。
專案定義檔(也稱為 PDEF)定義測試專案的目標和機器特定部分。 Test Collection File 中定義了 Test 和 Result 特定部分。 這些檔案會一起完整描述專案組態、範圍和結果。
如需 PDEF 檔格式和輔助 PDEF 資訊的描述,請參閱 PDEF 參考。
以下顯示名為 C:TempDefinitionFiledevice-win8client-x64-auto.xml 的測試項目定義檔範例:
<ProjectDefinitionData Controller="controllername" Database="HLKJobs" Timeout="120" User="user">
<Project Name="Project-win8client-x64">
<SchedulerType>AdaptiveOrderOptimized</SchedulerType>
<MultiDeviceTestGroup>true</MultiDeviceTestGroup>
<TestStatusToSkip>Pass</TestStatusToSkip>
<Product Name="Product-win8client-x64" OsPlatform="Windows 8 Client x64" MachinePool="Test">
<Family Name="Family-win8client-x64">
<Target TargetType="Device" Id="HWID"/>
</Family>
<Machine Name="TEST-CLIENT-A" Role="SUT"/>
<Machine Name="TEST-CLIENT-B" Role="SUT"/>
</Product>
<Packages Path="C: emp"/>
</Project>
</ProjectDefinitionData>
下表會定義子項目和屬性,由應該在其中設定的 XML 節點分組。
計畫
產品
系列
Target
機器
套件
您可以使用任何 xml 或文本編輯器,或使用管理工具 New-HwCertProjectDefinitionFile Cmdlet 來建立 PDEF。 如果您使用管理工具 Cmdlet,您可以產生具有下列限制的 PDEF。 您可以使用對 PDEF 檔案架構有效的任何變更,手動或以程式設計方式更新產生的 PDEF xml。
-
產生的 PDEF 只能有單<一 Project> 元素和專案的單<一 Product> 元素。
-
<Packages> 元素的 Path> 屬性必須是空的<,或設定為 [PACKAGES] Token。
-
<Project> 元素的< TestCollectionStatusLocation> 屬性必須設定為空字串。
-
<SchedulerType> 元素必須設定為 AdaptiveResourceOptimized。
-
<Product> 元素的< OsPlatform 屬性必須設定為 OSPlatform> 值,這個值衍生自這個專案指定集區中的第一部計算機。
New- HwCertProjectDefinitionFile Cmdlet 的参數如下所述:
-
OutputAutomatedPdef – 布爾值旗標,可處理下列 PDEF xml 屬性的自動產生:
-
<控制器> = “[MACHINE]
-
<TestCollectionReadLocation> = “[FILTERED_TEST_COLLECTION]
-
<Path> = “[PACKAGES]”
-
-
TestCollectionFilePath – PDEF xml 中 Project> 元素之 TestCollectionReadLocation> 屬性<中儲存<之測試集合 xml 檔案的完整路徑。 如果未提供此值和 OutputAutomatedPdef ,則路徑會設定為空字串。
-
ControllerName – 儲存在 <PDEF xml 之 ProjectDefinitionData> 元素之 Controller> 屬性<中的控制器名稱。 如果未提供此值和 OutputAutomatedPdef ,控制器名稱會設定為目前電腦的名稱。
-
PdefFilePath – 輸出 PDEF xml 檔案的名稱。 如果未提供,則會使用下列格式自動產生路徑:
퇩rofile%\desktop\PDEF_Files\PDEF_{time_date}\PDEF_{os_platform_name}_{time_date}.xml -
ProjectName – 儲存在< PDEF xml 中 Project> 元素之 Name> 屬性<的項目名稱。 如果未提供,則會使用目前的日期時間戳值自動產生名稱。
-
EnableMultiDeviceTest – 布爾值旗標,可處理專案的多重裝置排程,儲存在 PDEF xml 中的 <MultiDeviceTestGroup> 元素中。 如果未指定,則不會啟用多裝置排程。
-
SkipTestStatus – 排程測試的略過模式,儲存在< PDEF xml 中的 TestStatusToSkip> 元素中。 有效值為 Pass、Fail 和 NoData。 如果未提供,預設的略過模式為Pass。
-
EnableIsolateTargets – 布爾值旗標,可為每個探索到的目標建立個別裝置系列。 如果未指定,目標會依裝置類別分組到系列中。
下列兩個參數會指定項目的機器集區。 您只能提供一個參數。 如果您沒有提供參數,或同時提供這兩個參數,您將會收到錯誤。
-
MachineList – 在逗號分隔列表中指定計算機名稱。 所有指定的機器都必須位於相同的現有集區或預設集區中。
-
MachinePool – 現有電腦集區的名稱。
下列六個參數會指定專案的目標類型。 您只能提供一個參數。 如果您沒有提供參數,或提供多個參數,您將會收到錯誤。
-
RunSystemTest – 專案用於測試整個系統。 會產生單 一 TargetType = System 的目標系列。
-
TestAllDevices – 專案用於測試指定電腦上探索到的所有目標。
-
HwIdList – 在逗號分隔列表中指定目標硬體識別符。 清單中每個硬體識別碼都可以部分指定。 在此情況下,會使用部分指定的值作為硬體標識碼格式的子字串來識別相符的硬體識別碼。 字串會比較為不區分大小寫的 ASCII。
-
DriverList – 在逗號分隔列表中指定目標驅動程序的名稱。 目前不支援 UMDF 驅動程式(.DLL)。 這些裝置仍然可以使用 HWID 作為 Windows 裝置類別 GUID 或所有目標的一部分來探索。
-
ContainerIdList – 在逗號分隔列表中指定容器標識碼值。 每個容器識別碼值都必須使用 GUID 格式。
-
ClassIdList – 在逗號分隔列表中指定類別識別符值。 每個類別識別碼值都必須使用 GUID 格式。
您可以使用 Management Tool Cmdlet New-HwCertTestCollection 來產生專案測試目標所需的完整測試清單。 以下是如何在 Windows Powershell 工作階段中使用管理工具 Cmdlet 的範例。 (此步驟是選擇性的。)
New-HwCertTestCollection -ProjectDefinitionFile C:TempDefinitionFiledevice-win8client-x64-auto.xml | Export-HwCertTestCollectionToXml -Output c: empmaster.xml -TestPassIdentifier "TP001"
如果專案定義檔中指定的目標已無法使用,您會收到警告,並持續產生測試集合。 在此情況下,我們建議下列專案取得完整的測試清單:
-
建立專案定義檔的輔助複本,該複本只保留無法使用的目標。 由於測試清單產生時間取決於指定的目標數目,因此強烈建議您只保留先前在輔助複本中執行時無法使用的目標。
-
修正造成無法使用目標的問題;例如,集區中的特定計算機未處於 READY 狀態。
-
使用專案定義檔的輔助複本來產生測試的輔助清單。
-
合併測試的初始和輔助清單。 您可以將 TestCollectionRecord> 元素從輔助清單新增<至初始清單,以手動執行這項操作。
以下提供產生的輸出 xml 檔案範例(c: empmaster.xml)。
<?xml version="1.0" ?>
<ArrayOfTestCollectionRecord
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
mlns:xsd="http://www.w3.org/2001/XMLSchema">
<TestCollectionRecord
Name="Disk Stress (LOGO)"
Guid="738735f7-245a-4b39-9d81-20339ce31fd4"
TargetName="Disk"
TargetId="DiskId"
TargetType="Device"
HlkBuildVersion="10.000.10020.10020"
TestPassIdentifier="TP001"
OsPlatform="Windows 10 Client x64">
<ContentLevelSet>Reliability</ContentLevelSet>
<ContentLevelSet>Certification</ContentLevelSet>
<ScheduleOptionSet>Distributable</ScheduleOptionSet>
<ScheduleOptionSet>MultipleDEvices</ScheduleOptionSet>
<FeatureMapped>Device.Storage.Hd</FeatureMapped>
</TestCollectionRecord>
</ArrayOfTestCollectionRecord>
其中屬性的定義如下:
-
TargetId – 測試計算機上的目標硬體識別碼
-
TargetName – 測試計算機上的目標易記名稱
-
OSPlatform – 指定目標之測試電腦上的 Windows 版本
-
Guid – 偵測到用於測試目標的工作識別碼
-
名稱 -偵測到用來測試目標之作業的易記名稱
-
TestPassIdentifier – 字串值,識別測試通過。
-
TargetType – 專案中測試的產品類型(裝置、系統或篩選條件)
-
功能對應 – 偵測到作業的功能將會測試目標
-
ContentLevelSet – 偵測到用來測試目標之作業的類別
-
ScheduleOptionSet – 測試排程的選項。 有效值為:
-
手動 – 測試在運行時間需要手動動作
-
可 散發 – 您可以針對多部電腦排程測試,並在第一部可用的電腦上執行。
-
MultipleDevices – 測試可以在相同電腦上的多個裝置上同時執行
-
MultipleMachines – 測試可以排程在具有不同角色的多部計算機上執行
-
SpecialConfiguration – 測試需要特殊的計算機設定,才能執行測試
-
-
HLKBuildVersion – 用來產生測試集合的 HLK 版本
您可以使用管理工具 PowerShell Cmdlet Import-HwCertTestCollectionFromXml,依指定的屬性值篩選測試的完整清單。 (此步驟是選擇性的。)產生的輸出 xml 檔案的任何屬性,如步驟 4 中所列,都可用於篩選清單。 輸出測試集合測試記錄應該按照排程的必要順序排列。 在下列範例中, 基本 測試類別用於篩選和排序主要清單。 在 Windows PowerShell 工作階段中輸入下列命令:
Import-HwCertTestCollectionFromXml -Input C:Tempmaster.xml | ? { $_.ContentLevelSet.Contains("Basic") } | sort -Property GUID | Export-HwCertTestCollectionToXml -Output c: empbasic.xml
使用任何文字或 xml 編輯器來更新 PDEF,以新增測試集合輸入 xml 檔案的位置,以及輸出測試結果的位置。 以下提供更新的 PDEF C:TempDefinitionFiledevice-win8client-x64-auto-basic.xml範例。
<ProjectDefinitionData Controller="controllername" Database="HLKJobs" Timeout="120" User="user">
<Project Name="Project-win8client-x64" TestCollectionReadLocation="C: empbasic.xml" TestCollectionStatusLocation="basic_collection_status.xml">
<MultiDeviceTestGroup>true</MultiDeviceTestGroup>
<TestStatusToSkip>Pass</TestStatusToSkip>
<Product Name="Product-win8client-x64" OsPlatform="Windows 8 Client x64" MachinePool="Test">
<Family Name="Family-win8client-x64">
<Target TargetType="Device" Id="HWID"/>
</Family>
<Machine Name="TEST-CLIENT-A" Role="SUT"/>
<Machine Name="TEST-CLIENT-B" Role="SUT"/>
</Product>
<Packages Path="C: emp"/>
</Project>
</ProjectDefinitionData>
其中屬性的定義如下:
-
TestCollectionReadLocation – 篩選測試集合 xml 檔案的路徑
-
TestCollectionStatusLocation – 保存測試結果的輸出 xml 檔案路徑
從命令列執行下列命令:
hlkexecutionengine.exe /Project “C:TempDefinitionFiledevice-win10client-x64-auto-basic.xml” /RunCollection
命令完成之後,會建立下列檔案:
-
在 PDEF 中所定義之 PackagePath 屬性中指定的位置,會針對每個測試回合建立套件檔名.hlkx(請參閱步驟 3:在控制器或測試伺服器上建立測試專案定義檔)。 套件檔名是由 [專案易記名稱] 和 [專案執行的數據與時間] 所組成。
-
結果會顯示在 XML 檔案中。 以下提供範例結果檔案 (C: empbasic_collection_status.xml)。
<?xml version="1.0" ?> <ArrayOfTestCollectionRecord xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" mlns:xsd="http://www.w3.org/2001/XMLSchema"> <TestCollectionRecord Name="Disk Stress (LOGO)" Guid="738735f7-245a-4b39-9d81-20339ce31fd4" TargetName="Disk" TargetId="DiskId" TargetType="Device" HlkBuildVersion="10.000.10020.10020" TestPassIdentifier="TP001" OsPlatform="Windows 8 Client x64"> <ContentLevelSet>Reliability</ContentLevelSet> <ContentLevelSet>Certification</ContentLevelSet> <ScheduleOptionSet>Distributable</ScheduleOptionSet> <ScheduleOptionSet>MultipleDEvices</ScheduleOptionSet> <FeatureMapped>Device.Storage.Hd</FeatureMapped> <Result StartTime="2013-03-14T17:59:45.117-07:00" Status="Passed" FiltersAppliedCount="0" SourcePath="TEST-MACHINE-2A" InstanceId="67" FeatureDetected="Device.DevFund.CDA Device.DevFund.DriverFramework.AllDrivers Device.DevFund.DriverFramework.KMDF Device.DevFund.INF Device.DevFund.Memory Device.DevFund.Reliability.Interrupts Device.DevFund.Reliability Device.DevFund.ReliabilityDisk Device.DevFund.Security Device.DevFund.Server Device.Storage.Hd.Iscsi Device.Storage.Hd.MultipleAccess.PersistentReservation Device.Storage.Hd.PersistentReservation Device.Storage.Hd.ScsiProtocol Device.Storage.Hd" /> </TestCollectionRecord> </ArrayOfTestCollectionRecord>其中屬性的定義如下:
-
StartTime – 測試回合啟動的數據與時間
-
狀態 – 設定為 [通過] 或 [失敗]
-
FiltersAppliedCount – 套用至結果記錄的篩選數目
-
SourcePath – 針對專案執行所產生的套件 .hlkx 檔案檔案路徑
-
InstanceID – 測試計算機上的目標裝置實例識別碼
-
FeatureDetected – 針對測試的目標偵測到的功能
-
您可以隨時停止並重新啟動測試回合。 目前在用戶端電腦上執行的測試將會繼續執行,但不會排程任何進一步的測試。 執行中測試的數目最多等於可用的機器數目,因為排程邏輯不會排入比可用機器更多的測試佇列。 雖然執行測試會繼續執行(而且可以將測試結果傳回 Windows HLK 專案),但 Windows HLK 執行引擎工具所產生的狀態 xml 檔案將不會包含進程停止時所執行之測試的通過/失敗值。 因此,重新啟動專案可能會導致一組測試執行兩次 — 在自動化工具結束時執行一次,並在進程重新啟動時執行一次。 由於早期終止程式通常表示需要調查計算機狀態問題,因此先前排程測試最後一批的重新執行行為是設計方式,而且通常是想要的。
停止機制
您可以在主控台視窗中輸入 Ctrl-C 命令來停止測試程式。 Windows HLK 執行引擎會停止執行新的測試,並開始簡短的清除程式,例如將最終狀態寫入摘要 xml 檔案和執行引擎記錄。
重新啟動機制
程式的基本高階概觀如下:
-
使用 Windows HLK Studio,建立在您停止測試程式之前所執行專案的 .hlkx 套件。
-
編輯 Windows HLK 執行引擎項目定義 xml 檔案,以提供新的輸入和輸出狀態檔。
-
使用專案定義檔重新啟動HlkExecutionEngine.exe。
-
使用 Windows HLK Studio 將兩個部分 HLK 項目合併成新的完整 .hlkx 檔案。
-
執行競爭 .hlkx 檔案上的分析階段,如本檔一節中所述。
此程式的詳細步驟如下:
-
若要建立停止測試執行之前完成之結果的 .hlkx 套件,請啟動 Windows HLK Studio。
-
在 Windows HLK Studio 中,按兩下已停止之項目的項目名稱。 專案名稱與專案 xml 檔中的名稱相同。 (專案 XML 檔可在 下 找到C:UsersLocalAdminUserDesktopPDEF_Files時間戳資料夾中。
-
在 Windows HLK Studio 的 [套件 ] 索引標籤上,按兩下 [建立套件 ] 並儲存套件。
-
因為測試只能在機器位於非預設集區時執行,而且因為 Windows HLK 執行引擎不會等待所有目前執行的測試在完成 Ctrl-C 作業之前完成,因此所有機器都會在 Windows HLK 執行引擎停止之後保留在其現有的電腦集區中。 如果預設集區中指定機器的原始專案 xml 檔案,則必須將用戶端電腦移回預設集區。 您可以使用位於 Windows HLK Studio UI 頂端的 [組態] 功能表,或透過 Windows HLK Manager 應用程式來執行此動作。
-
產生部分 .hlkx 套件之後,您必須更新 Windows HLK 執行引擎項目檔,以準備剩餘的執行。 流覽至 C:UsersLocalAdminUserDesktopPDEF_Files,然後從測試回合尋找正確的時間戳資料夾。 在資料夾中的 xml 檔案集合中,專案 xml 檔案是前面未加上 「Status_」、“FTC_” 或 “TC_” 的專案。 在 [記事本] 或其他文本編輯器中,編輯此檔案,如下所示:
在專案 xml 檔案中,必須編輯兩個字段: TestCollectionReadLocation 和 TestCollectionStatusLocation。 若要讓 Windows HLK 執行引擎工具知道要繼續的位置,先前 的 TestCollectionStatusLocation 值(結果的 xml 輸出檔案)必須成為輸入檔。 將 TestCollectionStatusLocation 的值複製到 TestCollectionReadLocation 值。 然後,設定新的 TestCollectionStatusLocation 值。 TestCollectionStatusLocation 值可以是任何值,例如 “C:UsersLocalAdminUserDesktopPDEF_FilesRerun.xml”。
選擇性地修改 [項目節點 名稱 ] 值,以便稍後在 HLK Studio 中更容易找到專案。 (因為目前名稱值已經使用,Windows HLK 執行引擎將會建立新的項目名稱。
-
若要重新啟動此工具,請使用系統管理員許可權開啟新的命令提示字元視窗。 流覽至 Windows HLK Studio 目錄 (%wttstdio%)。 輸入以下命令:
HlkExecutionEngine.exe /Project <project xml file location> /RunCollection此命令會啟動 Windows HLK 執行引擎,此引擎會使用工具停止之前執行的先前一組測試繼續執行。 執行可以繼續,直到所有測試都完成為止。
-
完成第二組測試之後,您必須將這兩個項目合併在一起。 若要這樣做,請開啟 Windows HLK Studio。 查看最近建立的專案 – 通常是最近的專案是從執行的第二次執行執行(除非其他使用者也在這段期間建立專案)。 或者,如果您變更專案 xml 檔中的專案 Name 值,您可以透過新的 Name 來識別專案。
-
按兩下從第二次執行建立的新專案。 在 [套件] 索引標籤上,按兩下 [合併封裝]。 在 [ 封裝到合併 ] 對話框中,按兩下 [新增 ] 並流覽至第一次執行 HLK 執行引擎所建立的第一個部分 .hlkx 套件。 按兩下 [ 儲存 ],然後按兩下 主視窗中的 [建立套件 ]。
您可以使用管理工具 PowerShell 命令來產生項目的測試結果匯總清單。 然後,您可以在 Excel 中分析匯總的結果。
有兩種方式可以匯總項目的測試結果清單。
-
使用以 XML 為基礎的輸出檔案。 您可以在此處顯示如何從控制器或測試伺服器上開啟的 Windows PowerShell 工作階段合併 XML 型測試結果的範例:
dir -s "c: emp*.xml" | Merge-HwCertTestCollectionFromXml -ValidationXmlPath "C: empmaster.xml" | Export-HwCertTestCollectionToXml -Output "C:Tempmerged_1.xml" -TestPassIdentifier "TP003" dir -s "c: emp*.xml" | Merge-HwCertTestCollectionFromXml -ValidationXmlPath "C: empmaster.xml" | Export-HwCertTestCollectionToXml -Output "C:Tempmerged_2.xml" -TestPassIdentifier "TP004" -
使用專案 .hlkx 輸出檔。 以下顯示如何從控制器或測試伺服器上開啟的 Windows PowerShell 工作階段合併 .hlkx 輸出檔案的範例:
dir -s "c: emp*.hlkx" | Merge-HwCertTestCollectionFromPackage -ValidationXmlPath "C: empmaster.xml" | Export-HwCertTestCollectionToXml -Output "C:Tempmerged_1.xml" -TestPassIdentifier "TP003" dir -s "c: emp*.hlkx" | Merge-HwCertTestCollectionFromPackage -ValidationXmlPath "C: empmaster.xml" | Export-HwCertTestCollectionToXml -Output "C:Tempmerged_2.xml" -TestPassIdentifier "TP004"
當 ValidationXmlPath 指定為 Merge-HwCertTestCollectionFromXml 或 Merge-HwCertTestCollectionFromPackage Cmdlet 的參數時,匯總演算法會驗證主要測試集合中所列的所有測試是否至少有一個針對任何測試集合檔案中匯總指定的結果。 此條件只會針對與 TestPassIdentifier Cmdlet 參數中指定的 TestPassIdentifier 值相同的測試集合進行檢查。 如果這個條件不是 true,匯總就會取消,併發生錯誤。
若要判斷測試階段未執行哪些測試,請將主要測試集合包含在針對匯總指定的測試集合檔案清單中,但未指定 ValidationXmlPath。 在此情況下,會產生輸出匯總的測試集合。 集合包含主要集合中列出的所有測試,不過其中有些測試可能沒有結果。
測試結果匯總清單 (C: empmerged.xml) 包含完整的測試清單資訊。 如果從未執行任何必要測試,匯總的測試結果清單會顯示未執行必要的測試。 由於所有測試結果都會合併,因此使用相同的 TestPassIdentifier 屬性值執行多個測試回合可能會建立不一致的結果報告。 建議您針對每個測試階段使用不同的名稱。
建立測試結果匯總清單之後,您可以在控制器或測試伺服器上的 Windows PowerShell 會話中使用命令來產生 Excel 電子表格。 此處提供將建立 Excel 電子表格報表的命令範例:
New-HwCertTestCollectionExcelReport ("C:Tempmerged_1.xml", "C:Tempmerged_2.xml" ) -ExcelPath 'c: emp
eport.xls' -ResultCount 1
其中 ResultCount 定義為最近結果的最大數目,這會儲存在每個測試的 Excel 報表中。
執行命令來建立 Excel 電子表格報表之後所建立的輸出範例如下所示。

產生的Excel報表將包含下列標題:
-
測試總計 – 此測試階段中的測試總數。
-
總通過 – 此測試階段的結果總數
-
Pass With Filter 總計 – 套用至測試的 errata 篩選的通過總數。
-
總通過百分比 – 通過測試的百分比(總通過/總測試)。
-
總失敗 – 此測試通過中的失敗總數(總測試 – 總通過數)。
-
N-1 改進 – 在這個測試通過與先前的測試通過之間(左方欄),有多少新通過已達成。
-
N-1 回歸 – 在這個測試通過與先前的測試通過之間(左方的數據行),遇到多少新的失敗。
-
N-1 未變更 – 在這個測試通過與先前的測試通過之間(左方的數據行),有多少測試沒有結果的變更。
-
N-1 不比較 – 在這個測試通過和先前的測試通過之間(左方欄),由於測試而沒有比較多少個測試,只有其中一個測試通過。
某些專案需要測試特定資訊,以探索和執行測試。 此資訊包括:
-
測試定義中沒有預設值的測試參數。 您可以在多個位置指定選擇性 <參數> 元素(請參閱 PDEF 架構):
-
在 <Test> 元素底下。 在此情況下,會指定特定測試的參數值。
-
在 <Family> 元素底下。 在此情況下,參數值會套用至系列中所有目標的所有測試,除非它被針對 Test 指定之相同參數的值覆寫
-
在 <Product> 元素下。 在此情況下,參數值會套用至產品中所有目標的所有測試,除非是由針對Family或Test指定之相同參數的值覆寫。
-
-
無法自動偵測到的目標功能。 選擇性 <ManualSelectedFeature> 元素可以在 Target> 元素下<指定。 如果指定,這些功能會與自動偵測到的功能一起參與測試探索和測試集合產生。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:attribute name="User" type="xsd:string"/>
<xsd:attribute name="Controller" type="xsd:string"/>
<xsd:attribute name="Timeout" type="xsd:nonNegativeInteger"/>
<xsd:attribute name="Database" type="xsd:string"/>
<xsd:attribute name="Name" type="xsd:string"/>
<xsd:attribute name="Value" type="xsd:string"/>
<xsd:attribute name="TestCollectionReadLocation" type="xsd:string"/>
<xsd:attribute name="TestCollectionStatusLocation" type="xsd:string"/>
<xsd:attribute name="OsPlatform" type="xsd:string"/>
<xsd:attribute name="MachinePool" type="xsd:string"/>
<xsd:attribute name="Path" type="xsd:string"/>
<xsd:attribute name="Role" type="xsd:string"/>
<xsd:attribute name="TargetType">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:pattern value="((S|s)(Y|y)(S|s)(T|t)(E|e)(M|m))|((D|d)(E|e)(V|v)(I|i)(C|c)(E|e))|((T|t)(A|a)(R|r)(G|g)(E|e)(T|t)(C|c)(O|o)(L|l)(L|l)(E|e)(C|c)(T|t)(I|i)(O|o)(N|n))"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="Id" type="xsd:string"/>
<xsd:attribute name="CrashDumpCopyBack">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:pattern value="((D|d)(I|i)(S|s)(A|a)(B|b)(L|l)(E|e)|(M|m)(I|i)(N|n)(I|i))|(K|k)(E|e)(R|r)(N|n)(E|e)(L|l)|((F|f)(U|u)(L|l)(L|l))"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:element name="ProjectDefinitionData">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Project" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute ref="User" use="optional"/>
<xsd:attribute ref="Controller" use="required"/>
<xsd:attribute ref="Timeout" use="optional" default="120"/>
<xsd:attribute ref="Database" use="optional" default="HLKJobs"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Project">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="MultiDeviceTestGroup" minOccurs="0" maxOccurs="1"/>
<xsd:element ref="TestStatusToSkip" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="Product" minOccurs="1" maxOccurs="unbounded"/>
<xsd:element ref="Packages" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
<xsd:attribute ref="Name" use="required"/>
<xsd:attribute ref="TestCollectionReadLocation" use="optional"/>
<xsd:attribute ref="TestCollectionStatusLocation" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="MultiDeviceTestGroup" type="xsd:Boolean"/>
<xsd:element name="TestStatusToSkip">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:pattern value="((P|p)(A|a)(S|s)(S|s))|((F|f)(A|a)(I|i)(L|l))|((N|n)(O|o)(D|d)(A|a)(T|t)(A|a))"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Product">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Family" minOccurs="1" maxOccurs="unbounded"/>
<xsd:element ref="Machine" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="Parameter" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute ref="Name" use="required"/>
<xsd:attribute ref="OsPlatform" use="required"/>
<xsd:attribute ref="CrashDumpCopyBack" use="optional"/>
<xsd:attribute ref="MachinePool" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Family">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Target" minOccurs="1" maxOccurs="unbounded"/>
<xsd:element ref="Parameter" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute ref="Name" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="ManualSelectFeature" type="xsd:string"/>
<xsd:element name="Target">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="ManualSelectFeature" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="Test" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute ref="TargetType" use="required"/>
<xsd:attribute ref="Id" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Test">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Parameter" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute ref="Id" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Parameter">
<xsd:complexType>
<xsd:attribute ref="Name" use="required"/>
<xsd:attribute ref="Value" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Machine">
<xsd:complexType>
<xsd:attribute ref="Name" use="required"/>
<xsd:attribute ref="Role" use="optional"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Packages">
<xsd:complexType>
<xsd:attribute ref="Path" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
HLK 工具技術參考











