Compartir a través de


Definición de pruebas mediante un archivo de configuración XML

BizUnit ofrece dos maneras de definir pruebas: a través de un archivo de configuración XML y a través de una hoja de cálculo de Excel. Este tema se centra en el uso de un archivo de configuración XML para definir pruebas; sin embargo, también debe examinar el SDK de BizUnit, ya que proporciona un ejemplo interesante de cómo definir casos de prueba de BizUnit mediante Excel. Además, puede que desee investigar la herramienta de Designer BizUnit, que proporciona una GUI que permite la creación rápida de casos de prueba de BizUnit. En este tema se proporciona información general sobre cómo definir casos de prueba mediante la configuración XML mediante un escenario muy simplificado.

Información general sobre cómo definir un caso de prueba de BizUnit mediante la configuración XML

Como se acaba de indicar, este escenario se simplifica con fines ilustrativos. Considere una aplicación de mensajería de ejemplo, como la que se muestra a continuación. Supongamos que el comportamiento funcional normal de esta aplicación es que BizTalk recibe un archivo XML a través de una ubicación de recepción de archivos y, a continuación, lo envía a un suscriptor adecuado basado en una suscripción. Para validar este escenario de forma eficaz, es importante que realicemos los pasos siguientes en la prueba:

  1. Configure el entorno para asegurarse de que se encuentra en un estado coherente y listo para que se ejecute la prueba:

    • Para ello, se eliminan los archivos que están presentes en las dos ubicaciones de archivo usadas.
  2. Ejecute la prueba para comprobar la funcionalidad:

    • Cree un mensaje XML válido en la carpeta en la que sondea la ubicación de recepción del archivo.

    • Compruebe que el mensaje XML correcto se coloca en la ubicación de la carpeta saliente.

    • La validación debe abarcar tanto el esquema como la información de carga del mensaje. (Normalmente, se deben examinar un par de los campos clave).

  3. Limpie el entorno para asegurarse de que el entorno está en el mismo estado que antes de ejecutar la prueba:

    • Elimine los archivos que están presentes en las dos ubicaciones de archivo usadas.

    Aplicación de mensajería de BizTalk de ejemplo
    Aplicación de mensajería de BizTalk de ejemplo

    Cada caso de prueba comienza y termina con la etiqueta XML TestCase; El parámetro testName se pasa a esto como se indica aquí.

<TestCase testName="Test_01_FILECopyWithXmlValidation">  

A continuación, especificamos la fase TestSetup, en la que nos aseguramos de que el entorno se encuentra en un estado coherente para ejecutar la prueba. En este ejemplo, se eliminan todos los mensajes XML contenidos en nuestro directorio TestData. Esto se hace mediante FileDeleteMultipleStep.

<TestSetup>  
   <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">  
      <Directory>..\..\..\TestData\</Directory>  
         <SearchPattern>*.xml</SearchPattern>   
      </TestStep>  
</TestSetup>  

A continuación, especificamos cuál es la sección más crítica de la prueba, la fase de ejecución de pruebas. Esta fase puede contener varios pasos de prueba. En este ejemplo se usa FileCreateStep para copiar un documento (InDoc1.xml que se puede ver en la <etiqueta SourcePath> ) en una eliminación de archivos que usa nuestra ubicación de recepción. Es importante tener en cuenta que BizUnit admite el uso de identificadores únicos para los nombres de archivo en este paso; Esto se puede ver con la referencia %Guid% en la etiqueta CreationPath.

Una vez completado esto, es necesario usar FileValidateStep para validar que se ha creado el mensaje de salida. Observará que este paso le permite especificar un valor de tiempo de espera (se encuentra en milisegundos), el directorio y el patrón de búsqueda. Además de esto, la etiqueta DeleteFile permite especificar si desea que el archivo se quite una vez validado. Por último, también debe tener en cuenta que la validación incluye una consulta XPath, que valida el nodo PONumber dentro del mensaje XML (comprueba que el valor es PONumber_0). El examen y la validación de la carga de cualquier mensaje saliente es otro ejemplo de un principio rector que debe seguir al usar BizUnit.

<TestExecution>  
   <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileCreateStep">  
      <SourcePath>..\..\..\TestData\InDoc1.xml</SourcePath>  
      <CreationPath>..\..\..\Rec_03\TransactionId_%Guid%.xml</CreationPath>  
   </TestStep>  
   <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileValidateStep">  
      <Timeout>3000</Timeout>  
      <Directory>..\..\..\Rec_03\</Directory>  
      <SearchPattern>TransactionId_*.xml</SearchPattern>  
      <DeleteFile>true</DeleteFile>  
      <ValidationStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.XmlValidationStep">  
         <XmlSchemaPath>..\..\..\TestData\PurchaseOrder.xsd</XmlSchemaPath>  
         <XmlSchemaNameSpace>http://SendMail.PurchaseOrder</XmlSchemaNameSpace>  
         <XPathList>  
            <XPathValidation query="/*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']">PONumber_0</XPathValidation>  
         </XPathList>  
      </ValidationStep>  
   </TestStep>  
</TestExecution>  

La fase final del caso de prueba es la limpieza. Como se puede ver aquí, el paso de prueba FileDelete se usa para limpiar los directorios usados por la prueba.

<TestCleanup>  
   <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">  
      <Directory>..\..\..\TestData\</Directory>  
      <SearchPattern>*.xml</SearchPattern>   
   </TestStep>  
   <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">  
      <Directory>..\..\..\Rec_03\</Directory>  
      <SearchPattern>*.xml</SearchPattern>   
   </TestStep>  
</TestCleanup>  

Esperemos que este ejemplo muestre que la definición de pruebas en BizUnit es relativamente sencilla y que, mediante este marco de pruebas, podrá desarrollar rápidamente casos de prueba para proporcionar pruebas funcionales de la aplicación.

Ejemplo completo del caso de prueba

El contenido completo del archivo de configuración del caso de prueba se incluye aquí para su referencia:

<TestCase testName="Test_01_FILECopyWithXmlValidation">  
   <TestSetup>  
      <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">  
         <Directory>..\..\..\TestData\</Directory>  
            <SearchPattern>*.xml</SearchPattern>   
         </TestStep>  
   </TestSetup>  
   <TestExecution>  
      <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileCreateStep">  
         <SourcePath>..\..\..\TestData\InDoc1.xml</SourcePath>  
         <CreationPath>..\..\..\Rec_03\TransactionId_%Guid%.xml</CreationPath>  
      </TestStep>  
      <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileValidateStep">  
         <Timeout>3000</Timeout>  
         <Directory>..\..\..\Rec_03\</Directory>  
         <SearchPattern>TransactionId_*.xml</SearchPattern>  
         <DeleteFile>true</DeleteFile>  
         <ValidationStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.XmlValidationStep">  
            <XmlSchemaPath>..\..\..\TestData\PurchaseOrder.xsd</XmlSchemaPath>  
            <XmlSchemaNameSpace>http://SendMail.PurchaseOrder</XmlSchemaNameSpace>  
            <XPathList>  
               <XPathValidation query="/*[local-name()='PurchaseOrder' and namespace-uri()='http://SendMail.PurchaseOrder']/*[local-name()='PONumber' and namespace-uri()='']">PONumber_0</XPathValidation>  
            </XPathList>  
         </ValidationStep>  
      </TestStep>  
   </TestExecution>  
   <!-- Test cleanup: test cases should always leave the system in the state they found it -->  
   <TestCleanup>  
      <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">  
         <Directory>..\..\..\TestData\</Directory>  
         <SearchPattern>*.xml</SearchPattern>   
      </TestStep>  
      <TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">  
         <Directory>..\..\..\Rec_03\</Directory>  
         <SearchPattern>*.xml</SearchPattern>   
      </TestStep>  
   </TestCleanup>  
</TestCase>  

Consulte también

Uso de BizUnit para facilitar las pruebas automatizadas