1、虛擬用戶狀態(tài):
Down:關(guān)閉, Vuser處于關(guān)閉的狀態(tài)。
pending:掛起,Vuser已經(jīng)準(zhǔn)備好了,等待可用的負(fù)載生成器的調(diào)用。
Init:正在初始化,Vuser正在登陸遠(yuǎn)程計算機(jī)(負(fù)載生成器)。
Ready:就緒,已經(jīng)執(zhí)行執(zhí)行完腳本的初始化代碼,可以運(yùn)行。
Run:運(yùn)行,Vuser正在負(fù)載生成器中運(yùn)行。
Rendevous:集合點(diǎn),Vuser運(yùn)行到了集合點(diǎn)的位置,正在等待Loadrunner釋放。
Pass:通過,Vuser運(yùn)行完成,并且通過。
Failed:失敗,Vuser運(yùn)行完成,但是運(yùn)行失敗。
Error:錯誤,Vuser發(fā)生了問題(如:Vusermei沒有登錄到負(fù)載生成器上)。
Gradual Exiting:逐步退出,Vuser被調(diào)用了stop (窗口的stop按鈕,duration時間)命令后,正在運(yùn)行當(dāng)前的迭代。
Exiting:退出,Vuser已經(jīng)結(jié)束運(yùn)行已經(jīng)停止,正在退出。
Stop:停止,Vuser被調(diào)用了stop(窗口中的stop按鈕,duration時間)命令后。
一、并發(fā)測試
1、并發(fā)測試的兩個條件:
1)腳本中要加入并發(fā)點(diǎn)(集合點(diǎn))
2)控制臺中并發(fā)策略設(shè)置為第一種
2、步驟
1)錄制腳本(添加檢查點(diǎn)、集合點(diǎn)、事務(wù))
2)進(jìn)行運(yùn)行時設(shè)置、檢查腳本是否成功
3)在controller中進(jìn)行場景設(shè)計(場景計劃設(shè)計、集合點(diǎn)策略、運(yùn)行時設(shè)置)
4)運(yùn)行腳本,收集結(jié)果
5)在Anaoysis中進(jìn)行結(jié)果分析
6)編寫測試報告
3、集合點(diǎn)的三個策略
Pelease when x% of all Vuser arrive at the rendezvous :如果所有集合點(diǎn)等待的用戶數(shù)達(dá)到x%時,系統(tǒng)就會釋放用戶,繼續(xù)向下執(zhí)行。
Pelease when x% of all running Vusres arrive at the rendezvous:如果所有集合點(diǎn)等待的用戶數(shù)達(dá)到所有正在運(yùn)行用戶的X%時,系統(tǒng)就釋放用戶,繼續(xù)向下執(zhí)行。
Pelease when x? Vusers arrive at the rendezvous:如果集合點(diǎn)等待的用戶數(shù)達(dá)到x個時,系統(tǒng)就釋放用戶,繼續(xù)向下執(zhí)行。
Timeout?Vuser?between X sec:第一個Vuser到達(dá)后,Controller會計算等待下一個用戶時間,每當(dāng)有新的Vuser到達(dá)時,計算器就會充值為零。在超時時間內(nèi)如果下一個Vuser還未到來,controller會釋放所有當(dāng)前處于集合點(diǎn)Vuser,而不會考慮釋放條件是否滿足。
補(bǔ)充點(diǎn):
1、并發(fā)測試是考察系統(tǒng)的瞬間壓力承受能力,是比較嚴(yán)格的測試,所以不需要等待時間(思考時間、睡眠時間、think time)。-----忽略think time。
2、Lr結(jié)果報告中,顯示了事務(wù)的響應(yīng)時間的最小值、平均值、最大值、最小值,其中平均值比較重要。
3、平均方差越小(趨近于0),表示事務(wù)的響應(yīng)時間越接近,代表系統(tǒng)越穩(wěn)定。
4、90percent:表示執(zhí)行該事務(wù)的90%的用戶都可以在該時間內(nèi)完成操作。
5、100用戶共同執(zhí)行某事務(wù),其中1個用戶執(zhí)行時間為1000s,99個用戶執(zhí)行時間為0.001x,則90 percent和平均值哪個真實?---90percent值比較真實。---所以,讀報告時,不應(yīng)只看平均值,也要關(guān)注90 percent值。
6、Analysis 不能直接打開腳本生成器中的腳本結(jié)果,腳本生成器(VUG)中的腳本只能調(diào)試后點(diǎn)擊“run”來從replay log中查看結(jié)果。
7、當(dāng)腳本調(diào)試通過后---》加入到控制臺---》打開analysis。
8、一個腳本中一般只加入一個集合點(diǎn),比如一個腳本錄制的是一個流程(包含多個操作),則在每個事務(wù)前都添加一個集合點(diǎn)。該做法從語法角度沒有錯誤。但是如果腳本運(yùn)行結(jié)果有問題,不好分析。
9、事務(wù)里面不能包括思考時間,要么注釋思考時間,要么把思考時間移動到事務(wù)之外。
10、驗證腳本是否成功的步驟:
a.在腳本生成器中:單循環(huán)、多循環(huán)。
b.在控制臺中:單用戶單循環(huán)、單用戶多循環(huán)、多用戶多循環(huán)、多用戶多循環(huán)。
11、性能測試中,所有的數(shù)據(jù)包(客戶端和服務(wù)器之間的對話)分為兩類:請求包和應(yīng)答包。無論是請求包還是應(yīng)答包,都分為兩部分header和body部分。
a.? header中是一些參數(shù)設(shè)置;
b. body中才是真正要傳輸?shù)男畔ⅰ?
二、檢查點(diǎn)
檢查點(diǎn):主要驗證某個界面上是否存在指定的Text或Image等對象。
LR中檢查點(diǎn)有兩種:文字和圖片。
函數(shù):web_find()、web_reg_find()和web_image_check()。
步驟:
a.定位要檢查的頁面;
b.插入文字檢查點(diǎn)
c.設(shè)定與檢查點(diǎn)有關(guān)的選項Vuse | Run-time Settings | Preferences
d.查看檢查點(diǎn)是否通過
注意點(diǎn):
1、一個腳本必須加入一個檢查點(diǎn),否則不清楚腳本的正確性。但是檢查點(diǎn)不宜過多,一兩個足矣。
2、一個腳本中在關(guān)心的操作附近要記得添加事務(wù),所以一個腳本至少一個事務(wù)。但是一般情況下,登錄也會也會被添加為事務(wù)。
3、關(guān)心的操作就是測試計劃中的測試點(diǎn),如查詢稿件、購買機(jī)票等,只要測試計劃搞定,則測試點(diǎn)確定。
4、注意:web_find函數(shù)要求:
1)寫在相應(yīng)請求之后
2)開啟run_time settings中開關(guān)
3)檢查的內(nèi)容在AUT界面上拷貝即可
5、lr_output_message函數(shù)的結(jié)果只顯示在回放日志中,不會顯示在結(jié)果報告中。
1、函數(shù)
1)web_find(不常用)函數(shù)的左右邊界:
a.rightof表示左邊界
b.leftof表示右邊界
2)web_image_check函數(shù)(不常使用)兩個參數(shù),使用時選一個即可,另一個參數(shù)可以為空值
a.alt參數(shù):當(dāng)光標(biāo)懸浮在網(wǎng)頁圖片上時顯示的名稱(給用戶看的)
b.src參數(shù):該圖片在源代碼中的路徑及名稱(給程序員看到)
注:web_image_check函數(shù)特性與web_find相同:
1)寫在相應(yīng)請求之后
2)開啟run_time settings中開關(guān)
3)參數(shù)內(nèi)容在源代碼中提取
3)Web_reg_find函數(shù)
web_reg_find函數(shù)注冊一個請求,在下一個操作函數(shù)檢索到的緩存中搜索一個文本字符串。
web_reg_find()返回值0或1。
web_reg_find()是否注冊成功(web_reg_find是注冊類型函數(shù),它本身并不執(zhí)行),不代表查找的內(nèi)容是否存在。
可利用savecount進(jìn)行判斷。表示查找的內(nèi)容出現(xiàn)的次數(shù)。一般不用。
loadrunner中,帶有reg字樣的函數(shù),稱為注冊性函數(shù),該類的函數(shù)的特點(diǎn),就是要將函數(shù)寫在相應(yīng)請求之前。在網(wǎng)頁緩存中尋找匹配。

注意點(diǎn):
? ? ? lr_eval_string函數(shù)的作用:為C語言的函數(shù)和lr的變量起到橋梁的作用;可以去除lr變量count的實際值。
? ? ? ?lr_eval_string函數(shù)后面的括號:后面必須接();()里面是字符串,所以用"";""里面不是普通字符串,而是lr變量。Lr要求,如果取lr變量的值,則必須要用{}。
? ? ? lr函數(shù)(web_或者lr_開頭的函數(shù))中出現(xiàn)的變量稱為lr變量,該類變量不需要再腳本初始位置定義。但是C語言的變量一定要在初始位置定義。
三、基準(zhǔn)測試(單用戶測試)
1、如果腳本錄制過程中遇到頁面報錯,則放棄錄制,重新錄制。要保證錄制過程正確。
2、錄制完成的腳本一定要回放。如果正確,再進(jìn)行下一步增強(qiáng)腳本。
3、基準(zhǔn)測試步驟:
1)腳本調(diào)試,運(yùn)行通過
2)放入控制臺
3)控制臺的參數(shù)設(shè)置:
a.用戶數(shù)為1
b.虛擬用戶部署不需要設(shè)置(global schedule)
c.Run_time settings中的設(shè)置
? ?------run logic 中設(shè)置5次
? ?------Pacing值:隨機(jī)2-3s
? ?-----Think time值:忽略(原因:單用戶對AUT壓力很小,所以是否存在思考時間,意義不大)
d.Pacing值:循環(huán)之間的時間間隔。一般情況下2-3s。
e.因為在線測試過程中,如果用戶循環(huán)提交請求,但是每次循環(huán)之間沒有試駕間隔,則過于嚴(yán)格,不符合實際的生產(chǎn)環(huán)境。
f.Think time值:步驟之間的時間間隔。
補(bǔ)充:
1、當(dāng)run_time settings 中的run logic和duration中都設(shè)置時,duration優(yōu)先級高
2、只要有迭代,就要設(shè)置pacing值。
3、每次提交的測試數(shù)據(jù),應(yīng)該測試三次,選取其中的中間值。