下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、LR手動(dòng)關(guān)聯(lián)參數(shù)化問題總結(jié)所謂的關(guān)聯(lián)就是把腳本中某些寫死的代碼(hard-coded)數(shù)據(jù),轉(zhuǎn)變成截取自服務(wù)器所送的、 動(dòng)態(tài)的、每次都不一樣的數(shù)據(jù)。一般情況下,比較聰明的服務(wù)器在每個(gè)瀏覽器第一次跟它要數(shù)據(jù)時(shí),都會(huì)在數(shù)據(jù)中夾帶一個(gè) 唯一的辨識(shí)碼,接下來就會(huì)利用這個(gè)辨識(shí)碼來辨識(shí)跟它要數(shù)據(jù)的是不是同一個(gè)瀏覽器,一般 稱這個(gè)辨識(shí)碼為SessionlD。對(duì)于每個(gè)新的請(qǐng)求,服務(wù)器都會(huì)產(chǎn)生新的SessionlD給瀏覽器。 這也就是執(zhí)行腳本會(huì)失敗的原因,因?yàn)閂uGen還是用舊的Session ID向服務(wù)器要數(shù)據(jù),服 務(wù)器發(fā)現(xiàn)這個(gè)Session ID是失效的或者它根本不認(rèn)識(shí)這個(gè)Session ID,當(dāng)然就不會(huì)傳
2、送正 確的網(wǎng)頁數(shù)據(jù)給VuGen 了。要對(duì)付這種服務(wù)器,必須想辦法找出這個(gè)Session ID到底是什么、位于何處,然后把它擷 取下來,放到某個(gè)參數(shù)中,并且取代腳本中有用到Session ID的部分,這樣就可以成功騙 過服務(wù)器,正確地完成整個(gè)交易了。一、什么地方需要關(guān)聯(lián) 凡是腳本每次執(zhí)行時(shí)都必須獲得唯一標(biāo)識(shí)的地方都需要關(guān)聯(lián)。假如腳本需要關(guān)聯(lián),如果不做 關(guān)聯(lián)是不會(huì)執(zhí)行通過的,也就是說會(huì)有錯(cuò)誤消息發(fā)生。不過很遺憾,并沒有任何特定的錯(cuò)誤 消息是和關(guān)聯(lián)有關(guān)系的。會(huì)出現(xiàn)什么錯(cuò)誤消息,與系統(tǒng)實(shí)際的錯(cuò)誤處理機(jī)制有關(guān)。錯(cuò)誤消息 有可能會(huì)提醒用戶要重新登錄,但是也有可能直接就顯示HTTP 404的錯(cuò)誤消息。二、如
3、何做關(guān)聯(lián)關(guān)聯(lián)會(huì)用到下列的函數(shù):1、web_reg_save_param;2、web_create_html_param;3、web_create_html_param_ex;其中, web_reg_save_param 的語法為:web_reg_save_param ( Parameter Name , , LAST );web_create_html_param和web_create_html_param_ex這兩個(gè)函數(shù)主要是保留以兼容以前 舊版本。建議使用web_reg_save_param函數(shù)。那么,如何找出要關(guān)聯(lián)數(shù)據(jù)呢?簡單地說,每一次執(zhí)行時(shí)都會(huì)變動(dòng)的值,就有可能需要做關(guān) 聯(lián)。VuGe
4、n提供兩種方式幫助用戶找出需要做關(guān)聯(lián)的值:自動(dòng)關(guān)聯(lián)和手動(dòng)關(guān)聯(lián)。自動(dòng)關(guān)聯(lián)一般情況下比較簡單,在此就不進(jìn)行說明了,下面主要是總結(jié)手動(dòng)關(guān)聯(lián)時(shí)的一些方 法以及出現(xiàn)的一些問題的解決方式。三、手動(dòng)關(guān)聯(lián)總結(jié)1、正常情況下的手動(dòng)關(guān)聯(lián): web_reg_save_param(SessionId,LB=value=,RB=,LAST);LR:所需截取字符串的左邊界RB:所需截取字符串的右邊界 如果左右邊界中存在各種特殊字符,如雙引號(hào)等,則需先用進(jìn)行轉(zhuǎn)義 一般情況下,如果所截字符串的左右邊界比較唯一的話,可以直接用上面的方式進(jìn)行獲取 無需設(shè)置別的屬性了。(“LAST ”是固定的ooo)2、如果進(jìn)行關(guān)聯(lián)后,有報(bào)錯(cuò)信息
5、,提示參數(shù)化未成功,有可能是以下幾方面的原因:左右邊界取值不正確,可以進(jìn)入Generation log中,查看在關(guān)聯(lián)的參數(shù)左右邊界是否正 確關(guān)聯(lián)函數(shù)的位置放置錯(cuò)誤可以將log設(shè)置成輸出Ext ended log。設(shè)置方法為:Vuser-Run- time Setti ngs-Log屬性中,選中Ext ended log并選中下面三 個(gè)日志。在輸出的日志中找到所要關(guān)聯(lián)化的參數(shù)第一次的輸出位置(注意是response返回的值,不 是 request 中的),對(duì)照左側(cè)的腳本行數(shù),將關(guān)聯(lián)函數(shù)放在此行數(shù)之前,即可。3、關(guān)聯(lián)沒問題,運(yùn)行時(shí)無報(bào)錯(cuò),可就是得不到參數(shù)的值,可以從Ext ended log中找到
6、原因。 將Replay Log中的日志改為輸出Ext ended log-Parame ter subs titution日志,再重新運(yùn) 行一次,便可看到所關(guān)聯(lián)參數(shù)的變化情況。有一次我在錄制了 Flex協(xié)議的腳本后,將JSessionld做好手動(dòng)關(guān)聯(lián),運(yùn)行無任何錯(cuò)誤,可 是將JSessionld打印時(shí)卻得不到任何值,一直找不到原因,后來通過這種日志輸出,看到 了 JSessionld的一個(gè)數(shù)據(jù)變化的過程,得知由于flex編碼中含有十六進(jìn)制數(shù),在我需要截 取的參數(shù)前,有一串x04x00 x06,在獲取參數(shù)時(shí)由于這一串?dāng)?shù)的影響無法獲取到我 所需要的值,所以后來就將web_reg_save_para
7、m函數(shù)中一個(gè)屬性SaveOffset設(shè)置為4才得 到了所需的字符串。SaveOffset 的用法為:當(dāng)找到符合的動(dòng)態(tài)數(shù)據(jù)時(shí),從第幾個(gè)字符開始才開始存儲(chǔ)到參數(shù)中 此屬性值不可為負(fù)數(shù),其默認(rèn)值為 0。4、另外一種設(shè)置方法可以使左右邊界簡單化針對(duì)jsp頁面中,如果要獲取form中的某個(gè)屬性的值,如下面這段代碼:form method=post name=frmLogoutdiv align=leftbr業(yè)務(wù)號(hào):input type=text name=serviceId size=100 maxlength=20 value=brXML 數(shù)據(jù):textarea name=data rows=10 c
8、ols=100/textareabrinput type=submit name二submit value二提交 onclick=dosubmit(1)input type=submit name二submit value二取消 onclick=dosubmit(2)brsessionId:input type=text name=sessionId size=100 maxlength=20 value=af0616ae-cbe7-412d-8965-1d33ba55fc3bbr想要截取到 sessionId 的 value 值,如果直接用左右邊界截取,由于程序中的太多的 value, 所以
9、需要截取左邊界為 name=sessionId size=100 maxlength=20 value=, 由于此邊界的內(nèi)容顯示時(shí)有換行,所以如果以上面那一段內(nèi)容作為左邊界的話可能會(huì)有截取 不成功的情況,所以在這種情況下,我們可以采取以下方式: web_reg_save_param(SessionId,LB=value=,RB=,ORD=5,LAST);ORD 可以定位整個(gè)數(shù)據(jù)中取第幾個(gè)值利用 ORD 屬性,在左邊界出現(xiàn)的第5 次時(shí)再進(jìn)行截取。如果不確定自己所要截取的這段字符串是在第幾次出現(xiàn),那么可以先將ORD設(shè)置為ALL,然后通過Ext ended log-Parame ter subsi
10、tut ion日志,可以看到所有左右邊界一致的截取的字符串?dāng)?shù)組,再確認(rèn)自己所需截取 的字符串是在這個(gè)數(shù)組中的第幾個(gè)位置,將ORD設(shè)置為幾即可。5、如果某個(gè)參數(shù)關(guān)聯(lián)成功,可是運(yùn)行時(shí)卻發(fā)現(xiàn)還會(huì)報(bào)錯(cuò),那么可以考慮一下是不是因?yàn)橛?別的值跟你所截取的這個(gè)參數(shù)相關(guān)聯(lián),隨著那個(gè)值的變化,你所截取的這個(gè)參數(shù)也會(huì)進(jìn)行某 一方面的變化,那樣的話就需要將那個(gè)變化的值同樣進(jìn)行參數(shù)化。6、如何打印出參數(shù)值解決方法:利用lr_eval_string與lr_output_message這兩個(gè)函數(shù)來打印出參數(shù)值。 例: lr_output_message(SessionId=%s,lr_eval_string(Parame
11、terName); 打印參數(shù)值這段代碼所放的位置一定是在已經(jīng)獲取到參數(shù)值后,才可打印出來。四、參數(shù)說明:ParamName:存放動(dòng)態(tài)數(shù)據(jù)的參數(shù)名稱。list of Attributes:其他屬性,包含 “Notfound” “LB” “RB” “RelFramelD” “Search”“ORD” “SaveOffset” “Convert” 以及 “SaveLen”下面將詳細(xì)說明每個(gè)屬性值的意義:1、Not found :指定當(dāng)找不到要找的動(dòng)態(tài)數(shù)據(jù)時(shí)該怎么處理。當(dāng)指定 Notfound=error 時(shí),表示著找不到動(dòng)態(tài)數(shù)據(jù)時(shí),就發(fā)出一個(gè)錯(cuò)誤消息。此為該屬性 的默認(rèn)值。當(dāng)指定Notfound=w
12、arning時(shí),表示當(dāng)找不到動(dòng)態(tài)數(shù)據(jù)時(shí),不發(fā)出錯(cuò)誤消息,只發(fā)出警告, 腳本也會(huì)繼續(xù)執(zhí)行下去不會(huì)中斷。在對(duì)腳本出錯(cuò)時(shí),可以如此設(shè)置。2、LB:動(dòng)態(tài)數(shù)據(jù)的左邊界字符串。此屬性是必須要有的,而且區(qū)分大小寫。3、RB:動(dòng)態(tài)數(shù)據(jù)的右邊界字符串。此屬性是必須要有的,而且區(qū)分大小寫。4、RelFrameID:相對(duì)于URL而言,欲搜尋的網(wǎng)頁的Frame。此屬性可以是All或是數(shù)字, 而且可有可無。5、Search:搜尋的范圍,其值可以是Headers (只搜尋headers)、Body (只搜尋body部分, 不搜尋header)、Noresource (只搜尋body部分,不搜尋header與resource)或是All (搜 尋全部范圍,此為默認(rèn)值),此屬性可有可無。6、ORD:指明從第幾次出現(xiàn)的左邊界開始才是要擷取的數(shù)據(jù),默認(rèn)值是1。假如該屬性值為 All,則所有找到符合的數(shù)據(jù)會(huì)存儲(chǔ)在數(shù)組中。此屬性可有可無。7、SaveOffset:當(dāng)找到符合的動(dòng)態(tài)數(shù)據(jù)時(shí),從第幾個(gè)字符開始才開始存儲(chǔ)到參數(shù)中。此屬 性值不可為負(fù)數(shù),其默認(rèn)值為 0。8、Convert:轉(zhuǎn)換數(shù)據(jù)格式。當(dāng)指定該屬性值為HTML_TO_URL時(shí),意味著將HTML-encoded 數(shù)據(jù)轉(zhuǎn)成URL-encoded數(shù)據(jù)格式。如果是HTML_TO_TE
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國社會(huì)科學(xué)院文化發(fā)展促進(jìn)中心年鑒與院史工作部非事業(yè)編制人員招聘備考題庫及一套答案詳解
- 2025年綿陽市公安局安州區(qū)分局公開招聘警務(wù)輔助人員的備考題庫及完整答案詳解一套
- 電商合同補(bǔ)充協(xié)議
- 簽訂獨(dú)家協(xié)議合同
- 帳篷租賃協(xié)議合同
- 怎樣取消協(xié)議合同
- 價(jià)值認(rèn)定協(xié)議書
- 儲(chǔ)罐轉(zhuǎn)讓協(xié)議書
- 綠網(wǎng)覆蓋合同范本
- 合同共建協(xié)議書
- 2025江蘇南通海安市人民法院招聘勞務(wù)派遣制法官助理2人(公共基礎(chǔ)知識(shí))綜合能力測試題附答案解析
- 2026年湖南中醫(yī)藥高等專科學(xué)校單招職業(yè)技能考試題庫附答案
- 興國縣2025年招聘城市社區(qū)專職網(wǎng)格員【23人】考試歷年真題匯編帶答案解析
- 2025河北廊坊市工會(huì)社會(huì)工作公開招聘崗位服務(wù)人員19名考試筆試模擬試題及答案解析
- 2025下半年廣東珠海市紀(jì)委監(jiān)委招聘所屬事業(yè)單位工作人員12人考試筆試備考試題及答案解析
- 手機(jī)拍照入門教程
- 2025年中職物理(物理基礎(chǔ)知識(shí))試題及答案
- “現(xiàn)代控制理論”教學(xué)改革與創(chuàng)新實(shí)踐
- (新教材)部編人教版三年級(jí)上冊(cè)語文全冊(cè)核心素養(yǎng)教案(教學(xué)反思無內(nèi)容+二次備課版)
- 企業(yè)預(yù)算規(guī)劃及成本控制管理表控制成本
- 2025考務(wù)人員網(wǎng)上培訓(xùn)考試真題及答案
評(píng)論
0/150
提交評(píng)論