? ? ? ? 關(guān)聯(lián)是應(yīng)用Loadrunner進(jìn)行性能測(cè)試的一項(xiàng)重要技能,就是把腳本中某些寫死的數(shù)據(jù)轉(zhuǎn)變成動(dòng)態(tài)的數(shù)據(jù)揽咕。通過(guò)關(guān)聯(lián)可以生成動(dòng)態(tài)的數(shù)據(jù)铲敛,其次可以將這些冗長(zhǎng)的數(shù)據(jù)參數(shù)化拗踢,通過(guò)關(guān)聯(lián)技術(shù),可以有效的減小代碼量溜嗜,使腳本變得更加清晰宵膨。
VuGen提供自動(dòng)關(guān)聯(lián)、手動(dòng)關(guān)聯(lián)和利用關(guān)聯(lián)規(guī)則3中方式炸宵。
一、關(guān)聯(lián)函數(shù)詳解
web_reg_save_param()函數(shù)主要根據(jù)需要做關(guān)聯(lián)的動(dòng)態(tài)數(shù)據(jù)前面和后面固定字符串來(lái)識(shí)別、提取動(dòng)態(tài)數(shù)據(jù)焙畔,所以在關(guān)聯(lián)時(shí)需要找出動(dòng)態(tài)數(shù)據(jù)的左右邊界字符串蓄髓。
函數(shù):int web_reg_save_param(const char*ParamName, <list of atrributes>, LAST);
paramName:存放動(dòng)態(tài)數(shù)據(jù)的參數(shù)名稱。
list of atrributes:其他屬性裹匙,包含Notfound瑞凑、LB、RB概页、RelFrameID籽御、Search、ORD惰匙、SaveIffset技掏、convert和SaveLen。
Notfound:指定找不到要找到動(dòng)態(tài)數(shù)據(jù)時(shí)的處置方式项鬼。Notfound=error:當(dāng)找不到動(dòng)態(tài)數(shù)據(jù)時(shí)零截,發(fā)出一個(gè)錯(cuò)誤信息,此為L(zhǎng)oadrunner的默認(rèn)值秃臣。Notfound=warning:當(dāng)找不到動(dòng)態(tài)數(shù)據(jù)時(shí)涧衙,不發(fā)出錯(cuò)誤信息,只發(fā)出警告奥此,腳本也會(huì)繼續(xù)執(zhí)行下去不會(huì)中斷弧哎。
LB:動(dòng)態(tài)數(shù)據(jù)的左邊界字符串,該參數(shù)為必選參數(shù)稚虎,而且區(qū)別大小寫撤嫩。
RB:動(dòng)態(tài)數(shù)據(jù)的右邊界字符串,該參數(shù)為必選參數(shù)蠢终,而且區(qū)別大小寫序攘。
ORD:表示提取第幾次出現(xiàn)的左邊界的數(shù)據(jù)茴她,該參數(shù)為可選參數(shù),默認(rèn)值是1程奠。如果值為All,則查找所有符合條件的數(shù)據(jù)并把這些數(shù)據(jù)儲(chǔ)存在數(shù)組中丈牢。
Search:搜索的范圍,包括Headers(只搜尋headers)瞄沙、Body(只搜尋Body部分己沛,不搜尋header)、Noresource(只搜尋body部分距境,不搜尋header與resource)和All(搜尋全部范圍申尼,此為默認(rèn)值),該參數(shù)為可選參數(shù)垫桂。
RelFrameID:相對(duì)URL而言师幕,欲搜尋的是網(wǎng)頁(yè)Frame,此屬性值可以是All或具體的數(shù)字诬滩,該參數(shù)為可選參數(shù)们衙。
SaveOffsert:當(dāng)找到符合的動(dòng)態(tài)數(shù)據(jù)時(shí),從第幾個(gè)字符開(kāi)始存儲(chǔ)到參數(shù)中碱呼,該參數(shù)為可選參數(shù)蒙挑。此屬性值不可為負(fù)數(shù),其默認(rèn)值為0愚臀。
Convert:可能的值有以下兩種忆蚀,HTML_TO_URL:將HTML_encoded數(shù)據(jù)轉(zhuǎn)換成URL_encoded數(shù)據(jù)格式;將HTML_encoded數(shù)據(jù)轉(zhuǎn)換成純文字?jǐn)?shù)據(jù)格式姑裂。
SaveLen:從Offset開(kāi)始算起馋袜,到指定長(zhǎng)度內(nèi)的字符串,才儲(chǔ)存到參數(shù)中舶斧,該參數(shù)為可選參數(shù)欣鳖,默認(rèn)值為-1,表示儲(chǔ)存到結(jié)尾的整個(gè)字符串茴厉。
int web_reg_save_param_ex(const char*ParamName, <list of atrributes>, LAST);
詳解參考https://blog.csdn.net/jiang1986829/article/details/47420549
還有個(gè)函數(shù) int web_reg_save_param_xpath(const char*ParamName, <list of atrributes>, LAST);可以根據(jù)xpath進(jìn)行定位要進(jìn)行關(guān)聯(lián)的位置泽台。
二、關(guān)聯(lián)規(guī)則
在loadrunner中可以設(shè)置關(guān)聯(lián)規(guī)則實(shí)現(xiàn)自動(dòng)關(guān)聯(lián)矾缓,在【vuser】-【recording options】-【correlation】中制定自己的規(guī)則怀酷。
選中【在錄制期間啟動(dòng)關(guān)聯(lián)】。單擊【新建應(yīng)用程序】按鈕嗜闻,創(chuàng)建基于某系統(tǒng)或者某項(xiàng)業(yè)務(wù)的應(yīng)用名稱蜕依。然后在選中剛才建立的應(yīng)用程序選中的情況下,單擊【新建規(guī)則】,填寫相應(yīng)的東西样眠,建立新的規(guī)則友瘤。
其中高級(jí)中可以設(shè)置更多的條件。
始終創(chuàng)建新參數(shù):選中該選項(xiàng)檐束,可為該規(guī)則新建參數(shù)辫秧,即使參數(shù)所替換的值與上一實(shí)例相比沒(méi)有變化。
僅在完全匹配時(shí)使用參數(shù)替換:選中該選項(xiàng)厢塘,則僅在文本與找到的值完全匹配時(shí)才將值替換為參數(shù)。
反向搜索:可以執(zhí)行向后搜索肌幽。
左邊界實(shí)例:選中該選項(xiàng)晚碾,并制定所需實(shí)例,默認(rèn)選擇第一個(gè)匹配的左邊界值喂急。
偏移:可制定匹配項(xiàng)中字符串的偏移格嘁。
長(zhǎng)度:可制定要保存到參數(shù)中的匹配字符串的長(zhǎng)度。
備用右邊界:可以在該文本框中輸入其他右邊界廊移,或者從下拉列表框中選擇選項(xiàng)糕簿。