您好,登錄后才能下訂單哦!
(????)??hi,guy,作為一枚剛入坑性能測試的菜雞,在這里是自己寫的一個登錄腳本,傳遞參數有用戶名/密碼/
驗證碼。由于當時沒有繞過驗證碼的問題,所以選擇了直接訪問接口獲取驗證碼。
主要流程如下:
發送驗證碼獲取請求=>獲取驗證碼=>將驗證碼填入登錄請求參數中,發送登錄請求=>判斷登錄是否成功。
(在判斷登錄是否成功時,由于后續測試需要用到返回的code值,我直接判斷是否取到code作為判斷操作
成功的依據)
LR的腳本是基于C語言的,所以在這里,每一個語句結束一定要注意使用;
在前面的流程中,我們大概簡述了我們的腳本編寫的步驟。現在來細化一下各部分的具體實現。
1、發送驗證碼獲取請求
驗證碼接口的是GET請求。使用LR函數,直接將參數寫入即可
web_url("給這個請求起的別名",
"URL=接口地址",
"Resource=0",
"RecContentType=json/html",
"Referer=",
"Snapshot=",
"Mode=HTML",
LAST);
2、獲取驗證碼
獲取驗證碼,就是需要從第一步的返回結果中找到驗證碼存儲的參數,將驗證碼取出來,
放在自己設置的參數名稱中
web_reg_save_param("自己設置的參數名稱",
"LB=result\":\"" //需要存儲的參數最左側的字符
"RB=\"", //需要存儲的參數最右側的字符
//"ORD=1", //應該取第幾次符合上述條件的內容
"SaveLen=4", //需要存儲的參數的長度
"SEARCH=BODY",
LAST); //還有許多屬性,可以自己查找
如果你按照這個順序進行運行,一定會出錯。因為,web_reg_save_param是一個注冊類型的函數。
它注冊一個請求,以在檢索到的網頁中查找并保存一個文本字符串。只有在執行了下一個操作函數
(如web_url)后才會執行該操作。因此在腳本編寫中需要將第2步的代碼寫到第1步之前
3、將驗證碼填入登錄請求參數中,發送登錄請求
其實第2、3步是一個手動關聯的操作。登錄接口是一個POST請求。
web_submit_data("給這個接口起的別名",
"Action=接口地址",
"Method=POST",
"TargetFrame=body",
"RecContentType=json/html",
"Referer=頁面地址",
"Snapshot=快照",
"Mode=HTML",
ITEMDATA,
"Name=loginName", "Value={loginName}", ENDITEM,
"Name=password", "Value={password}", ENDITEM,
"Name=captcha", "Value={result}", ENDITEM,
"Name=type", "Value=H5", ENDITEM,
LAST);
注意,在"Name=captcha"中,傳遞的應該是我們在上面存儲的驗證碼,所以傳遞的參數要是我們
第2步中自己設置的參數名稱。即"Value={第2步中自己設置的參數名稱},
Value={loginName}和{password},我設置了參數列表。好累啊,今天不想寫了,明天見!
4、判斷登錄是否成功
我這邊要獲取返回值,如果獲取失敗,就直接報錯No match found for the requested parameter "code".
獲取成功就打印code值
對,我有點懶,還沒有開始整理日志打印
web_reg_save_param("code",
"LB=code\":\"",
"RB=\"",
//"ORD=1",
"SaveLen=32",
"SEARCH=BODY",
LAST);
同理可得,這個注冊型函數也要放在第3步的前面。
打印就使用lr_output_message(lr_eval_string("{code}"));
好的,現在相當于我們的開發手冊已經完成了,其他細節也要注意哦
1、新建腳本,注意選擇腳本協議時要與自己所測試的項目一致。
2、lr_start_transaction("login");lr_end_transaction("login", LR_AUTO);設置事務開始結束函數("事務名稱")。
如果需要平均事務響應時間等有關事務的報告就必須要增加事務,在你需要統計的內容前后增加上事務函數
增加事務函數有手動寫函數,還有insert選項下的開始事務和結束事務,可以直接點擊添加
3.在Vuser選項下的Run time setting下的Run Log可以選擇運行次數(不是并發哦)
好的,寫的有點累了,有關查看報告的下次再講。
PS:這里只是很簡單的一個登錄腳本,還有許多設置會在以后的文檔中慢慢分享給大家(^U^)ノ~YO~
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。