loadrunner--并發(fā)、集合點(diǎn)、檢查點(diǎn)

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表示右邊界

web_find

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)頁緩存中尋找匹配。

web_reg_find

注意點(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)該測試三次,選取其中的中間值。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容