本文以典型的基于 J2EE 的 Web 項目為例,介紹了如何利用 Rational Performance Tester(RPT)對系統進行 7*24 小時的監控。詳細說明了如何進行錄制、測試以及監控的步驟,最后對監控效果進行了展示。
引言
Rational Performance Tester 一般都是用來測試系統的性能,可以測試系統在某個時間能夠同時承載的用戶個數;測試一段時間內系統能支持多少個用戶進行操作;測試系統在一段時間內性能的變化情況等等。但是除此常規功能外,我們發掘到了 Rational Performance Tester 還具備其他強大的功能---monitor。本文以典型的基于 J2EE 的 Web 項目為例,介紹如何利用 Rational Performance Tester 檢測系統狀態,進而達到借助 RPT 進行監控系統狀態的目的。
回頁首錄制測試場景
在使用 Rational Performance Tester 監控系統前,首先應將用戶場景錄制下來,用于后期 RPT 自行模擬用戶操作,進而測試系統所處的狀態。
圖 1. 使用 RPT 進行監控系統
下面介紹下如何在 RPT 里新建工程和新建 test,以及如何修改錄制后的 test。
新建工程
首先介紹新建工程的步驟:File --> New -->Performance Test Project,如下圖所示:
圖 2. 新建測試工程
輸入 Project name 后,點擊 Finish,新建工程完畢。
新建 test
其次介紹新建 test 的步驟:File --> New -->New Test From Recording,如下圖所示:
圖 3. 新建測試 test
點擊 Next,選擇 test 要被存放的路徑,然后輸入 test 的 File Name:
圖 4. 為新建的 test 命名
然后點擊 Next,選擇瀏覽器,本文以 IE 瀏覽器為例:
圖 5. 選擇瀏覽器
點擊 Finish,即可開始錄制。
修改 Page title
錄制完成后,將 Monitor 文件各個步驟的 Page title 設置為符合用戶場景的 title,以方便用戶在后期查看日志記錄,詳細的 Page title 可以讓用戶清晰的看懂運行后的 log。如下圖所示,點擊 title 后,就可以修改其 name 了。
圖 6. 修改 Page title
根據用戶場景,添加延遲
根據 Scenario,設置一些延遲(delay),delay 時間多久可以由用戶根據實際場景自定義。比如:刷新頁面后,需要等待一分鐘再退出系統,則在 Refresh 下 insert 個 Delay,設置 delay 時間為 1s,效果如下圖所示:
圖 7. 添加 delay
回頁首測試系統狀態
利用 RPT 監控系統的原理是:首先用 RPT 對系統進行測試,通過捕獲系統所處的狀態,然后對每個異常場景進行處理,并發送郵件通知相關工作人員當前系統所處的異常狀態。下面以 server down 這個 scenario 為例,來介紹如何監控系統。當系統 server down 后,訪問系統時頁面出現如下圖所示的提示信息。
圖 8. Server down 時網頁信息
捕獲頁面 response 內容
如下圖所示,Create Field Reference,對頁面的 response 內容進行捕獲:
圖 9. 創建 reference field
判斷系統狀態
通過 insert If 判斷頁面 response 內容里是否含有 Server Error,如果含有 Server Error,則證明 server down。
(1)insert If 判斷語句,并將前文中創建的 field reference 添加為 if 條件的 First operand:
圖 10.添加 if 條件的 First operand
(2)添加 if 條件內容,即判斷頁面的 response 內容里是否含有提示 server down 的相關信息,本例中當 server down 后,頁面上提示信息中含有 Server Error,所以本例添加 if 條件后,效果如下圖:
圖 11.添加 if 條件的 Second operand
Add Custom code
在 If 語句下,add custom code,如下圖所示:
圖 12.Add Custom code
Send email
在 custom code 里對捕獲的系統狀態進行處理,郵件的主題和內容支持在 custom code 里自定義,以 server down 時發送 System alert 郵件為例,代碼如下:
原文轉自:http://www.ibm.com/developerworks/cn/rational/1311_zhangqq_rpt/index.html