Rational Performance Tester 數據關聯規則詳解(2)

發表于:2011-12-09來源:未知作者:娃娃點擊數: 標簽:
3.4 重定向 當某請求的響應代碼為 301,302,303,307 時,RPT 會自動將響應頭中的 location 的真實路徑作為引用,搜索后續請求的完整 URL,當發現匹配時進行

  3.4 重定向

  當某請求的響應代碼為 301,302,303,307 時,RPT 會自動將響應頭中的 location 的真實路徑作為引用,搜索后續請求的完整 URL,當發現匹配時進行自動關聯,如圖 5 示例:

  圖 5. 重定向 URL 自動數據關聯

圖 5. 重定向 URL 自動數據關聯

  3.5 請求內容

  如果請求內容中出現由 & 符號連接的“name=value”字段,則同 3.3 節,搜索最近出現的響應頭或響應內容中的 name=value,進行自動關聯,如圖 6 示例:

  圖 6. 請求內容自動數據關聯

圖 6. 請求內容自動數據關聯

  如果請求內容為 XML 文檔格式,即以“

  圖 7. XML 請求內容自動數據關聯

圖 7. XML 請求內容自動數據關聯

  4. 基于 Jazz 產品的數據關聯算法

  IBM 基于 Jazz 平臺的軟件應用產品是 Jazz Foundation Services 的擴展實現,其基于 REST(Representational State Transfer)規范,以 REST API 的形式提供數據和服務的訪問,也就是說可以通過 HTTP 的 POST/GET/PUT/DETELTE 方法來實現數據的 CREAT/READ/UPDATE/DELETE。

  圖 8. 基于 Jazz 產品的數據關聯

圖 8. 基于 Jazz 產品的數據關聯

  RPT8.1 針對 Jazz 協議提供了在 HTTP 協議基礎上的默認的數據關聯規則支持,如圖 2。

  對于完整的請求 URL,除了自動實施上述 HTTP 協議的通用關聯規則外,還要搜索最近的響應內容中出現的符合正則表達式 (?s)

.*?src=\"(.*?)\",將 src 字段的值作為引用,從而實現自動關聯,如圖 9 所示:

  圖 9. Jazz URL 自動數據關聯一

圖 9. Jazz URL 自動數據關聯一

  對于請求頭或請求內容中出現由 & 符號連接的“name=value”字段,除了自動實施上述 HTTP 協議的通用關聯規則外,還要對 name 匹配,如果 name 以“id”(不區分大小寫),“Area”,“uuid_versionable”,“Values”結尾,則向前在響應中搜索最近出現的 value 字段作為引用,實現自動關聯,如圖:

  圖 10. Jazz URL 自動數據關聯二

圖 10. Jazz URL 自動數據關聯二

  5. 數據關聯規則擴展

  然而在 Jazz 產品性能測試的實踐過程中,我們發現,由于采用了 web2.0 等新技術,腳本的請求變得愈加復雜,使得目前的數據關聯規則不能滿足需要,數據關聯成為測試腳本編輯和調試的瓶頸。因此在實際測試項目實踐的基礎上,借助 RPT 提供的數據關聯擴展功能,我們在測試生成過程中實現了針對需求的 RPT 數據關聯擴展規則。

  首先需要了解測試生成階段的數據關聯原理。自動數據關聯的實現類為 DataCorrelator 類。在測試生成階段,RPT 數據關聯引擎調用其方法 CorrelateAll(),該方法將遍歷每個數據關聯插件,調用插件中的 findSubs() 方法,找到需要替換的變量和位置,并將其加入列表 subSites 返回。之后擴展插件的 findReference() 方法搜索關聯源并生成引用,默認從被替換的位置開始,向上搜索,直到找到最近的相匹配的引用。如圖 11。

  圖 11. RPT 自動數據關聯原理圖

圖 11. RPT 自動數據關聯原理圖

  因此,如果需要實現數據關聯的擴展規則,則需要開發處符合自身被測試的應用需求的數據關聯插件。本節將以自定義的插件 com.ibm.rational.test.lt.datacorrelation.testgen.rta(簡稱 rta)為例進行闡述,該插件應用于基于 Jazz 產品的性能測試,主要功能是按照用戶定制需求,將 RPT 自動生成的某些數據關聯去掉,同時生成一些測試需要的關聯。

  RPT 提供了與數據關聯相關的擴展點:

com.ibm.rational.test.lt.datacorrelation.testgen.DCTestgenProto
例子插件 rta 中,實現該擴展點的代碼為:
<extension
 point="com.ibm.rational.test.lt.datacorrelation.testgen.DCTestgenProto">
 <dcProtoAdapter
 class="com.ibm.rational.test.lt.datacorrelation.testgen.rta.RTAProtoAdapter"
 generic="false"
 protoType="com.ibm.rational.test.lt.models.behavior.http.HTTPRequest"
 uniqueID="rtaProtoAdapter">
 </extension>

  其中,point 為擴展點;protoType 為插件將要處理的協議的類型,例如 HTTP 協議為 com.ibm.rational.test.lt.models.behavior.http.HTTPRequest,因為基于 Jazz 的產品的性能測試是在 HTTP 協議的基礎上處理的,所以該 rta 插件的協議類型亦聲明為與 HTTP 協議相同;generic 是一個 boolean 型變量,如果取值為 True,在有多個插件共同處理同一協議類型時,此插件將會最后被調用;uniqueID 為該插件的唯一標識。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97