程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Rational >> 如何利用Rational Performance Tester 監控系統狀態

如何利用Rational Performance Tester 監控系統狀態

編輯:Rational

引言

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 郵件為例,代碼如下:

清單 1.Send email
    public String exec(ITestExecutionServices tes, String[] args) { 
ITestLogManager logMgr = tes.getTestLogManager();
String address = {address};
sendMail(address);
logMgr.reportMessage("serverDown---sendMail");
return null;
}
public static void sendMail(String address) { 
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", {mailHost});
Session s = Session.getInstance(props);
s.setDebug(true);
MimeMessage message = new MimeMessage(s);
try {
InternetAddress from = new InternetAddress({InternetAddress});
message.setFrom(from);
InternetAddress to = new InternetAddress(address);
message.setRecipient(Message.RecipientType.TO, to);
message.setSubject("System alert");
String content = "Hello Monitor,now server down! Please check it.
                         This is an auto-reply email. Please don't reply!";
message.setContent(content, "text/html;charset=GBK");
message.saveChanges();
Transport transport = s.getTransport("smtp");
transport.connect({mailHost},address);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
}
}

監控系統狀態

RPT 每 10 分鐘向系統發起一次測試,即可提供 7*24 小時的監控系統。新建一個 schedule

File --> New -->Performance Schedule:

圖 13.創建監控 Schedule

點擊 Finish,完成創建 schedules.

設置 Userload

由於 24*7 小時內,一共要監控 1008 次,所以在本例中,設置 Number of users 為 1100 個,每個 user 間隔 10 分鐘,如下圖所示:

圖 14.設置 Userload

查看本欄目

設置 user load 後的效果如下圖所示:

Figure xxx. Requires a heading

監控系統

(1)在 Monitor Schedules 裡 add test:

圖 15.在 Schedules 裡 add test

(2)add test 後的效果如下圖所示:

圖 16.監控 Schedule 創建完畢

點擊圖 16 中的綠色 run 按鈕後,就可以對系統進行監控了。

查看本欄目

監控效果展示

當系統出現問題後,相關人員會收到主題為System alert 的郵件,郵件的主題和內容都是在 custom code 裡定義的。下面展示 4 種 monitor 的結果:

(1)當 server down 時,本例在郵件中的內容為通知相關工作人員:系統宕機。發送的監控郵件效果如下圖所示:

圖 17. Server down 時 RPT 發出的郵件

(2)當系統的不能處理用戶提交的問題時,本例在郵件中的內容為通知相關工作人員:系統無法提交問題。發送的監控郵件效果如下圖所示:

圖 18. Cannot submit question 時 RPT    發出的郵件

(3)當系統處理用戶提交的問題失敗時,本例在郵件中的內容為通知相關工作人員:系統處理問題失敗。發送的郵件效果如下圖所示:

圖 19. Question failed 時 RPT    發出的郵件

(4)當系統處理用戶提交的問題,超過 5 分鐘還未處理完成時,本例在郵件中的內容為通知相關工作人員:系統處理問題超過 5 分鐘。發送的郵件效果如下圖所示:

圖 20. Question processing 時 RPT    發出的郵件

總結

本文以典型的基於 J2EE 的 Web 項目為例,探索了如何使用 Rational Performance Tester(RPT)對系統進行 7*24 小時的監控。您可以根據本文介紹的方法,對基於 B/S 或者 C/S 架構的系統進行監控其是否處於正常狀態,能否滿足用戶的需求。系統出現故障時,相關人員會收到 System alert 郵件,進而及時處理系統的異常。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved