【轉載】LoadRunner性能測試入門教程詳解
第一章:性能測試基礎
1-1. 大話性能測試
性能測試
使用自動化測試工具對產品按一定的性能指標進行測試,解決性能瓶頸,給用戶最好的體驗。
性能測試的時代背景,作用
BAT
網站(baidu),軟件(T),遊戲......
金融( 銀行,證券系統),教育(教務系統),交通(12306)
性能測試基本流程
性能測試需求分析--->性能測試計劃---> 性能測試準備
1、性能測試需求分析
項目經理
業務/架構專家
產品經理
高級性能測試工程師
開發經理
2、性能測試計劃
高級性能測試工程師
項目經理
架構師
產品經理
3、性能測試準備
性能測試工程師
外部支持(網絡工程師,系統管理員)
開發腳本/執行測試<--->測試結果分析<------->系統調優<-----> 編寫測試報告
1、開發腳本/執行測試
高級性能測試工程師
性能測試工程師
2、測試結果分析
高級性能測試工程師
外部支持 (系統管理員、DBA)
3、系統調優
架構師
產品經理
高級性能測試工程師
外部支持(DBA)
二、web性能測試常用指標
1、響應時間
相應時間:2-5-8原則
2、吞吐量(Throughput)
3、資源使用率(Resource utilization)
CPU,內存,磁盤I/O,網絡I/O
4、每秒點擊數(Hits per second)
5、並發用戶數(Concurrent users)
三、LoadRunner軟件
性能測試利器,LoadRunner.
http://127.0.0.1:1080/WebTours/
用戶名:jojo
密碼:bean
測試需求:登錄webTours訂票網站,預定一張機票後退出。
錄制腳本
1、啟動web服務器
2、打開Virtual User Generator界面
3、選擇腳本協議
4、進行頁面操作
5、回放腳本(Replay)
回放是驗證腳本是否能夠正常運行。
驗證腳本
回放腳本
設置關聯
許多應用程序都使用動態值,每次使用應用程序時這些值都會變化。例如,有些服務器會為每個新會話分配一個唯一的會話ID.回放錄制的會話時,應用程序創建的新會話ID與錄制的會話ID不同>LoadRunner通過關聯解決了這種問題。關聯動態值(在本例中為會話ID)保存到參數中。運行模擬場景時,Vuser並不使用錄制的值,而是使用服務器分配的新會話ID.
->設置webtours網站,錄制腳本使用用戶登錄時會產生會話ID,從而導致回放失敗。
-->找到關聯參數,進行手動關聯,現次回放。
html模式與url模式
在默認情況下,選擇"HTML-based script",說明腳本采用HTML頁面的形式來表示,這種方式的腳本容易維護,容易理解,推薦以這種方式錄制。
"URL-based script0" 說明
腳本中的表示采用基於URL的方式,所有的HTTP請求都會被錄制下來,單獨生成函數。
所以URL模式生成的腳本會顯得有些雜亂。URL錄制的腳本中web_concurrent_start函數是並發組開始的標記,web_comcurrent_end是並發組的結束標記。在並發組中的函數不是立即執行的。在並發組開始時,所有的函數首先被記錄下來,當並發組結束時,所有的函數並發執行。
選擇HTML還是URL錄制,有以下參考原則:
(1)基於瀏覽器的應用程序推薦使用HTML-based script.
(2)不是基於瀏覽器的應用程序推薦使用URL-based script.
(3)如果基於瀏覽器應用程序中包含了JavaScript並且該腳本向服務器器產生了請求,使用URL-based script方式錄制。
(4)基於瀏覽器的應用程序中使用了HTTPS安全協議,使用URL-based script方式錄制。
添加事務
1、事務 (Transaction)是這樣一個點,我們為了衡量某個操作的性能,需要在操作的開始和結束位置插入這樣一個範圍,這就定義了一個transaction.
2、原因
從性能測試的角度出發,我們需要知道不同操作所花費的時間,這樣我們就可以衡量不同的操作對被測系統所造成的影響,那麽我們如何 知道不同的操作所花費的時間,這就用到了事務,我們在操作這前插入一個事務開始標識,在操作完成後插入一個事務結束表示,這樣我們就知道了這個操作所花費的時間。
3、事務的作用:LoadRunner運行該事務的開始點時,LoadRunner就會開始計時,直到運行到該事務的結束點,計時結束,這個事務的運行時間在LoadRunner的運行結果中會有反映。通谷的講LoadRunner中的事務就是一個計時標識,LoadRunner在運行過程中一旦發現事務標識,就開始計時,一旦發現事務的結束表示,則計時結束,這個過程中得到的趕時間即為一個事務時間。通常事務時間所反映的是一個操作過程的響應時間。
4、函數構造
事務開始函數共包括一個參數,就是事務的名稱,事務結束函數共包括兩個參數,第一個參數是事務的名稱,第二個參數是事務的狀態。事務的狀態可以為LR_PASS:返回"Pass"返回代碼:LR_FAIL;返回"Fail", 返回代碼:LR_STOP;返回"Stop";返回代碼:LR_AUTO,自動返回檢測到的狀態。
Duration表示事務的完成響應時間,wasted time包括事務中函數自身執行所消耗的時間。
腳本參數化
錄制日誌
在錄制和回放的時候,VU會分別把發生的事件記錄成日誌文件,這些日誌文件有利於我們跟蹤VU和服務器的交互過程。
1.回放日誌(Relay Log)
腳本回放運行時的輸出都記在這個Log裏。
“輸出”窗口的“回放日誌”顯示的消息用於描述Vuser運行時執行的操作。該信息可說明在方案中執行腳本時,該腳本的運行方式。腳本執行完成後,可以檢查“回放日誌”中的消息,以查看腳本在運行時是否發生錯誤。
“回放日誌” 中使用了不同顏色的文本
黑色:標準輸出消息
紅色:標準錯誤消息
綠色:用引號括起來的文字字符串(例如URL)
藍色:事務信息(開始、結束、狀態和持續時間)
橙色:叠代次數信息
如果雙擊操作名開始的行,光標將會跳到生成的腳本中的相應的步驟上。
2、錄制日誌
當錄制腳本時,Vugen會捕獲Client端(瀏覽器)與Server端(服務器)之間的對話,
並且通通記錄下來,產生腳本。在Vugen的Recording Log中,我們可以找到瀏覽器與服務器之間所有的對話,
包含通信內容、日期、時間、瀏覽器的請求、服務器的響應內容等。
3、產生日誌
產生日誌記錄了腳本錄制的設置、網絡事件到腳本函數的轉化過程。
移動APP腳本錄制
安裝LR_03103_patch_4
Mobile App(HTTP/HTML)
Java Vuser虛擬用戶
Java vuser 是自定義虛擬腳本,腳本中可以使用標準的java語言
環境配置
1、安裝jdk,註意:lr11最高支持1.6
2、配置環境變量
3、在lr選擇java Vuser協議
腳本結構
一般在init中編寫初始化腳本,在action中編寫業務流程,在end編寫釋放資源的內容。
適用範圍
1、不太適合錄制的業務功能性能測試,如視頻播放,http文件下載
2、利用java語言開發的應用系統。
錯誤處理函數
VuGen提供了錯誤處理函數lr_continue_on_error,用來在腳本中實時修改Vuser的出錯設置.
lr_contine_on_error函數語法結構如下:
void lr_continue_on_error(int value);
value是腳本運行出錯設置的取值,具體取值及相應值的含義如表所示。在使用表中的參數時,即可以
使用常量名稱作為參數,也可直接使用對應常量值作為參數。
腳本編寫最佳實踐
有過開發經驗的朋友者知道,程序的開發大多不是一蹴而就的,通常要以過代碼評審‘編碼和測試等流程後,
才會趨於穩定。而VU腳本本身雖不算復雜,但VU腳本運行往往涉及多個因素,也會經常出問題。提早發現和解決腳本中的問題,不僅從技術上下工夫,在流程上也要做文章。通常驗證一個腳本的比較好的過程是這樣的:
1、Generate:錄制或開發腳本。
2、SUSI(Single User Singel Iteration,單用戶單循環):運行錄制生成的腳本,解決可能存在的關聯問題。
3、SUMI(Single User Multi Iterations,單用戶多循環):參數化腳本,在Run-time中設置Iteration,再次運行,驗證參數化問題。
4、MUSI(Multi User Single Iteratins,多用單循環):Controller裏多用運行腳本,驗證腳本中可能的多線程同步問題。
5、MUMI(Multi User Multi Iteration,多用戶多循環):即性能測試開始。
其中1~3是在VU中進行的,而4~5是在Controller是進行的。
LR常見報錯處理方法
Virsual User Generator小結
1、腳本腳本,App腳本,java腳本
2、回放驗證
關聯設置,日誌分析
3、腳本增強
添加事務,參數化,內容檢查,錯誤處理
4、負載準備
SUSI,SUMI,MUSI,MUMI腳本驗證流程
---------------------
出自作者:tjjingpan
來源:CSDN
原文:https://blog.csdn.net/tjjingpan/article/details/77368066
【轉載】LoadRunner性能測試入門教程詳解