Bagikan melalui


Pengujian Penulisan di AXE

TAEF mendukung pengujian penulisan yang dijalankan dengan Mesin Eksekusi Penilaian (AXE).

Dukungan AXE di TAEF memungkinkan TAEF untuk menjalankan manifes penilaian AXE. Ini terutama dirancang untuk membungkus tes warisan, ditulis sebagai BARIS perintah EXEs, ke dalam manifes penilaian AXE berbasis XML. Dengan cara ini, tes warisan ini menjadi dapat dieksekusi dengan TAEF tanpa harus menulis ulang pengujian ke tes asli, terkelola, atau skrip TAEF.

Tata Letak Pengujian AXE

Meskipun file pengujian TAEF reguler dapat berisi beberapa kelas dan pengujian pengujian, pengujian TAEF AXE (pengujian yang ditentukan oleh manifes penilaian AXE) hanya dapat berisi satu pengujian karena manifes membungkus satu yang dapat dieksekusi. Dengan demikian, saat melihat pengujian dalam file pengujian TAEF AXE, Anda akan selalu melihat bahwa file pengujian (yang merupakan manifes penilaian AXE yang Anda lihat), berisi satu kelas pengujian dan satu pengujian:

te Examples\AXE.Basic.Examples.manifest /list
Test Authoring and Execution Framework v2.7 Build 6.2.7918.0 (1320) For x64


        D:\enddev2.binaries.amd64chk\Test\CuE\TestExecution\Examples\AXE.Basic.Examples.manifest
            Basic
                Basic::Basic

Pengujian AXE juga tidak mendukung metode penyiapan atau pembersihan apa pun.

Penulisan Tes AXE

Untuk pengujian AXE, TAEF menggunakan format file manifes penilaian AXE.

File pengujian AXE minimal

Skema manifes penilaian AXE dirancang untuk mendukung deskripsi penilaian kompleks yang sangat kaya untuk skenario canggih. Namun, manifes juga bisa sangat sederhana karena ada sangat sedikit simpul wajib. Contoh berikut menunjukkan manifes minimal yang menyertakan semua tag wajib.

1<?xml version="1.0" encoding="utf-8"?>
2<AxeAssessmentManifest xmlns="http://www.microsoft.com/axe/assessment/manifest">
3  <VersionedId>
4    <Guid>{ABCBFDE6-D731-4030-9049-E7CAAB6A6EEE}</Guid>
5    <Version>
6      <Major>1</Major>
7      <Minor>0</Minor>
8      <Build>0</Build>
9      <Revision>0</Revision>
10    </Version>
11  </VersionedId>
12  <MinimumAxeVersionRequired>
13    <Version>
14      <Major>1</Major>
15      <Minor>0</Minor>
16      <Build>1</Build>
17      <Revision>0</Revision>
18    </Version>
19  </MinimumAxeVersionRequired>
20  <Description>
21    <ProgrammaticName>Basic</ProgrammaticName>
22    <DisplayName>Basic Examples</DisplayName>
23    <ToolTip>Sample Basic Examples Assessment Tooltip</ToolTip>
24  </Description>
25  <Meta>
26    <ExitValueMeaning> <ZeroIsSuccess/> </ExitValueMeaning>
27  </Meta>
28  <Execution>
29    <CreateProcess>
30      <ApplicationName>AssessmentSample.exe</ApplicationName>
31    </CreateProcess>
32  </Execution>
33</AxeAssessmentManifest>

File penilaian pengujian AXE adalah file XML. Jadi, dimulai dengan header XML biasa (baris 1).

Baris 2 mengidentifikasi file XML sebagai manifes AXE.

Baris 3 - 10 memberikan tes identitas dan versi yang dapat digunakan untuk mengidentifikasi pengujian secara unik.

Baris 12 - 19 tentukan versi minimum AXE yang diperlukan untuk menafsirkan manifes ini dan menjalankan pengujian.

Baris 20 - 24 memberikan tes nama yang dapat dibaca manusia dan deskripsi tipsalat singkat. Perhatikan bahwa saat Anda melihat properti pengujian, nama kelas pengujian dan nama pengujian Anda akan sesuai dengan nilai elemen ProgrammaticName :

D:\enddev2.binaries.amd64chk\WexTest\CuE\TestExecution>te Examples\AXE.Basic.Examples.manifest /list
Test Authoring and Execution Framework v2.7 Build 6.2.7918.0 (1320) For x64


        D:\enddev2.binaries.amd64chk\Test\CuE\TestExecution\Examples\AXE.Basic.Examples.manifest
            Basic
                Basic::Basic

Nama yang dapat dibaca manusia ditetapkan ke properti DisplayName . Penugasan ini disebabkan oleh arsitektur dan desain TAEF internal.

Te Examples\AXE.Basic.Examples.manifest /listproperties
Test Authoring and Execution Framework v2.7 Build 6.2.7918.0 (1320) For x64


        D:\enddev2.binaries.amd64chk\Test\CuE\TestExecution\Examples\AXE.Basic.Examples.manifest
                Property[TaefTestType] =  AxeAssessment

            Basic
                Basic::Basic
                        Property[DisplayName] =  Basic Examples
                        Property[ProgrammaticName] =  Basic
                        Property[RunAs] =  Elevated
                        Property[ToolTip] =  Sample Basic Examples Assessment Tooltip

Penilaian ini membungkus exe pengujian sederhana dan yang ada bernama AssessmentSample.exe. AssessmentSample.exe menggunakan konvensi umum untuk mengembalikan kode keluar proses nol untuk keberhasilan dan nilai bukan nol untuk kegagalan.

Baris 25 - 27 memberi tahu AXE dan TAEF bahwa nilai keluar nol berarti bahwa pengujian berhasil dan bahwa nilai lain berarti kegagalan.

Terakhir, baris 28 - 32 menginstruksikan AXE untuk menggunakan Win32 API CreateProcess() untuk menjalankan AssessmentSample.exe.

Menggunakan Metadata dalam File Pengujian AXE

Seperti halnya pengujian TAEF lainnya, Anda juga dapat menerapkan metadata ke pengujian TAEF AXE. Pertimbangkan contoh yang ditunjukkan di bawah ini.

1<?xml version="1.0" encoding="utf-8"?>
2<AxeAssessmentManifest xmlns="http://www.microsoft.com/axe/assessment/manifest">
3  <VersionedId>
4    <Guid>{F310F3F6-F786-4118-8A18-BC020C7D2521}</Guid>
5    <Version>
6      <Major>1</Major>
7      <Minor>0</Minor>
8      <Build>0</Build>
9      <Revision>0</Revision>
10    </Version>
11  </VersionedId>
12  <MinimumAxeVersionRequired>
13    <Version>
14      <Major>1</Major>
15      <Minor>0</Minor>
16      <Build>1</Build>
17      <Revision>0</Revision>
18    </Version>
19  </MinimumAxeVersionRequired>
20  <Description>
21    <ProgrammaticName>CustomMetadataExamples</ProgrammaticName>
22    <DisplayName>Custom Metadata Examples</DisplayName>
23    <ToolTip>Sample Custom Metadata Examples Assessment Tooltip</ToolTip>
24  </Description>
25  <Properties>
26    <Owner>Someone</Owner>
27    <Priority>1</Priority>
28    <Parallel>false</Parallel>
29  </Properties>
30  <Meta>
31    <ExitValueMeaning> <ZeroIsSuccess/> </ExitValueMeaning>
32  </Meta>
33  <Execution>
34    <CreateProcess>
35      <ApplicationName>AssessmentSample.exe</ApplicationName>
36    </CreateProcess>
37  </Execution>
38</AxeAssessmentManifest>

Baris 25 - 29 menunjukkan bagaimana metadata standar dan kustom TAEF dapat diterapkan ke pengujian AXE. Di bawah simpul XML AxeAssessmentManifest adalah simpul Properti . Tag XML tingkat tunggal di bawah simpul Properti dikenali sebagai metadata (properti). Semua tag XML tingkat tunggal di bawah Properti ditafsirkan sebagai nama properti dan nilai teksnya ditafsirkan sebagai nilai properti. Dalam contoh di atas, Pemilik ditafsirkan sebagai nama properti dan Seseorang sebagai nilai properti. Tag XML tanpa teks dalam elemen ini ditafsirkan sebagai elemen yang nilainya sama dengan string kosong (misalnya, <SimpleTagWithNoText/>). Tag XML multitingkat di bawah Properti diabaikan (misalnya, tag multitingkat seperti

<VerifyOSVersion>
    <Major>6</Major>
    <Minor>0</Minor>
    <Build>0</Build>
</VerifyOSVersion>

akan diabaikan). Mirip dengan pengujian TAEF lainnya, Anda menggunakan opsi /listProperties untuk menampilkan metadata TAEF:

te Examples\AXE.CustomMetadata.Examples.manifest /listProperties
Test Authoring and Execution Framework v2.7 Build 6.2.7918.0 (1320) For x64

        D:\enddev2.binaries.amd64chk\Test\CuE\TestExecution\Examples\AXE.CustomMetadata.Examples.manifest
                Property[TaefTestType] =  AxeAssessment

            CustomMetadataExamples
                CustomMetadataExamples::CustomMetadataExamples
                        Property[DisplayName] =  Custom Metadata Examples
                        Property[Owner] =  Someone
                        Property[Parallel] =  false
                        Property[Priority] =  1
                        Property[ProgrammaticName] =  CustomMetadataExamples
                        Property[RunAs] =  Elevated
                        Property[ToolTip] =  Sample Custom Metadata Examples Assessment Tooltip


Batasan Dukungan Metadata Pengujian AXE

Catatan

Tidak semua metadata pengujian standar TAEF dapat digunakan dengan pengujian TAEF AXE.

  • Semua metadata yang ditujukan untuk memodifikasi lingkungan tempat proses dijalankan, seperti ActivationContext dan ThreadingModel, tidak akan berfungsi dengan pengujian AXE. AXE tidak menggunakan proses TAEF untuk menjalankan pengujian, tetapi membuat proses baru di mana ia menjalankan program yang dapat dieksekusi yang ditentukan oleh file pengujian AXE (manifes penilaian AXE). Untuk alasan yang sama, pengujian TAEF berbasis data (properti DataSource ) juga tidak berfungsi dengan pengujian TAEF AXE.
  • Demikian pula, karena file pengujian TAEF AXE hanya dapat merangkum satu pengujian, metadata TAEF yang memodifikasi perilaku pengujian sehubungan dengan pengujian lain, seperti ExecutionGroup, juga tidak akan berfungsi.
  • Karena arsitektur AXE, AXE hanya dapat menjalankan proses yang ditinggikan. Oleh karena itu, seperti yang Anda lihat dari properti pengujian TAEF AXE di atas, setiap pengujian TAEF AXE memiliki Property[RunAs] = Ditinggikan diterapkan.

File Uji AXE dengan Parameter Runtime

Pengujian TAEF AXE juga mendukung parameter runtime. Untuk menggunakan parameter runtime TAEF dengan pengujian AXE, nama parameter yang akan diteruskan ke program yang dapat dieksekusi perlu ditentukan dalam file pengujian AXE.

Berada di luar cakupan dokumen ini untuk menjelaskan semua kemungkinan fitur parameter manifes AXE dalam semua detail. Untuk info tersebut, silakan lihat dokumentasi penilaian AXE. Dokumen ini hanya akan mencakup aplikasi parameter yang paling umum dan berguna.

Contoh berikut menunjukkan manifes penilaian AXE yang lebih kompleks.

1<?xml version="1.0" encoding="utf-8"?>
2<AxeAssessmentManifest xmlns="http://www.microsoft.com/axe/assessment/manifest">
3  <VersionedId>
4    <Guid>{B63B2FFF-EDEB-41FB-92EA-529CE4A46D20}</Guid>
5    <Version>
6      <Major>1</Major>
7      <Minor>0</Minor>
8      <Build>0</Build>
9      <Revision>0</Revision>
10    </Version>
11  </VersionedId>
12  <MinimumAxeVersionRequired>
13    <Version>
14      <Major>1</Major>
15      <Minor>0</Minor>
16      <Build>1</Build>
17      <Revision>0</Revision>
18    </Version>
19  </MinimumAxeVersionRequired>
20  <Description>
21    <ProgrammaticName>ExplicitRuntimeParameters</ProgrammaticName>
22    <DisplayName>Explicit Runtime Parameters</DisplayName>
23    <ToolTip>Sample Explicit Runtime Parameters Assessment Tooltip</ToolTip>
24  </Description>
25  <ParameterDefinitions>
26    <ParameterDefinition>
27      <Description>
28        <ProgrammaticName>SimpleParameter</ProgrammaticName>
29        <DisplayName>Simple parameter</DisplayName>
30        <ToolTip>The is an example of a simple parameter.</ToolTip>
31      </Description>
32      <Type>
33        <String></String>
34      </Type>
35      <CommandLineFormat>{0}</CommandLineFormat>
36    </ParameterDefinition>
37    <ParameterDefinition>
38      <Description>
39        <ProgrammaticName>RequiredParameterWithoutDefaultValue</ProgrammaticName>
40        <DisplayName>Required parameter without a default value.</DisplayName>
41        <ToolTip>The is an example of a required parameter Without a default value.</ToolTip>
42      </Description>
43      <Required>True</Required>
44      <Type>
45        <Int></Int>
46      </Type>
47      <CommandLineFormat>{0}</CommandLineFormat>
48    </ParameterDefinition>
49    <ParameterDefinition>
50      <Description>
51        <ProgrammaticName>RequiredParameterWithDefaultValue</ProgrammaticName>
52        <DisplayName>Required parameter with a default value</DisplayName>
53        <ToolTip>The is an example of a required parameter With a default value.</ToolTip>
54      </Description>
55      <Required></Required>
56      <DefaultValue>"%AssessmentResultsPath%"</DefaultValue>
57      <Type>
58        <String></String>
59      </Type>
60      <CommandLineFormat>/RequiredParameterWithDefaultValue={0}</CommandLineFormat>
61    </ParameterDefinition>
62  </ParameterDefinitions>
63  <Meta>
64    <ExitValueMeaning> <ZeroIsSuccess/> </ExitValueMeaning>
65  </Meta>
66  <Execution>
67    <CreateProcess>
68      <ApplicationName>AssessmentSample.exe</ApplicationName>
69    </CreateProcess>
70  </Execution>
71</AxeAssessmentManifest>

Baris 25 - 62 adalah definisi parameter yang menjelaskan parameter yang digunakan oleh TAEF dan AXE untuk meneruskan data ke dalam penilaian yang dapat dieksekusi.

Definisi parameter paling sederhana ada di baris 26 - 36. Ini terdiri dari bagian Deskripsi wajib yang persis sama dengan bagian Deskripsi untuk manifes, yang dijelaskan di atas. Kemudian Anda melihat tag Jenis yang menentukan jenis data parameter. (Silakan lihat dokumentasi penilaian AXE untuk semua jenis data yang didukung.)

Bagian CommandLineFormat opsional menjelaskan bagaimana parameter penilaian diformat untuk baris perintah penilaian. Simpul XML ini harus berisi string yang tidak kosong yang merupakan string pemformatan .NET yang valid. Nilai parameter penilaian akan menjadi satu-satunya objek yang diteruskan ke pemformat. Ini berarti bahwa string pemformatan harus berisi satu dan hanya satu item pemformatan komposit dengan indeks nol. Beberapa contohnya adalah: -input {0}, /affinity:0x{0,X}, atau -InputFile=""{0}.

Parameter berikutnya ditentukan pada baris 37 - 48 dan merupakan parameter yang diperlukan. Satu-satunya perbedaan dalam definisinya dari parameter sebelumnya adalah tag Wajib opsional. Tag ini menunjukkan bahwa AXE mengharapkan pengguna untuk melewati parameter ini selama eksekusi pengujian AXE. Jika parameter ini dihilangkan, maka nilai default untuk jenis data parameter akan digunakan (misalnya, nol untuk INT, string kosong untuk String, dll).

Terakhir, parameter terakhir dalam contoh menentukan tag DefaultValue opsional, yang menjelaskan nilai default parameter. Jika simpul ini kosong, maka nilai default untuk jenis data parameter akan digunakan sebagai nilai default. Contoh di atas menggunakan "%AssessmentResultsPath%", yang merupakan variabel lingkungan yang ditetapkan oleh AXE saat penilaian mulai dijalankan. Sekali lagi, silakan lihat dokumentasi penilaian AXE untuk semua variabel lingkungan AXE yang didukung.

Parameter diteruskan ke executable dalam urutan terbalik definisinya - parameter yang ditentukan dalam file terakhir diteruskan ke executable terlebih dahulu.

Anda menjalankan pengujian parameter runtime TAEF AXE sebagai pengujian TAEF lainnya yang menggunakan parameter runtime (dengan menggunakan opsi baris perintah /p ):

te AXE.ExplicitRuntimeParameters.Examples.manifest /p:SimpleParameter=Test1 /p:RequiredParameterWithoutDefaultValue=10
Test Authoring and Execution Framework v2.7 Build 6.2.7918.0 (1320) For x64

ExplicitRuntimeParameters::ExplicitRuntimeParameters
AssessmentSample.exe is simple application for AXE assessment demo.
It just echoes the arguments passed to it to the console.

Parameters passed from the command line:
Argument[0]=AssessmentSample.exe
Argument[1]=10
Argument[2]=/RequiredParameterWithDefaultValue=C:\Results\JobResults_DEVRH_2011-0129_0250-12.394\0
Argument[3]=Test1

FileName: C:\Results\JobResults_DEVRH_2011-0129_0250-12.394\JobResults_DEVRH_2011-0129_0250-12.394.xml
Saved output file to: D:\enddev2.binaries.amd64chk\Test\CuE\TestExecution\WexLogFileOutput\
000001_~ExplicitRuntimeParameters_JobResults_DEVRH_2011-0129_0250-12.394.xml
EndGroup: ExplicitRuntimeParameters::ExplicitRuntimeParameters [Passed]

Uji Eksekusi Lintas Mesin AXE

Untuk skenario eksekusi lintas komputer, TAEF mencoba menentukan dependensi pengujian yang perlu disebarkan bersama dengan pengujian untuk keberhasilan eksekusi pengujian. Dalam kasus file pengujian AXE, TAEF akan menyalin semua file yang berada di folder yang sama dengan pengujian TAEF AXE ke komputer jarak jauh untuk dieksekusi.

Eksekusi lintas mesin pengujian AXE ke platform Arm saat ini tidak didukung.

Dependensi dukungan TAEF AXE

AXE tidak dikirim dengan Windows. Untuk dapat menjalankan pengujian AXE, Anda perlu menyalin axecore.dll dan Microsoft.Assessment.dll ke TAEF atau direktori uji TAEF AXE Anda.