久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

理解LoadRunner,,基于此工具進(jìn)行后端性能測(cè)試的詳細(xì)過(guò)程(下)

 學(xué)掌門(mén) 2021-11-08

5、錄制并增強(qiáng)虛擬用戶(hù)腳本

從整體角度看,,用 LoadRunner 開(kāi)發(fā)虛擬用戶(hù)腳本主要包括下面四步驟:

識(shí)別測(cè)試應(yīng)用使用的協(xié)議

錄制腳本

完善錄制得到的腳本

驗(yàn)證腳本的正確性

識(shí)別被測(cè)應(yīng)用使用的協(xié)議

如果明確知道了被測(cè)系統(tǒng)所采用的協(xié)議,,可以跳過(guò)這一步。如果還不知道可以使用 Virtual User Generator 模塊自帶的 Protocol Advisor 識(shí)別被測(cè)應(yīng)用使用的協(xié)議,,具體的操作方法:

在 Virtual User Generator 中依次點(diǎn)擊 File,、Protocol、AdvisorAnalyze,、Application,,展開(kāi)這些菜單

在打開(kāi)的界面上按要求填寫(xiě)被測(cè)應(yīng)用的信息

Protocol Advisor 會(huì)自動(dòng)運(yùn)行被測(cè)系統(tǒng)。如果是網(wǎng)頁(yè)應(yīng)用,,就會(huì)打開(kāi)瀏覽器

在頁(yè)面上執(zhí)行典型業(yè)務(wù)操作,,完成業(yè)務(wù)操作后點(diǎn)擊 “Stop Analyzing” 按鈕停止錄制

Protocol Advisor 會(huì)根據(jù)剛才錄制的內(nèi)容自動(dòng)分析被測(cè)應(yīng)用使用的協(xié)議,并給出最終的建議

接下來(lái),,就可以使用 Protocol Advisor 建議的錄制協(xié)議開(kāi)始腳本錄制工作了,。如圖就是 Protocol Advisor 給出的建議錄制協(xié)議界面。

1)錄制腳本

基本原理是,,通過(guò) GUI 界面對(duì)被測(cè)系統(tǒng)進(jìn)行業(yè)務(wù)操作,,Virtual User Generator 模塊在后臺(tái)捕獲 GUI 操作所觸發(fā)的客戶(hù)端與服務(wù)器端的所有交互,并生產(chǎn)基于 C 語(yǔ)言的虛擬用戶(hù)腳本文件,。

即錄制腳本的過(guò)程需要通過(guò) GUI 實(shí)際執(zhí)行業(yè)務(wù)操作,,所以在開(kāi)始錄制腳本前,可以先多次演練需要這些 GUI 操作步驟,,并明確知道哪些操作步驟會(huì)對(duì)服務(wù)器端發(fā)起請(qǐng)求,。

要知道哪些操作步驟會(huì)對(duì)服務(wù)器發(fā)起請(qǐng)求的原因是,要將這些操作步驟在虛擬用戶(hù)腳本中封裝成“事務(wù)”(Transaction),。封裝為“事務(wù)”的目的是統(tǒng)計(jì)響應(yīng)時(shí)間,,因?yàn)?LoadRunner 中的響應(yīng)時(shí)間都是以“事務(wù)”為單位的。

具體的錄制步驟包括下面三步:

選擇 Create/Edit Scripts 進(jìn)入 Virtual User Generator 創(chuàng)建腳本的協(xié)議選擇界面,。

選擇正確的協(xié)議后進(jìn)入 Start Recording 界面,,選擇需要錄制的應(yīng)用類(lèi)型,,填寫(xiě)應(yīng)用的詳細(xì)信息。如果是 Web 應(yīng)用,,Application type 就應(yīng)該選擇Internet Application,,然后選擇瀏覽器并填寫(xiě)這個(gè) Web 應(yīng)用的 URL,完成后自動(dòng)打開(kāi)瀏覽器,。

在該瀏覽器中執(zhí)行業(yè)務(wù)操作,,Virtual User Generator 模塊會(huì)記錄所有的業(yè)務(wù)操作,并生成腳本,。

由于 LoadRunner 腳本的可讀性并不好,,在錄制完的腳本中添加事務(wù)定義的難度大。所以在錄制腳本的過(guò)程中,,最好直接對(duì)發(fā)起后端調(diào)用的操作添加事務(wù)定義,,而不要腳本生成后添加。

在錄制過(guò)程中,,直接添加事務(wù)操作也很簡(jiǎn)單,,主要包括如下三步:

在開(kāi)始執(zhí)行 GUI 操作前,點(diǎn)擊下圖的“事務(wù)開(kāi)始”并填寫(xiě)事務(wù)名稱(chēng)

執(zhí)行 GUI 操作

操作完成后,,點(diǎn)擊下圖的“事務(wù)結(jié)束”

這樣剛才執(zhí)行 GUI 操作的腳本就會(huì)被 lr_start_transaction(“事務(wù)名稱(chēng)”) 和 lr_end_transaction(“事務(wù)名稱(chēng)”,,LR_AUTO) 包圍起來(lái),也就完成了添加事務(wù)的定義,。

2)完善錄制得到的腳本

Virtual User Generator 模塊錄制的腳本不能直接使用,,我們還需要對(duì)錄制的腳本做以下處理:

兩個(gè)事務(wù)之間加入思考時(shí)間(Think Time)

對(duì)界面輸入的數(shù)據(jù)參數(shù)化(Parameterization)操作

完成腳本的關(guān)聯(lián)(Correlation)操作

加入檢查點(diǎn)(Check Point)

4 步處理操作是虛擬用戶(hù)腳本開(kāi)發(fā)中最關(guān)鍵的地方,不僅需要知道為什么要進(jìn)行這些處理,,更要能夠完成這些處理,,否則錄制的腳本無(wú)法成功回放。

第一,,在兩個(gè)事務(wù)之間加入思考時(shí)間

思考時(shí)間是用戶(hù)在實(shí)際使用系統(tǒng)時(shí),,并不會(huì)連續(xù)不斷地向后端服務(wù)器發(fā)起請(qǐng)求,在兩次發(fā)起請(qǐng)求之間往往會(huì)有一個(gè)時(shí)間的間隔,,這個(gè)時(shí)間間隔主要來(lái)自于兩個(gè)方面:

用戶(hù)操作的人為等待時(shí)間,,因?yàn)橛脩?hù)不可能像機(jī)器人那樣快速地執(zhí)行操作

用戶(hù)可能需要先在頁(yè)面上填寫(xiě)很多信息后之后,才能提交操作,,那么填寫(xiě)這些信息就需要花費(fèi)一定的時(shí)間

為了讓虛擬用戶(hù)腳本能夠更真實(shí)地模擬實(shí)際用戶(hù)的行為,,就需要在兩個(gè)事務(wù)之間加入一定的等待時(shí)間。即 LoadRunner 中的思考時(shí)間,。

只需直接調(diào)用 LoadRunner 提供的 lr_think_time() 函數(shù),,就可以在兩個(gè)事務(wù)之間加入思考時(shí)間。但是,,這個(gè)思考時(shí)間到底設(shè)置為多少,,并沒(méi)有那么容易知道,。思考時(shí)間往往會(huì)涉及多方面的因素,嚴(yán)格計(jì)算的話(huà)會(huì)非常復(fù)雜,。

在實(shí)際項(xiàng)目中,,可先粗略估計(jì)一個(gè)值(比如 15 s),然后在實(shí)際執(zhí)行負(fù)載場(chǎng)景的過(guò)程中,,再根據(jù)系統(tǒng)吞吐量調(diào)整,。

后續(xù)調(diào)整思考時(shí)間時(shí),無(wú)需逐行修改虛擬用戶(hù)腳本代碼,,可以在 Run-time Settings(運(yùn)行時(shí)設(shè)置)中很方便地完成,。如圖,Run-time Settings 中支持多種方式調(diào)整思考時(shí)間,。

第二,,對(duì)界面輸入的數(shù)據(jù)做參數(shù)化操作

假設(shè),錄制的虛擬用戶(hù)腳本完成的是用戶(hù)登錄操作,,那么由于腳本回放時(shí)需要支持多用戶(hù)的并發(fā),所以必須要把腳本中的用戶(hù)名和密碼獨(dú)立出來(lái),,放入專(zhuān)門(mén)的數(shù)據(jù)文件中,,然后在這個(gè)文件中提供所有可能被用到的用戶(hù)名和密碼。

以下是參數(shù)化配置的界面截圖,,LoadRunner 支持的參數(shù)化的數(shù)據(jù)源很豐富,,既可以是 excel 文件,也可以是數(shù)據(jù)庫(kù)中的表等,。

凡參數(shù)文件中使用的測(cè)試數(shù)據(jù),,都需要在執(zhí)行性能測(cè)試前在被測(cè)系統(tǒng)中準(zhǔn)備好。以用戶(hù)登錄的腳本為例,,假定你的參數(shù)文件中提供了 5000 個(gè)用于并發(fā)執(zhí)行的用戶(hù)信息,,那么這 5000 個(gè)用戶(hù)必須是已經(jīng)實(shí)際存在于系統(tǒng)中的,這就要求你要在開(kāi)始測(cè)試前事先準(zhǔn)備好這 5000 個(gè)用戶(hù),。

所以,,參數(shù)化操作其實(shí)由兩部分組成:

性能測(cè)試腳本和測(cè)試數(shù)據(jù)的分離

事先建立性能測(cè)試的數(shù)據(jù)

第三,完成腳本的關(guān)聯(lián)操作

關(guān)聯(lián)操作直接關(guān)系到腳本是否可以回放成功,。主要作用是取出前序調(diào)用返回結(jié)果中的某些動(dòng)態(tài)值,,傳遞給后續(xù)的調(diào)用。

舉個(gè)例子:

假設(shè),,每次客戶(hù)端連接服務(wù)器端時(shí),,服務(wù)器端都會(huì)用當(dāng)前的時(shí)間戳(Time Stamp)計(jì)算 CheckSum,然后將 Time Stamp 和 CheckSum 返回給客戶(hù)端,。然后,,客戶(hù)端就把 Time Stamp + CheckSum 的組合作為唯一標(biāo)識(shí)客戶(hù)端的 Session ID,。錄制腳本時(shí),錄制得到的一定是硬編碼(hardcode)的 Time Stamp 值和 CheckSum 值,。

下圖是交互過(guò)程,,錄制得到 Time Stamp 的值是 TS,而 CheckSum 的值是 CS,。


采用 Time Stamp + CheckSum 的組合作為 Session ID 的方式,,在回放這個(gè)腳本的時(shí)候就有問(wèn)題了。因?yàn)榛胤艜r(shí),,這段硬編碼已經(jīng)有了新的 Time Stamp 值和 CheckSum 值,,并且顯然與之前的值不同,所以服務(wù)器無(wú)法完成 Session ID 的驗(yàn)證,,也就導(dǎo)致了腳本回放失敗,。

解決方法就是,在腳本回放的過(guò)程中,,實(shí)時(shí)抓取 Time Stamp 值和 CheckSum 值,,然后用實(shí)時(shí)抓取到的值替換后續(xù)需要使用這兩個(gè)值的地方。這個(gè)過(guò)程就是“關(guān)聯(lián)”,。

如下圖,,關(guān)聯(lián)就是解析服務(wù)器端的返回結(jié)果,抓取新的 Time Stamp 值和 CheckSum 值,,然后后續(xù)的操作都使用新抓取的值,,這樣腳本就能回放成功了

理解了關(guān)聯(lián)操作,在腳本中處理關(guān)聯(lián)就比較簡(jiǎn)單了,,LoadRunner 提供了功能強(qiáng)大的關(guān)聯(lián)函數(shù) web_reg_save_param(),。這個(gè)關(guān)聯(lián)函數(shù)支持多種動(dòng)態(tài)值的獲取方式,用得最多的是基于“前序字符串匹配”加上“后續(xù)字符串匹配”的方式,。其中,,字符串匹配,支持正則表達(dá)式,。

看個(gè)具體的例子:

假設(shè),,服務(wù)器端返回的結(jié)果是:

“LB=name=timestamp value=8888.LB=name=CheckSum”,

那么為了能夠獲取到“8888”這個(gè)動(dòng)態(tài)值,,我們就可以用“前序字符串 =LB=name=timestamp value=”和“后續(xù)字符 =.LB=name=CheckSum”來(lái)“框出” 8888”這個(gè)動(dòng)態(tài)值,。

另外,需要特別注意的是 web_reg_save_param() 函數(shù)是注冊(cè)型函數(shù),,必須放在獲取動(dòng)態(tài)值所屬的請(qǐng)求前面,,相當(dāng)于先聲明,后調(diào)用,。更多的關(guān)聯(lián)函數(shù)用法,,你可以參考 LoadRunner 官方文檔.

第四,,加入檢查點(diǎn)

檢查點(diǎn),類(lèi)似于功能測(cè)試中的斷言,。但是,,性能測(cè)試腳本,不像功能測(cè)試腳本那樣需要加入很多的斷言,,往往只在一些關(guān)鍵步驟后加入很少量的檢查點(diǎn)即可,。這些檢查點(diǎn)的主要作用是,保證腳本按照原本設(shè)計(jì)的路徑執(zhí)行,。

最常用的檢查點(diǎn)函數(shù)是 web_reg_find(),,作用是通過(guò)指定左右邊界的方式“在頁(yè)面中查找相應(yīng)的內(nèi)容”。這里需要注意的是,,這個(gè)函數(shù)也是注冊(cè)型函數(shù),,即需要放在所檢查的頁(yè)面之前,否則會(huì)檢查失敗,。更多的檢查點(diǎn)函數(shù)以及用法也可參考 LoadRunner 官方文檔

3)驗(yàn)證腳本的正確性

可以以下順序檢查腳本的準(zhǔn)確性:

以單用戶(hù)的方式,,在有思考時(shí)間的情況下執(zhí)行腳本,確保腳本能夠順利執(zhí)行,,并且驗(yàn)證腳本行為以及執(zhí)行結(jié)果是否正確,;

以單用戶(hù)的方式,在思考時(shí)間為零的情況下執(zhí)行腳本,,確保腳本能夠順利執(zhí)行,并且驗(yàn)證腳本行為以及執(zhí)行結(jié)果是否正確,;

以并發(fā)用戶(hù)的方式,,在有思考時(shí)間的情況下執(zhí)行腳本,確保腳本能夠順利執(zhí)行,,并且驗(yàn)證腳本行為以及執(zhí)行結(jié)果是否正確,;

以并發(fā)用戶(hù)的方式,在思考時(shí)間為零的情況下執(zhí)行腳本,,確保腳本能夠順利執(zhí)行,,并且驗(yàn)證腳本行為以及執(zhí)行結(jié)果是否正確;

上述四個(gè)測(cè)試全部通過(guò),,就可以拿到虛擬用戶(hù)腳本,。

6、創(chuàng)建并定義性能測(cè)試場(chǎng)景

就是在 LoadRunner Controller 中設(shè)置性能測(cè)試場(chǎng)景,。目的是要描述性能測(cè)試過(guò)程中所有與測(cè)試負(fù)載以及監(jiān)控相關(guān)的內(nèi)容,。通常來(lái)講,性能測(cè)試場(chǎng)景設(shè)計(jì)主要會(huì)涉及以下部分:

并發(fā)用戶(hù)數(shù)是多少,;

測(cè)試剛開(kāi)始時(shí),,以什么樣的速率來(lái)添加并發(fā)用戶(hù),?比如,每秒增加 5 個(gè)并發(fā)用戶(hù),;

達(dá)到最大并發(fā)用戶(hù)數(shù)后持續(xù)多長(zhǎng)時(shí)間,;

測(cè)試結(jié)束時(shí),以什么樣的速率來(lái)減少并發(fā)用戶(hù),?比如,,每秒減少 5 個(gè)并發(fā)用戶(hù);

需要包含哪些業(yè)務(wù)操作,,各個(gè)業(yè)務(wù)操作的占比是多少,?比如,10% 的用戶(hù)在做登錄操作,,70% 的用戶(hù)在做查詢(xún)操作,,其他 20% 的用戶(hù)在做訂單操作;

一輪虛擬用戶(hù)腳本執(zhí)行結(jié)束后,,需要等待多長(zhǎng)時(shí)間開(kāi)始下一次執(zhí)行,;

同一虛擬用戶(hù)腳本中,各個(gè)操作之間的等待時(shí)間是多少,;

需要監(jiān)控哪些被測(cè)服務(wù)器的哪些指標(biāo),;

腳本出錯(cuò)時(shí)的處理方式是什么?比如,,錯(cuò)誤率達(dá)到 10% 時(shí),,自動(dòng)停止該腳本;

需要使用多少臺(tái)壓力產(chǎn)生器,;

7,、執(zhí)行性能測(cè)試場(chǎng)景

一般是在 LoadRunner Controller 中完成。你可以通過(guò) Controller 發(fā)起測(cè)試,、停止測(cè)試,、調(diào)整性能測(cè)試場(chǎng)景的各種參數(shù),還可以監(jiān)控測(cè)試的執(zhí)行過(guò)程

8,、分析測(cè)試報(bào)告

執(zhí)行完性能測(cè)試后,,LoadRunner 會(huì)根據(jù)自己的標(biāo)準(zhǔn)并結(jié)合性能測(cè)試場(chǎng)景中定義的系統(tǒng)監(jiān)控器指標(biāo),生成完整的測(cè)試報(bào)告,。在 Analysis 中,,不僅可以以圖形化的方式顯示單個(gè)指標(biāo),也可以將多個(gè)指標(biāo)關(guān)聯(lián)在一起進(jìn)行比較分析,。

下圖展示了使用 LoadRunner Analysis 展示事務(wù)平均響應(yīng)時(shí)間的界面,,我們可以看到圖片右下角各個(gè)事務(wù)的最小響應(yīng)時(shí)間、最大響應(yīng)時(shí)間和平均響應(yīng)時(shí)間。

文章來(lái)源:網(wǎng)絡(luò)  版權(quán)歸原作者所有

上文內(nèi)容不用于商業(yè)目的,,如涉及知識(shí)產(chǎn)權(quán)問(wèn)題,,請(qǐng)權(quán)利人聯(lián)系小編,我們將立即處

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多