共用方式為


使用 XML 設定檔定義測試

BizUnit 提供兩種方式來定義測試:透過 XML 組態檔和透過 Excel 工作表。 本主題著重于使用 XML 組態檔來定義測試;不過,您也應該查看 BizUnit SDK,因為它提供如何使用 Excel 定義 BizUnit 測試案例的有趣範例。 此外,您可能想要調查 BizUnit Designer 工具,其提供 GUI,可讓您快速建立 BizUnit 測試案例。 本主題概述如何使用非常簡化的案例,使用 XML 組態定義測試案例。

使用 XML 組態定義 BizUnit 測試案例的概觀

如前所述,為了說明目的,此案例已簡化。 請考慮範例傳訊應用程式,如下所示。 假設此應用程式的正常功能行為是 BizTalk 透過檔案接收位置接收 XML 檔案,然後根據訂用帳戶將它傳送給適當的訂閱者。 若要有效地驗證此案例,請務必在測試中執行下列步驟:

  1. 設定環境以確保其處於一致狀態,並準備好執行測試:

    • 這是藉由刪除兩個使用之檔案位置中存在的任何檔案來完成。
  2. 執行測試以驗證功能:

    • 在檔案接收位置輪詢的資料夾中建立有效的 XML 訊息。

    • 驗證正確的 XML 訊息是否放在輸出檔案夾位置。

    • 驗證應該同時涵蓋訊息的架構和承載資訊。 (通常應該檢查幾個索引鍵欄位。)

  3. 清除環境,以確保環境處於與測試執行之前相同的狀態:

    • 刪除使用兩個檔案位置中的任何檔案。

    範例 BizTalk 傳訊應用程式
    範例 BizTalk 傳訊應用程式

    每個測試案例都會以 TestCase XML 標記開始和結束;testName 參數會傳入此參數,如這裡所示。

<TestCase testName="Test_01_FILECopyWithXmlValidation">  

然後,我們會進入 TestSetup 階段,以確保環境處於執行測試的一致狀態。 在此範例中,我們會刪除 TestData 目錄中所包含的任何 XML 訊息。 這是使用 FileDeleteMultipleStep來完成。

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

然後,我們會輸入測試的最重要區段,也就是測試執行階段。 這個階段可以包含多個測試步驟。 在此範例中,我們使用 FileCreateStep 來複製可在 SourcePath > 標籤中看到 < 的檔 (InDoc1.xml,) 到接收位置所使用的檔案卸載。 請務必注意,BizUnit 支援使用此步驟中檔案名的唯一識別碼;這可以在 CreationPath 標籤中的 %Guid% 參考中看到。

完成此動作之後,我們需要使用 FileValidateStep 來驗證已建立輸出訊息。 您會注意到此步驟可讓您指定逾時值, (這是以毫秒為單位) 、目錄和搜尋模式。 除了這個之外, DeleteFile 標籤還可讓您指定是否要在檔案經過驗證之後移除檔案。 最後,您也應該記下驗證封裝含 XPath 查詢,它會驗證 XML 訊息內的 PONumber 節點, (檢查值是否為 PONumber_0.) 檢查和驗證任何輸出訊息承載的另一個範例,就是使用 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>  

測試案例的最後一個階段是清除。 如這裡所示, FileDelete 測試步驟可用來清除測試所使用的目錄。

<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>  

希望此範例說明在 BizUnit 中定義測試相當簡單,而且使用此測試架構,您將能夠快速開發測試案例,以提供應用程式的功能測試。

完整測試案例範例

此處包含完整的測試案例組態檔內容,以供參考:

<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>  

另請參閱

使用 BizUnit 促進自動化測試