LR手動關聯(lián)參數(shù)化總結_第1頁
LR手動關聯(lián)參數(shù)化總結_第2頁
LR手動關聯(lián)參數(shù)化總結_第3頁
LR手動關聯(lián)參數(shù)化總結_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、LR手動關聯(lián)參數(shù)化問題總結所謂的關聯(lián)就是把腳本中某些寫死的代碼(hard-coded)數(shù)據,轉變成截取自服務器所送的、 動態(tài)的、每次都不一樣的數(shù)據。一般情況下,比較聰明的服務器在每個瀏覽器第一次跟它要數(shù)據時,都會在數(shù)據中夾帶一個 唯一的辨識碼,接下來就會利用這個辨識碼來辨識跟它要數(shù)據的是不是同一個瀏覽器,一般 稱這個辨識碼為SessionlD。對于每個新的請求,服務器都會產生新的SessionlD給瀏覽器。 這也就是執(zhí)行腳本會失敗的原因,因為VuGen還是用舊的Session ID向服務器要數(shù)據,服 務器發(fā)現(xiàn)這個Session ID是失效的或者它根本不認識這個Session ID,當然就不會傳

2、送正 確的網頁數(shù)據給VuGen 了。要對付這種服務器,必須想辦法找出這個Session ID到底是什么、位于何處,然后把它擷 取下來,放到某個參數(shù)中,并且取代腳本中有用到Session ID的部分,這樣就可以成功騙 過服務器,正確地完成整個交易了。一、什么地方需要關聯(lián) 凡是腳本每次執(zhí)行時都必須獲得唯一標識的地方都需要關聯(lián)。假如腳本需要關聯(lián),如果不做 關聯(lián)是不會執(zhí)行通過的,也就是說會有錯誤消息發(fā)生。不過很遺憾,并沒有任何特定的錯誤 消息是和關聯(lián)有關系的。會出現(xiàn)什么錯誤消息,與系統(tǒng)實際的錯誤處理機制有關。錯誤消息 有可能會提醒用戶要重新登錄,但是也有可能直接就顯示HTTP 404的錯誤消息。二、如

3、何做關聯(lián)關聯(lián)會用到下列的函數(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這兩個函數(shù)主要是保留以兼容以前 舊版本。建議使用web_reg_save_param函數(shù)。那么,如何找出要關聯(lián)數(shù)據呢?簡單地說,每一次執(zhí)行時都會變動的值,就有可能需要做關 聯(lián)。VuGe

4、n提供兩種方式幫助用戶找出需要做關聯(lián)的值:自動關聯(lián)和手動關聯(lián)。自動關聯(lián)一般情況下比較簡單,在此就不進行說明了,下面主要是總結手動關聯(lián)時的一些方 法以及出現(xiàn)的一些問題的解決方式。三、手動關聯(lián)總結1、正常情況下的手動關聯(lián): web_reg_save_param(SessionId,LB=value=,RB=,LAST);LR:所需截取字符串的左邊界RB:所需截取字符串的右邊界 如果左右邊界中存在各種特殊字符,如雙引號等,則需先用進行轉義 一般情況下,如果所截字符串的左右邊界比較唯一的話,可以直接用上面的方式進行獲取 無需設置別的屬性了。(“LAST ”是固定的ooo)2、如果進行關聯(lián)后,有報錯信息

5、,提示參數(shù)化未成功,有可能是以下幾方面的原因:左右邊界取值不正確,可以進入Generation log中,查看在關聯(lián)的參數(shù)左右邊界是否正 確關聯(lián)函數(shù)的位置放置錯誤可以將log設置成輸出Ext ended log。設置方法為:Vuser-Run- time Setti ngs-Log屬性中,選中Ext ended log并選中下面三 個日志。在輸出的日志中找到所要關聯(lián)化的參數(shù)第一次的輸出位置(注意是response返回的值,不 是 request 中的),對照左側的腳本行數(shù),將關聯(lián)函數(shù)放在此行數(shù)之前,即可。3、關聯(lián)沒問題,運行時無報錯,可就是得不到參數(shù)的值,可以從Ext ended log中找到

6、原因。 將Replay Log中的日志改為輸出Ext ended log-Parame ter subs titution日志,再重新運 行一次,便可看到所關聯(lián)參數(shù)的變化情況。有一次我在錄制了 Flex協(xié)議的腳本后,將JSessionld做好手動關聯(lián),運行無任何錯誤,可 是將JSessionld打印時卻得不到任何值,一直找不到原因,后來通過這種日志輸出,看到 了 JSessionld的一個數(shù)據變化的過程,得知由于flex編碼中含有十六進制數(shù),在我需要截 取的參數(shù)前,有一串x04x00 x06,在獲取參數(shù)時由于這一串數(shù)的影響無法獲取到我 所需要的值,所以后來就將web_reg_save_para

7、m函數(shù)中一個屬性SaveOffset設置為4才得 到了所需的字符串。SaveOffset 的用法為:當找到符合的動態(tài)數(shù)據時,從第幾個字符開始才開始存儲到參數(shù)中 此屬性值不可為負數(shù),其默認值為 0。4、另外一種設置方法可以使左右邊界簡單化針對jsp頁面中,如果要獲取form中的某個屬性的值,如下面這段代碼:form method=post name=frmLogoutdiv align=leftbr業(yè)務號:input type=text name=serviceId size=100 maxlength=20 value=brXML 數(shù)據: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=, 由于此邊界的內容顯示時有換行,所以如果以上面那一段內容作為左邊界的話可能會有截取 不成功的情況,所以在這種情況下,我們可以采取以下方式: web_reg_save_param(SessionId,LB=value=,RB=,ORD=5,LAST);ORD 可以定位整個數(shù)據中取第幾個值利用 ORD 屬性,在左邊界出現(xiàn)的第5 次時再進行截取。如果不確定自己所要截取的這段字符串是在第幾次出現(xiàn),那么可以先將ORD設置為ALL,然后通過Ext ended log-Parame ter subsi

10、tut ion日志,可以看到所有左右邊界一致的截取的字符串數(shù)組,再確認自己所需截取 的字符串是在這個數(shù)組中的第幾個位置,將ORD設置為幾即可。5、如果某個參數(shù)關聯(lián)成功,可是運行時卻發(fā)現(xiàn)還會報錯,那么可以考慮一下是不是因為有 別的值跟你所截取的這個參數(shù)相關聯(lián),隨著那個值的變化,你所截取的這個參數(shù)也會進行某 一方面的變化,那樣的話就需要將那個變化的值同樣進行參數(shù)化。6、如何打印出參數(shù)值解決方法:利用lr_eval_string與lr_output_message這兩個函數(shù)來打印出參數(shù)值。 例: lr_output_message(SessionId=%s,lr_eval_string(Parame

11、terName); 打印參數(shù)值這段代碼所放的位置一定是在已經獲取到參數(shù)值后,才可打印出來。四、參數(shù)說明:ParamName:存放動態(tài)數(shù)據的參數(shù)名稱。list of Attributes:其他屬性,包含 “Notfound” “LB” “RB” “RelFramelD” “Search”“ORD” “SaveOffset” “Convert” 以及 “SaveLen”下面將詳細說明每個屬性值的意義:1、Not found :指定當找不到要找的動態(tài)數(shù)據時該怎么處理。當指定 Notfound=error 時,表示著找不到動態(tài)數(shù)據時,就發(fā)出一個錯誤消息。此為該屬性 的默認值。當指定Notfound=w

12、arning時,表示當找不到動態(tài)數(shù)據時,不發(fā)出錯誤消息,只發(fā)出警告, 腳本也會繼續(xù)執(zhí)行下去不會中斷。在對腳本出錯時,可以如此設置。2、LB:動態(tài)數(shù)據的左邊界字符串。此屬性是必須要有的,而且區(qū)分大小寫。3、RB:動態(tài)數(shù)據的右邊界字符串。此屬性是必須要有的,而且區(qū)分大小寫。4、RelFrameID:相對于URL而言,欲搜尋的網頁的Frame。此屬性可以是All或是數(shù)字, 而且可有可無。5、Search:搜尋的范圍,其值可以是Headers (只搜尋headers)、Body (只搜尋body部分, 不搜尋header)、Noresource (只搜尋body部分,不搜尋header與resource)或是All (搜 尋全部范圍,此為默認值),此屬性可有可無。6、ORD:指明從第幾次出現(xiàn)的左邊界開始才是要擷取的數(shù)據,默認值是1。假如該屬性值為 All,則所有找到符合的數(shù)據會存儲在數(shù)組中。此屬性可有可無。7、SaveOffset:當找到符合的動態(tài)數(shù)據時,從第幾個字符開始才開始存儲到參數(shù)中。此屬 性值不可為負數(shù),其默認值為 0。8、Convert:轉換數(shù)據格式。當指定該屬性值為HTML_TO_URL時,意味著將HTML-encoded 數(shù)據轉成URL-encoded數(shù)據格式。如果是HTML_TO_TE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論