(十三)性能測試從零開始——LoadRunner入門

 

5.2  錄製腳本
        VU通過錄制用戶在客戶端軟件的操作來直接生成腳本,用戶的每個協議級的操作以LoadRunner的API函數方式記錄在腳本里。回放腳本的時候,通過執行API函數來模擬最初用戶的操作動作。
5.2.1  選擇協議
        選擇協議的兩個基本原則已經在前文介紹過了。我們這裏看看LoadRunner具體有哪些協議。
        Vuser類型可根據應用領域分爲下列幾種:
 應用程序部署解決方案:Citrix ICA。
 客戶端/服務器:DB2 CLI、DNS、Informix、MS SQL Server、ODBC、Oracle(2層)、Sybase Ctlib、Sybase Dblib和Windows Sockets協議。
 自定義:C模板、Visual Basic模板、Java模板、JavaScript和VBScript類型的腳本。
 分佈式組件:適用於COM/DCOM、Corba-Java和Rmi-Java協議。
 電子商務:FTP、LDAP、Palm、PeopleSoft 8 mulit-lingual、SOAP、Web(HTTP/HTML)和雙Web/WinSocket協議。
 Enterprise Java Bean:EJB測試和Rmi-Java協議。
 ERP/CRM:Baan、Oracle NCA、PeopleSoft-Tuxedo、SAP-Web、SAPGUI、
 Siebel-DB2 CLI、Siebel-MSSQL、Siebel-Web和Siebel-Oracle協議。
 傳統:終端仿真(RTE)。
 郵件服務:Internet郵件訪問協議(IMAP)、MS Exchange(MAPI)、POP3和SMTP。
 中間件:Jacada和Tuxedo(6、7)協議。
 流數據:Media Player(MMS)和Real協議。
 無線:i-Mode、VoiceXML和WAP協議。
        當我們試圖創建一個新的Vuser的時候,就會彈出協議選擇對話框,如圖5-2所示。

1.JPG

圖5-2  VU協議選擇對話框
        有兩種協議選擇方式:單協議模式(New Single Protocol Script)和多協議模式(New Multiple Protocol Script)。
(1)單協議模式
        當用戶以單協議錄製時,VU只錄制在既定協議上的用戶操作,在VU中我們可以使用單協議模式選擇任何一種協議。
(2)多協議模式
        當用戶以多協議錄製時,VU錄製幾個協議上的操作。並不是任意的協議都可組合成多協議模式。有以下協議支持多協議錄製:COM、FTP、IMAP、Oracle NCA、POP3、Real Player、Windows Socket(raw)、SMTP和Web。雙協議Web/Win Socket應該被看做是單協議,因爲其機制與多協議還是不一樣的。
        不同類型的Vuser的另外一個區別是多Action的支持,一些協議支持多Action,目前這些協議是:Oracle NCA、Web、RTE、general C、WAP、I-Mode和voice XML。關於多Action是何物,又如何使用,可以參看本章“多Action”一節。

5.2.2  規劃腳本結構
        在錄製時,用戶可以選擇哪些操作生成腳本在vuser_init、Action和vuser_end中,同時,也可以在錄製時隨時加入transaction的定義、註釋和同步點。VU錄製工具條如圖5-3所示。
2.JPG

圖5-3  VU錄製工具條
5.2.3  HTTP Vuser中的URL mode和HTML mode
        在錄製之前,我們需要設置錄製選項,如圖5-4所示。
3.JPG

圖5-4  VU錄製設置選項
        在默認情況下,選擇“HTML-based script”,說明腳本中採用HTML頁面的形式來表示,這種方式的Script腳本容易維護,容易理解,推薦以這種方式錄製。
“URL-based script”說明腳本中的表示採用基於URL的方式,所有的HTTP的請求都會被錄製下來,單獨生成函數,所以URL模式生成的腳本會顯得有些雜亂。
  實例
        以HTML模式錄製,訪問“http://newtours.demoaut.com/”網站會生成下面的腳本:
Action()
{
  web_url("newtours.demoaut.com",
    "URL=http://newtours.demoaut.com/",
    "Resource=0",
    "RecContentType=text/html",
    "Referer=",
    "Snapshot=t1.inf",
    "Mode=HTML",
    LAST);
  return 0;
}
以URL模式錄製同樣的操作,會生成如下腳本:
Action()
{
  web_url("newtours.demoaut.com",
    "URL=http://newtours.demoaut.com/",
    "Resource=0",
    "RecContentType=text/html",
    "Referer=",
    "Snapshot=t1.inf",
    "Mode=HTTP",
    LAST);

  web_url("logo.gif",
    "URL=http://newtours.demoaut.com/images/nav/logo.gif",
    "Resource=1",
    "RecContentType=image/gif",
    "Referer=http://newtours.demoaut.com/",
    "Snapshot=t2.inf",
    LAST);

  web_url("html.gif",
    "URL=http://newtours.demoaut.com/images/nav/html.gif",
    "Resource=1",
    "RecContentType=image/gif",
    "Referer=http://newtours.demoaut.com/",
    "Snapshot=t3.inf",
    LAST);

  web_url("boxad1.gif",
    "URL=http://newtours.demoaut.com/images/nav/boxad1.gif",
    "Resource=1",
    "RecContentType=image/gif",
    "Referer=http://newtours.demoaut.com/",
    "Snapshot=t4.inf",
    LAST);
........................................
..........................................
//經統計,錄製生成的web_url函數有20個
return 0;
}
 是選擇HTML還是URL錄製,有以下參考原則:
(1)基於瀏覽器的應用程序推薦使用HTML-based script。
(2)不是基於瀏覽器的應用程序推薦使用URL-based script。
(3)如果基於瀏覽器的應用程序中包含了JavaScript並且該腳本向服務器產生了請求,比如DataGrid的分頁按鈕等,也要使用URL-based script方式錄製。
(4)基於瀏覽器的應用程序中使用了HTTPS安全協議,使用URL-based script方式錄製。
5.2.4  查看日誌
        在錄製和回放的時候,VU會分別把發生的事件記錄成日誌文件,這些日誌有利於我們跟蹤VU和服務器的交互過程。我們可以通過VU輸出窗口觀察日誌,也可以到腳本目錄中直接查看文件。其中有三個主要的日誌對我們的錄製很有用:
1.執行日誌(Execution Log)
        腳本運行時的輸出都記在這個Log裏。
        “輸出”窗口的“執行日誌”顯示的消息用於描述Vuser運行時執行的操作。該信息可說明在方案中執行腳本時,該腳本的運行方式。
        腳本執行完成後,可以檢查“執行日誌”中的消息,以查看腳本在運行時是否發生錯誤。
        “執行日誌”中使用了不同顏色的文本。
 黑色:標準輸出消息。
 紅色:標準錯誤消息。
 綠色:用引號括起來的文字字符串(例如URL)。
 藍色:事務信息(開始、結束、狀態和持續時間)。
        如果雙擊以操作名開始的行,光標將會跳到生成的腳本中的相應步驟上。
        圖5-5顯示了Web Vuser腳本運行時的“執行日誌”消息。
        執行日誌是我們調試腳本時最有用的信息。有關設置執行日誌級別調試腳本的技巧,在本章“高級——腳本調試技巧”一節中有詳細介紹。
2.錄製日誌(Recording Log)
        當錄製腳本時,Vugen會攔截Client端(瀏覽器)與Server端(服務器)之間的對話,並且通通記錄下來,產生腳本。在Vugen的Recording Log中,我們可以找到瀏覽器與服務器之間所有的對話,包含通信內容、日期、時間、瀏覽器的請求、服務器的響應內容等,如圖5-6所示。腳本和Recording Log最大的差別在於,腳本只記錄了Client端要對Server端所說的話,而Recording Log則是完整記錄二者的對話。因此通過錄制日誌,我們能夠更加清楚地看到客戶端與服務器的交互,這對我們開發和debug腳本非常有幫助。

4.JPG

圖5-5  VU腳本執行日誌

5.JPG

圖5-6  VU腳本錄製日誌
3.產生日誌(Generation Log)
        產生日誌記錄了腳本錄製的設置、網絡事件到腳本函數的轉化過程。
        提示 :這裏同樣需要注意的是:腳本能正常運行後應禁用日誌。因爲產生及寫入日誌需佔用一定資源。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章