現在您需要做的第一件事就是使您的數據池正常工作。
- 您可以點擊 Test Element Details 下 Common Options 標簽里的 Add Datapool 為您的測試套件啟動數據池。
- 打開 Import Datapool 對話框(查看圖8)。
圖8:Import Datapool 對話框

- 點擊您想要是用的數據池,然后選擇 Select 將其啟動。然后您可以查看 Common Options 下的數據池和變量列表(圖9)。
圖9:Test Element Details 下的數據池信息列表

下一步,您需要使用置換關聯值。
- 在 Test Contents 目錄樹中,選擇 doSpellingSuggestion ,然后選擇 Details 標簽。
- 選擇 片語 元素。在這里您可以右鍵點擊 Value 域,然后選擇 doSpellingSuggestion datap...的 Substitute From > "片語" 變量。注意 Substitute from 菜單列出的元素是基于和測試關聯的數據池而動態產生的(圖10)。
圖10:選擇一個置換

在您建立了置換后,您會看到值會變成綠色。如果您解除對片語元素的定位,您仍然會看到它被高亮顯示。(查看圖11。)這些都是顯示它們已經被置換的指示器。這使您能夠在調試和更新您的測試時,快速的找到這些置換值。
圖11:高亮顯示的置換元素

- 下一步,您需要根據數據池的返回值來更新確認點以作應答。您可以通過選擇 Equal Verification Point,找到 Detailed 標簽中的返回元素,再次建立一個置換來完成這個操作。無論怎樣,這次選擇 doSpellingSuggestion datap... 的返回變量。
如果您現在就運行測試,那么測試會使用您數據池中的第一個值。在這個練習的設置過程中,這個值是 phrasesWithSuggestions 等價類中的 "IBM Rational Perforlmance Tester"。數據讀取正確并且確認點通過。列表1和列表2中的代碼同是來自于一個單用戶測試的測試日志。
列表1:Web服務調用代碼
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <rpcns:doSpellingSuggestion xmlns:rpcns="urn:GoogleSearch" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <key xsi:type="xsd:string">00000000000000000000000000000000</key> <phrase xsi:type="xsd:string">IBM Rational Perforlmance Tester</phrase> </rpcns:doSpellingSuggestion> </soapenv:Body> </soapenv:Envelope> |
列表2:確認點代碼
<Envelope> <Body> <doSpellingSuggestionResponse> <return>IBM Rational Performance Tester</return> </doSpellingSuggestionResponse> </Body> </Envelope> |
下一步,設置您的測試循環測試所有數據。最容易的實現方法是添加一個循環:
- 選擇 Test Contents 樹中的 doSpellingSuggestion(查看圖12),然后點擊Insert > Loop 按鈕。
圖12:在您的測試套件中添加一個循環

- 您會被提示是否想要將選擇的條目移動到循環中。點擊 Yes 按鈕。
- 循環下的 Test Element Details(圖13),輸入數據池值的數量(這里是6個)。
圖13:循環的 Test Element Details

- 保存后執行測試套件。
如果您查看測試運行時的 Return Equal Verification Points 報告(圖14),您會看到有6個確認點被執行,并且全部通過。
圖14:Return Equal Verification Points 報告

如果您查看測試日志中 Events 樹的 Web 服務調用請求和回應,您會看到所有的數據池記錄都被正確的調用。如果您想要移除一個置換,那么您只需要右鍵點擊并選擇 Remove Substitution 按鈕。
一個 Web 服務請求可能包含先前請求響應中返回的數據值。例如,假象在一個過去的商業服務公司的項目中,第三方合作伙伴使用一個 Web 服務請求您的系統的信息。對請求的響應是一個簡單的確認,它包含一個稍后將要發送的響應的引用號。您需要使用這個引用號來手機第二個響應的信息。因此,在您的測試中,對于每一個您啟動的會話來說,都有第一個響應和第二個請求之間數據相關的兩個請求 XML 文件和兩個響應 XML 文件。
在 Rational Tester for SOA Quality 中,您可以使用一個域的引用來執行這類的操作。在一個 Web 服務測試中,請求中的數據在哪里,由先前請求的響應中包含的數據決定,請求數據被它所依靠的響應數據所置換。這個響應和請求數據的內部標簽的條件是數據相關性。
一個域的引用是測試中的一個值,它可以被測試中的一個并發值所使用。當測試碼生成程序檢測到一個需要被先前值置換掉的請求值時,它會指定早一些到來的值作為引用,并將并發的請求值和引用關聯起來。
提示:
您可以手動將測試中的兩個值關聯或者解除已經存在的關聯性。
讓我們看一個使用 doSpellingSuggestion 的例子。您將會在第一個請求中查找到一個拼寫錯誤的單詞,然后您需要響應這個請求,并將它注入另一個 doSpellingSuggestion 調用,并且要驗證沒有任何建議被返回。這個例子有一些冗余,但是它闡明了我在一個真實項目中遇到的一個情況。
- 建立一個新的測試套件,覆蓋第一個測試套件的 doSpellingSuggestion 調用。粘貼調用兩次,它的結構應該和圖15類似。
圖15:建立第二個 doSpellingSuggestion 調用

- 在第一個 doSpellingSuggestion 調用中,選擇 Test Contents 樹的響應,然后選擇 Details 標簽。
- 選擇返回元素。
- 右鍵點擊 Value 域,然后選擇 Create Field Reference。
注意,元素變成了藍色,Value 域的背景顏色發生了改變,一些藍色的箭頭圖標出現在了響應節點的 Test Contents 樹中(圖16)。這種情況顯示了一個已經定義的域引用。
圖16:定義一個域的引用的指示器

- 在第二個 doSpellingSuggestion 調用中,選擇 Test Contents 中的請求,然后選擇 Details 標簽。
- 選擇片語元素。
- 右鍵點擊 Value 域。然后選擇 Substitute From > /Envelope/Body/doSpellingSuggestionResponse/return。
注意,正如同置換一樣,域引用同樣也是動態構成的。這一次,片語元素變成了紫色,Value 域的文本被紫色高亮顯示,一些綠色的箭頭圖標出現在了請求節點的 Test Contents 樹中(圖17)。這表示測試正在使用一個域的引用。
圖17:使用一個域的引用的指示器

- 請確保您選擇了第二個調用上的 Equal Verification Point ,并且移除了值(因為引用值的請求的拼寫都應該正確)。
如果現在您再次運行測試,兩個校驗點都會通過,如果查看測試日志中的細節信息,所有的使用值都在每一個請求和響應 XML 中。如果您想要移除一個域的引用,右鍵點擊并選擇 Remove Field Reference。
這篇文章介紹了 Rational Tester for SOA Quality 動態數據的一些基本內容。按照您的需要任意混合搭配置換和引用。如果您想要學習更多關于在 Web 服務測試中使用動態數據的內容,請訪問下面資源部分的文章,課程和站點列表。
文章來源于領測軟件測試網 http://www.k11sc111.com/