Creación de pruebas en AXE
TAEF admite la creación de pruebas que se ejecutan con el Motor de ejecución de evaluación (AXE).
La compatibilidad con AXE en TAEF permite a TAEF ejecutar manifiestos de evaluación de AXE. Está diseñado principalmente para encapsular pruebas heredadas, escritas como EXE de línea de comandos, en manifiestos de evaluación AXE basados en XML. De esta manera, estas pruebas heredadas se convierten en ejecutables con TAEF sin tener que volver a escribir las pruebas en pruebas nativas, administradas o de script de TAEF.
Diseño de pruebas AXE
Aunque los archivos de prueba de TAEF normales pueden contener varias clases de prueba y pruebas, las pruebas AXE de TAEF (pruebas definidas por un manifiesto de evaluación AXE) solo pueden contener una sola prueba porque el manifiesto encapsula un único ejecutable. Por lo tanto, al ver las pruebas en un archivo de prueba DE TAEF AXE, siempre verá que el archivo de prueba (que es el manifiesto de evaluación de AXE que está viendo), contiene una sola clase de prueba y una prueba única:
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
Las pruebas AXE tampoco admiten ningún método de instalación o limpieza.
Creación de pruebas AXE
Para las pruebas AXE, TAEF usa el formato de archivo de manifiesto de evaluación AXE.
Archivo de prueba AXE mínimo
El esquema de manifiesto de evaluación AXE está diseñado para admitir descripciones muy enriquecidas de una evaluación compleja para escenarios sofisticados. Sin embargo, los manifiestos también pueden ser muy simples, ya que hay muy pocos nodos obligatorios. En el ejemplo siguiente se muestra un manifiesto mínimo que incluye todas las etiquetas obligatorias.
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>
El archivo de evaluación de pruebas AXE es un archivo XML. Por lo tanto, comienza con un encabezado XML normal (línea 1).
La línea 2 identifica el archivo XML como un manifiesto AXE.
Las líneas 3- 10 proporcionan a la prueba una identidad y una versión que se pueden usar para identificar de forma única la prueba.
La línea 12 - 19 especifica la versión mínima de AXE necesaria para interpretar este manifiesto y para ejecutar la prueba.
Las líneas 20 - 24 dan a la prueba un nombre legible y una breve descripción de la información sobre herramientas. Tenga en cuenta que, al ver las propiedades de prueba, el nombre de la clase de prueba y el nombre de la prueba se corresponderán con el valor del elemento 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
El nombre legible humano se asigna a la propiedad DisplayName . Esta asignación se debe a la arquitectura y el diseño internos de TAEF.
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
Esta evaluación encapsula un EXE de prueba simple y existente denominado AssessmentSample.exe. AssessmentSample.exe usa la convención común para devolver un código de salida de proceso de cero para éxito y un valor distinto de cero para errores.
Las líneas 25 - 27 indican a AXE y TAEF que un valor de salida de cero significa que la prueba se realizó correctamente y que cualquier otro valor significa error.
Por último, las líneas 28 - 32 indican a AXE que use CreateProcess() api de Win32 para ejecutar AssessmentSample.exe.
Uso de metadatos en el archivo de prueba AXE
Al igual que con cualquier otra prueba de TAEF, también puede aplicar metadatos a una prueba AXE de TAEF. Considere el ejemplo que se muestra a continuación.
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>
Las líneas 25 - 29 muestran cómo se pueden aplicar metadatos estándar y personalizados de TAEF a una prueba AXE. En el nodo XML AxeAssessmentManifest hay un nodo Propiedades . Las etiquetas XML de nivel único en el nodo Propiedades se reconocen como metadatos (propiedades). Todas las etiquetas XML de nivel único en Propiedades se interpretan como nombres de propiedad y sus valores de texto se interpretan como los valores de propiedad. En el ejemplo anterior, Owner se interpreta como un nombre de propiedad y Alguien como un valor de propiedad. Las etiquetas XML sin texto en estos elementos se interpretan como elementos cuyo valor es igual a la cadena vacía (por ejemplo, <SimpleTagWithNoText/>). Las etiquetas XML de varios niveles en Propiedades se omiten (por ejemplo, una etiqueta de varios niveles, como
<VerifyOSVersion>
<Major>6</Major>
<Minor>0</Minor>
<Build>0</Build>
</VerifyOSVersion>
se omitirá). De forma similar a cualquier otra prueba de TAEF, se usa la opción /listProperties para mostrar metadatos de 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
Limitaciones de compatibilidad con metadatos de pruebas AXE
Nota
No todos los metadatos de prueba estándar de TAEF se pueden usar con pruebas AXE de TAEF.
- Todos los metadatos destinados a modificar el entorno en el que se ejecuta el proceso, como ActivationContext y ThreadingModel, no funcionarán con pruebas AXE. AXE no usa el proceso de TAEF para ejecutar las pruebas, pero crea un nuevo proceso en el que ejecuta el programa ejecutable especificado por el archivo de prueba AXE (manifiesto de evaluación AXE). Por la misma razón, las pruebas DE TAEF controladas por datos (propiedad DataSource ) no funcionan con pruebas DE TAEF AXE, tampoco.
- Del mismo modo, dado que los archivos de prueba DE TAEF AXE solo pueden encapsular una sola prueba, los metadatos de TAEF que modifican el comportamiento de una prueba con respecto a otras pruebas, como ExecutionGroup, tampoco funcionarán.
- Debido a la arquitectura AXE, AXE solo puede ejecutar procesos elevados. Por lo tanto, como ha visto en las propiedades anteriores de las pruebas DE TAEF AXE, cada prueba de TAEF AXE tiene Property[RunAs] = Elevated applied.
Archivo de prueba AXE con parámetros en tiempo de ejecución
Las pruebas AXE de TAEF también admiten parámetros en tiempo de ejecución. Para usar los parámetros en tiempo de ejecución de TAEF con pruebas AXE, los nombres de parámetros que se van a pasar al programa ejecutable deben definirse en el archivo de prueba AXE.
Queda fuera del ámbito de este documento describir todas las posibles características del parámetro de manifiesto AXE en todos los detalles. Para obtener esa información, consulte la documentación de evaluación de AXE. En este documento solo se tratarán las aplicaciones de parámetros más comunes y útiles.
En el ejemplo siguiente se muestra un manifiesto de evaluación de AXE más complejo.
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>
Las líneas 25 - 62 son definiciones de parámetros que describen los parámetros que usan TAEF y AXE para pasar datos al ejecutable de evaluación.
La definición de parámetro más sencilla está en las líneas 26 - 36. Consta de una sección descripción obligatoria que es exactamente la misma que la sección Descripción del manifiesto, que se explica anteriormente. A continuación, verá una etiqueta Type que define el tipo de datos de parámetro. (Consulte la documentación de evaluación de AXE para todos los tipos de datos admitidos).
En la sección opcional CommandLineFormat se describe cómo se da formato a un parámetro de evaluación para la línea de comandos de evaluación. Este nodo XML debe contener una cadena no vacía que sea una cadena de formato de .NET válida. El valor del parámetro de evaluación será el único objeto que se pasa al formateador. Esto significa que la cadena de formato debe contener uno y solo un elemento de formato compuesto con el índice cero. Algunos ejemplos son: -input {0}, /affinity:0x{0,X}o -InputFile="{0}".
El siguiente parámetro se define en las líneas 37 - 48 y es un parámetro obligatorio. La única diferencia en su definición del parámetro anterior es una etiqueta Requerida opcional. Esta etiqueta indica que AXE espera que el usuario pase este parámetro durante la ejecución de pruebas de AXE. Si se omite este parámetro, se usará el valor predeterminado para el tipo de datos del parámetro (por ejemplo, cero para INT, cadena vacía para String, etc.).
Por último, el último parámetro del ejemplo especifica una etiqueta DefaultValue opcional, que describe el valor predeterminado del parámetro. Si este nodo está en blanco, el valor predeterminado para el tipo de datos del parámetro se usará como valor predeterminado. En el ejemplo anterior se usa "%AssessmentResultsPath%", que es una variable de entorno establecida por AXE cuando la evaluación comienza a ejecutarse. De nuevo, consulte la documentación de evaluación de AXE para todas las variables de entorno de AXE admitidas.
Los parámetros se pasan al ejecutable en el orden inverso de su definición: el parámetro definido en el archivo se pasa primero al ejecutable.
Ejecute las pruebas de parámetros en tiempo de ejecución de TAEF AXE como cualquier otra prueba de TAEF que use parámetros en tiempo de ejecución (mediante las opciones de línea de comandos /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]
Ejecución entre máquinas de pruebas AXE
Para un escenario de ejecución entre máquinas, TAEF intenta determinar las dependencias de prueba que deben implementarse junto con la prueba para la ejecución correcta de pruebas. En el caso de un archivo de prueba AXE, TAEF copiará todos los archivos que se encuentran en la misma carpeta con una prueba AXE de TAEF en una máquina remota para su ejecución.
Actualmente no se admite la ejecución cruzada de pruebas AXE en una plataforma Arm.
Dependencias de soporte técnico de TAEF AXE
AXE no se envía con Windows. Para poder ejecutar pruebas AXE, debe copiar axecore.dll y Microsoft.Assessment.dll a TAEF o a su directorio de pruebas de TAEF AXE.