Définition de tests à l’aide d’un fichier de configuration XML
BizUnit offre deux façons de définir des tests : via un fichier de configuration XML et via une feuille de calcul Excel. Cette rubrique se concentre sur l’utilisation d’un fichier de configuration XML pour définir des tests ; Toutefois, vous devez également examiner le Kit de développement logiciel (SDK) BizUnit, car il fournit un exemple intéressant de la façon de définir des cas de test BizUnit à l’aide d’Excel. En outre, vous souhaiterez peut-être examiner l’outil bizUnit Designer, qui fournit une interface utilisateur graphique qui permet de créer rapidement des cas de test BizUnit. Cette rubrique fournit une vue d’ensemble de la définition de cas de test à l’aide d’une configuration XML à l’aide d’un scénario très simplifié.
Vue d’ensemble de la définition d’un cas de test BizUnit à l’aide de la configuration XML
Comme indiqué précédemment, ce scénario est simplifié à des fins d’illustration. Considérez un exemple d’application de messagerie comme celle illustrée ci-dessous. Supposons que le comportement fonctionnel normal de cette application est que BizTalk reçoit un fichier XML via un emplacement de réception de fichier, puis l’envoie à un abonné approprié en fonction d’un abonnement. Pour valider efficacement ce scénario, il est important d’effectuer les étapes suivantes dans le test :
Configurez l’environnement pour vous assurer qu’il est dans un état cohérent et prêt pour l’exécution du test :
- Pour ce faire, supprimez tous les fichiers présents dans les deux emplacements de fichiers utilisés.
Exécutez le test pour vérifier la fonctionnalité :
Créez un message XML valide dans le dossier auquel le fichier reçoit des sondages d’emplacement.
Vérifiez que le message XML correct est placé à l’emplacement du dossier sortant.
La validation doit couvrir à la fois le schéma et les informations de charge utile pour le message. (En règle générale, quelques champs clés doivent être examinés.)
Nettoyez l’environnement pour vous assurer que l’environnement est dans le même état qu’avant l’exécution du test :
- Supprimez tous les fichiers présents dans les deux emplacements de fichiers utilisés.
Exemple d’application de messagerie BizTalkChaque cas de test commence et se termine par la balise XML TestCase ; le paramètre testName est passé dans ce, comme indiqué ici.
<TestCase testName="Test_01_FILECopyWithXmlValidation">
Ensuite, nous entrons dans la phase TestSetup, dans laquelle nous nous assurons que l’environnement est dans un état cohérent pour exécuter le test. Dans cet exemple, nous supprimons tous les messages XML contenus dans notre répertoire TestData. Pour ce faire, utilisez FileDeleteMultipleStep.
<TestSetup>
<TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">
<Directory>..\..\..\TestData\</Directory>
<SearchPattern>*.xml</SearchPattern>
</TestStep>
</TestSetup>
Nous entrons ensuite dans la section la plus critique du test, à savoir l’étape d’exécution du test. Cette étape peut contenir plusieurs étapes de test. Dans cet exemple, nous utilisons FileCreateStep pour copier un document (InDoc1.xml visible dans la <balise SourcePath> ) dans un dépôt de fichiers utilisé par notre emplacement de réception. Il est important de noter que BizUnit prend en charge l’utilisation d’identificateurs uniques pour les noms de fichiers dans cette étape ; vous pouvez le voir avec la référence %Guid% dans la balise CreationPath.
Une fois cette opération terminée, nous devons utiliser FileValidateStep pour vérifier que le message sortant a été créé. Vous remarquerez que cette étape vous permet de spécifier une valeur de délai d’expiration (exprimée en millisecondes), le répertoire et le modèle de recherche. En outre, la balise DeleteFile vous permet de spécifier si vous souhaitez que le fichier soit supprimé une fois qu’il a été validé. Enfin, vous devez également noter que la validation inclut une requête XPath, qui valide le nœud PONumber dans le message XML (il vérifie que la valeur est PONumber_0.) L’examen et la validation de la charge utile des messages sortants sont un autre exemple de principe directeur que vous devez suivre lors de l’utilisation de 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 dernière étape du cas de test est le nettoyage. Comme vous pouvez le voir ici, l’étape de test FileDelete est utilisée pour propre les répertoires utilisés par le test.
<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>
Espérons que cet exemple illustre que la définition de tests dans BizUnit est relativement simple et qu’en utilisant cette infrastructure de test, vous serez en mesure de développer rapidement des cas de test pour fournir des tests fonctionnels de votre application.
Exemple de cas de test complet
Le contenu complet du fichier de configuration de cas de test est inclus ici pour votre référence :
<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>