LoadRunner錄製圖片驗證碼

LoadRunner錄製圖片驗證碼
LoadRunner自身是沒法捕獲到圖片驗證碼的,可是咱們能夠幫助LoadRunner來實現驗證碼的捕獲。
1.圖片驗證碼
圖片驗證碼的產生來自服務器端,由服務器生成隨機數,而後寫入到圖片中。雖然LR能夠錄製下圖片,可是沒法從圖片中獲取數據,所以表面上看LR是沒法跳過這關了,那麼咱們從服務器下手,一般產生的隨機數是保存在session中,因此咱們能夠想辦法獲取到這個session。
 
 a.針對應用,採用不一樣的語言,本次講的是java應用,首先寫個*.jsp腳本,用來獲取應用當前session的名值對。
 b.將腳本調試經過後,放入應用的root目錄下。
 c.訪問該腳本,驗證能獲取session名值對。
2.捕獲驗證碼
既然能夠從服務器得到session的名值對,那麼咱們就能夠用LR來捕獲這些值。
 
 a.添加註冊函數web_reg_save_param,設置目標邊界。
 b.經過web_url訪問*.jsp文件。
 c.處理名值對,使用atoi將字符串型的驗證碼轉換成整型。
3.篩選捕獲的信息
a.在捕獲的session信息中,可能存在多個名值對,因此建議用循環處理,篩選出驗證碼的session。
 b.建議在得到驗證碼session後,從新整理腳本,修改web_reg_save_param的目標邊界值,而後直接調用web_url訪問*.jsp,這樣能夠避免循環帶來的性能問題,提升效率。
4.參數化
將驗證碼進行參數替換,腳本回放便可。
5.實例
Action()
 {
 web_url("reg.jsp", 
    "URL=http://localhost:8090/verf/reg.jsp", 
    "Resource=0", 
    "RecContentType=text/html", 
    "Referer=", 
    "Snapshot=t2.inf", 
    "Mode=HTTP", 
    LAST);
web_url("CheckCode.jsp", 
    "URL=http://localhost:8090/verf/CheckCode.jsp", 
    "Resource=1", 
    "RecContentType=image/jpeg", 
    "Referer=http://localhost:8090/verf/reg.jsp", 
    "Snapshot=t3.inf", 
    LAST);
web_reg_save_param("vcode","LB=S:","RB=:E", "ORD=ALL", LAST);
SessionInfo("vcode", "http://localhost:8090/verf/verify.jsp", "http://localhost:8090/verf/reg.jsp");
lr_start_transaction("very");
web_submit_data("actreg.jsp", 
    "Action=http://localhost:8090/verf/actreg.jsp", 
    "Method=POST", 
    "RecContentType=text/html", 
    "Referer=http://localhost:8090/verf/reg.jsp", 
    "Snapshot=t4.inf", 
    "Mode=HTTP", 
    ITEMDATA, 
    "Name=CheckCode", "Value=5715", ENDITEM, 
    "Name=btnG", "Value=登陸", ENDITEM, 
    LAST);
lr_end_transaction("very",LR_AUTO);
return 0;
 }
 
 小結
a.此方法有必定的侷限性,主要表如今須要寫一個服務端的腳本,並將腳本放入應用中,其次對於不一樣語言編寫的應用,須要編寫不一樣的腳本,如java、c#,最後此方法只適用於將驗證碼保存到session中的應用。
 b.能夠將上面關於LR的方法寫入函數中,方便之後的測試,提供 session.h 和 verify.jsp 腳本供參考

深圳湖北籍軟件測試羣 275212937html

相關文章
相關標籤/搜索