當然,我寫這篇文章的目的主要是做一份備忘錄。原因很簡單,就是三年多以前曾用過一段時間的LR,本以爲這次測試會輕車熟路,可不曾想,連最簡單的併發用戶數都忘在哪裏設置了,所以鑑於此,纔有感做記錄的‘必要性’。所以本文的內容兼筆記和實戰於一身,呵呵。好了,費話少說,let’s go!
首先,我要在本地搭建一個測試環境,而這個測試環境是一個小型的內部網絡,包括一臺1u的服務器,一臺TPLINK交換機和一臺安裝了lr的機器。而爲什麼要這樣做,原因很簡單,如果使用公司局域網,首先就要受到網絡內部流量的影響以及限流軟件的限制,如果再有一兩個同事開個什麼‘雷’呀,‘驢’呀,‘米’呀的下載器,那就更熱鬧了,很難最終把壓力和網絡流量模擬上來,所以我就直接通過網管找來了這三臺設備,給成了一個100m的內部網絡,這樣能夠從根本上確保1000 的併發用戶數(v_user)。
這裏要聲明的是,本身用的是loadruner8.0,且是破解版。呵呵,你沒看錯,因爲我很窮,沒這份財力去購買正版的lisence,所以這裏就只能‘那個’了。同時,爲了確保安裝的lr正常運行,我直接將其安裝在了window2003+ie6的平臺上,這是lr比較標準的系統運行環境。在完成安裝和lisence註冊後,下面就來看一下其使用流程。
第一步:錄製腳本
下面就是一個錄製腳本的過程:
因爲測試的是WEB應用,所以在創建項目窗口中選擇http協議。
然後緊接着在下面窗口中填入要測試程序的http鏈接地址,然後點擊確定。這時lr就會啓動ie6並按之前我們設置的網址訪問該應用。
這裏我們可以看到下面的events在不斷的累加,這些events我們可以看成是一個個http請求處理操作(比如下載js,css,圖片等)。
接着我們點擊該錄製工具的“new action”圖標來新建一個action,這樣做的目的就是將我們測試流程中的每一個環節分別定義,以便在後續分析壓力測試結果時能夠一目瞭然,呵呵。
我們在新的action中,定義爲“showforum”(即顯示版塊信息),然後我們就去點擊一個論壇版塊鏈接,如下:
注:我習慣於將action的名稱定義爲鏈接頁面名稱,這樣比較直觀。
這裏我們看到events累加數又在變化。這時我們再創建一個action,以記錄發主題的操作,這裏因爲我們的產品在3.0中支持了彈窗功能,所以我們就將該action記錄爲"pop_posttopic”, 然後我們點擊一個當前showforum頁面的“新帖”按鈕,這樣發帖頁面就被彈出來了,如下圖:
這裏大家看到了吧,即使是ajax彈窗,lr也會‘忠實’的加以記錄。
這裏我們簡單的輸入一些信息,然後在創建一個新的action叫‘posttopic’,也就是提交主題,接着我們點擊發布按鈕,這樣就將提交主題流程也記錄下來了。
大家會發現當發佈成功後,頁面會跳轉到showtopic。換句話說'posttopic’這個action中包含提交和跳轉兩個操作,不過沒關係,等測試報告出來時,我們可以看到這一個action中的兩個操作分別的執行時間,頁面體積等信息。
按一般人瀏覽論壇的習慣,就是其會在不同的版塊和話題之間‘翻來覆去’的‘折騰’,所以我們就再創建一action,叫'showforum_2’,以代表其跳轉版塊的行爲,然後點擊導航鏈接上的按鈕,如下圖:
當頁面跳到showforum頁面下時,我們再創建一個action,叫showtopic_2,以代表用戶又打開了一個新主題。然後我們就隨便點一個主題帖。這樣就基本上完成了一個主要的操作流程。最後我們在錄製工具的下拉框中找到“vuser_end”這個action,以此作爲最後一個action的操作,平時我把‘註銷(退出登陸)’操作做爲這個action的內容,而今天我以‘跳轉回首頁’作爲了“vuser_end”這個action的內容了。
這樣,錄製工具就完成了,我們點擊錄製工具條上的那個方塊圖標,來結束錄製,如下圖:
下面我們來看一下lr給我們生成的相關腳本。如下圖:
直接從腳本上來看,基本上就是每個action所訪問頁面內容中的鏈接,腳本及相關文件的鏈接信息。lr就是藉助這些信息來依次執行相關操作的。
下面我們可以接着設置一下我們剛纔錄製腳本時所做的‘一系列操作’的‘重複次數’,我們可以通過點擊lr上的工具欄圖標來進行設置,如下圖:
在彈出窗口中,我們可以設置重複次數,圖中的設置是重複這些操作5次。
當然我們還可以設置每個action執行完之後的間隔時間,這一點我們可以理解成爲:當我們看一個帖子時,不會一打開頁面就跳轉或關閉,肯定會看完相應內容之後才執行‘後續操作’。不過爲了最大限度的給服務器和數據庫‘製造壓力’,這裏用的是默認設置,即一個action操作完後馬上執行下一個action,如下圖:
我們可以用lr上的操作圖標,來看一下我們腳本的執行情況(注:按F10爲單步執行)
注:檢查腳本的執行情況主要是爲了後續工作考慮,因爲有些腳本錄製的內容可能不正確或不是我們想要的,我們可以酌情修改。
好了,今天的內容就先到這裏了,在後續的文章中,將會介紹如果設置併發用戶,以及生成保存測試結果,以及如果分析測試報告,因爲一切工作都是爲了生成一份儘可能準確,客觀的‘報告’,從而能快速幫助我們找出‘系統瓶頸’,從而重點加以優化。