Rational Performance Tester 資料關聯規則詳解

myattitude發表於2010-07-20
李 麗萍, 資深軟體工程師, IBM
王 建秋, 效能測試工程師, IBM

簡介: 利用 Rational Performance Tester(RPT)進行效能測試的過程中,資料關聯往往是測試指令碼編輯和除錯過程中最繁瑣的工作,直接影響測試指令碼除錯的效率。基於使用中的最佳實踐,RPT 提供了一套自動資料關聯規則,能夠滿足大部分測試指令碼的需求。在被測系統非常複雜的情況下,RPT 還提供了擴充套件資料關聯規則的功能,可以最大限度的滿足使用者需求。本文詳細描述了 RPT8.1 提供的自動資料關聯規則及擴充套件資料關聯規則的方法,旨在幫助讀者瞭解 RPT 所能提供的資料關聯,並根據業務需求擴充套件規則,提高測試指令碼開發的效率。

1. 概述

Rational Performance Tester(以下簡稱為 RPT)是由 IBM Rational 團隊開發的效能測試產品。其內在支援的 HTTP 協議使得其廣泛應用於 Web 應用程式,用於驗證系統的效能,識別和解決各種效能問題。RPT 的測試分為五個階段:測試指令碼生成、指令碼編輯、負載設計、測試執行和結果分析。

在 RPT 針對 web 應用錄製生成的測試指令碼中,某個 HTTP 請求中的資料常常依賴於前面請求的響應內容中的資料,如被測系統為每個新建立的資源(resource)分配一個 ID 並返回,以後對該資源的操作需要使用該唯一值來進行標識。為了保證測試在多使用者和不同資料輸入的情況下正常執行,該請求中的資料需要被替換為其所依賴的響應資料,我們稱該響應資料為引用,這種指令碼內部的連結稱為資料關聯

資料關聯往往是測試指令碼編輯和除錯階段最繁瑣的工作,直接影響測試指令碼除錯的效率。鑑於資料關聯的複雜性,RPT 根據內嵌的演算法提供了一套自動資料關聯規則,在測試指令碼生成階段,當自動資料關聯演算法檢測到一個請求值需要被前面的響應資料替換,會自動將該響應資料設定為引用,並將隨後的請求值自動與該引用關聯起來。該自動關聯規則基於使用中的最佳實踐,能夠滿足大部分測試指令碼的需求。在被測系統非常複雜的情況下,RPT 還提供了擴充套件資料關聯規則的功能,可以最大限度的滿足使用者需求。

本文詳細描述了 RPT8.1 提供的根據演算法生成的自動資料關聯規則,並給出了 RPT 擴充套件資料關聯規則的方法,旨在幫助讀者瞭解 RPT 所能提供的資料關聯,根據業務需求擴充套件規則,提高測試指令碼開發的效率。


2. 設定 RPT 的自動資料關聯

通過選擇視窗→首選項→測試生成→HTTP 測試生成資料關聯協議選項卡,可以修改或關閉 RPT 的自動資料關聯功能,如圖 1 為 HTTP 測試生成中資料關聯的通用設定,圖 2 為基於 HTTP 協議的具體應用的支援,其中包括對 IBM Rational 下一代協作軟體交付平臺—Jazz 的支援。本文中的自動資料關聯規則基於如圖的預設設定。


圖 1. HTTP 測試生成的資料關聯配置 1
圖 1. HTTP 測試生成的資料關聯配置 1 

圖 2. HTTP 測試生成的資料關聯配置 2
圖 2. HTTP 測試生成的資料關聯配置 2 

3. HTTP 協議的 RPT 自動資料關聯

3.1 主機和埠

基於 Web 的應用程式可能在一個測試,甚至在一個頁面中會發起多個連線連線不同的伺服器。如圖 3,在“測試內容”中,每個連線由相關聯的請求下面的一個圖示表示。選擇連線,就可以看到具體連線資訊和測試中使用這個連線的所有請求。由於最初錄製的效能測試以後有可能需要在不同的系統環境中執行,可能有不同的主機或不同的埠,所以 RPT 提供了主機和埠的自動關聯,圖中該連線的主機自動關聯到變數 192.168.0.27_Host,埠自動關聯到變數 192.168.0.27_Port。


圖 3. 主機和埠的自動資料關聯
圖 3. 主機和埠的自動資料關聯 

圖 3 大圖

3.2 Cookie

Cookie 由伺服器生成,通常用來儲存一些動態資料,如會話 ID、認證 token,從而辨別使用者身份,進行會話跟蹤等。用 Cookie 的形式提交動態資料的好處是其值往往來自 Cookie 自身。如果伺服器選擇使用 Cookie,會使用 Set-Cookie 語句在 HTTP 響應頭中指定這些資料和值。當客戶應用程式發出後續請求時,會將這些 Cookie 包含在 HTTP 請求頭中發出。RPT 能夠自動實現 cookie 的資料關聯,在指令碼回放時自動將請求中的 cookie 值替換為伺服器實際返回的值。

3.3 URL

URL 的一般語法格式為 :

http[s]://hostname[:port]/path/[;parameters][?query]#fragment

query 欄位通常是由 & 符號連線的若干個“name = value”組成,RPT 首先從中分析出所有的 name 欄位,將其放入特定列表,當生成測試指令碼時,會搜尋最近出現的響應頭或相應內容中的 name=value,將 value 作為引用,自動與該 URL 中的 value 關聯,如圖 4 示例。


圖 4. URL 自動資料關聯
圖 4. 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 文件格式,即以“

相關文章