Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
BizUnit offre due modi per definire i test: tramite un file di configurazione XML e un foglio di lavoro di Excel. Questo argomento è incentrato sull'uso di un file di configurazione XML per definire i test; Tuttavia, è consigliabile esaminare anche BizUnit SDK, poiché fornisce un esempio interessante di come definire test case BizUnit usando Excel. Inoltre, è possibile esaminare lo strumento BizUnit Designer, che fornisce un'interfaccia utente grafica che consente la creazione rapida di test case BizUnit. In questo argomento viene fornita una panoramica di come definire test case usando la configurazione XML usando uno scenario molto semplificato.
Panoramica della definizione di un test case BizUnit tramite la configurazione XML
Come appena dichiarato, questo scenario è semplificato ai fini dell'illustrazione. Si consideri un'applicazione di messaggistica di esempio, ad esempio quella illustrata di seguito. Si supponga che il normale comportamento funzionale per questa applicazione sia che BizTalk riceva un file XML tramite un percorso di ricezione file, quindi lo invia a un sottoscrittore appropriato in base a una sottoscrizione. Per convalidare questo scenario in modo efficace, è importante eseguire i passaggi seguenti nel test:
Configurare l'ambiente per assicurarsi che sia in uno stato coerente e pronto per l'esecuzione del test:
- Questa operazione viene eseguita eliminando tutti i file presenti nei due percorsi di file usati.
Eseguire il test per verificare la funzionalità:
Creare un messaggio XML valido nella cartella in cui viene eseguito il polling del percorso di ricezione del file.
Verificare che il messaggio XML corretto venga inserito nel percorso della cartella in uscita.
La convalida deve coprire sia lo schema che le informazioni sul payload per il messaggio. In genere è consigliabile esaminare un paio di campi chiave.
Pulire l'ambiente per assicurarsi che l'ambiente sia nello stesso stato di prima dell'esecuzione del test:
- Eliminare tutti i file presenti nei due percorsi di file usati.
Applicazione di messaggistica BizTalk di esempioOgni test case inizia e termina con il tag XML TestCase; Il parametro testName viene passato a questo come indicato qui.
<TestCase testName="Test_01_FILECopyWithXmlValidation">
Si immette quindi la fase TestSetup, in cui si garantisce che l'ambiente sia in uno stato coerente per eseguire il test. In questo esempio vengono eliminati tutti i messaggi XML contenuti nella directory TestData. Questa operazione viene eseguita usando FileDeleteMultipleStep.
<TestSetup>
<TestStep assemblyPath="" typeName="Microsoft.Services.BizTalkApplicationFramework.BizUnit.FileDeleteMultipleStep">
<Directory>..\..\..\TestData\</Directory>
<SearchPattern>*.xml</SearchPattern>
</TestStep>
</TestSetup>
Si immette quindi la sezione più critica del test, la fase di esecuzione del test. Questa fase può contenere più passaggi di test. In questo esempio, viene utilizzato "FileCreateStep" per copiare un documento (InDoc1.xml che può essere visto nel tag <SourcePath>) in un'area di trasferimento file utilizzata dalla nostra posizione di ricezione. È importante notare che BizUnit supporta l'uso di identificatori univoci per i nomi file in questo passaggio; questo valore può essere visualizzato con il riferimento %Guid% nel tag CreationPath.
Al termine, è necessario usare FileValidateStep per verificare che il messaggio in uscita sia stato creato. Si noterà che questo passaggio consente di specificare un valore di timeout (espresso in millisecondi), la directory e il criterio di ricerca. Oltre a questo, il tag DeleteFile consente di specificare se si desidera rimuovere il file dopo la convalida. Infine, è anche necessario notare che la convalida include una query XPath, che convalida il nodo PONumber all'interno del messaggio XML (verifica che il valore sia PONumber_0). L'esame e la convalida del payload di qualsiasi messaggio in uscita è un altro esempio di principio guida da seguire quando si usa 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 finale del test case è la pulizia. Come si può vedere qui, il passaggio di test FileDelete viene usato per pulire le directory usate dal 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>
Si spera che questo esempio illustra che la definizione dei test in BizUnit è relativamente semplice e che usando questo framework di test sarà possibile sviluppare rapidamente test case per fornire test funzionali dell'applicazione.
Esempio di caso di test completo
Il contenuto completo del file di configurazione del test case è incluso qui per riferimento:
<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>