(????)??hi,guy,作為一枚剛?cè)肟有阅軠y(cè)試的菜雞,在這里是自己寫的一個(gè)登錄腳本,傳遞參數(shù)有用戶名/密碼/
驗(yàn)證碼。由于當(dāng)時(shí)沒有繞過驗(yàn)證碼的問題,所以選擇了直接訪問接口獲取驗(yàn)證碼。
主要流程如下:
發(fā)送驗(yàn)證碼獲取請(qǐng)求=>獲取驗(yàn)證碼=>將驗(yàn)證碼填入登錄請(qǐng)求參數(shù)中,發(fā)送登錄請(qǐng)求=>判斷登錄是否成功。
(在判斷登錄是否成功時(shí),由于后續(xù)測(cè)試需要用到返回的code值,我直接判斷是否取到code作為判斷操作
成功的依據(jù))
LR的腳本是基于C語言的,所以在這里,每一個(gè)語句結(jié)束一定要注意使用;
在前面的流程中,我們大概簡(jiǎn)述了我們的腳本編寫的步驟?,F(xiàn)在來細(xì)化一下各部分的具體實(shí)現(xiàn)。
1、發(fā)送驗(yàn)證碼獲取請(qǐng)求
驗(yàn)證碼接口的是GET請(qǐng)求。使用LR函數(shù),直接將參數(shù)寫入即可
web_url("給這個(gè)請(qǐng)求起的別名",
"URL=接口地址",
"Resource=0",
"RecContentType=json/html",
"Referer=",
"Snapshot=",
"Mode=HTML",
LAST);
2、獲取驗(yàn)證碼
獲取驗(yàn)證碼,就是需要從第一步的返回結(jié)果中找到驗(yàn)證碼存儲(chǔ)的參數(shù),將驗(yàn)證碼取出來,
放在自己設(shè)置的參數(shù)名稱中
web_reg_save_param("自己設(shè)置的參數(shù)名稱",
"LB=result\":\"" //需要存儲(chǔ)的參數(shù)最左側(cè)的字符
"RB=\"", //需要存儲(chǔ)的參數(shù)最右側(cè)的字符
//"ORD=1", //應(yīng)該取第幾次符合上述條件的內(nèi)容
"SaveLen=4", //需要存儲(chǔ)的參數(shù)的長(zhǎng)度
"SEARCH=BODY",
LAST); //還有許多屬性,可以自己查找
如果你按照這個(gè)順序進(jìn)行運(yùn)行,一定會(huì)出錯(cuò)。因?yàn)?,web_reg_save_param是一個(gè)注冊(cè)類型的函數(shù)。
它注冊(cè)一個(gè)請(qǐng)求,以在檢索到的網(wǎng)頁中查找并保存一個(gè)文本字符串。只有在執(zhí)行了下一個(gè)操作函數(shù)
(如web_url)后才會(huì)執(zhí)行該操作。因此在腳本編寫中需要將第2步的代碼寫到第1步之前
3、將驗(yàn)證碼填入登錄請(qǐng)求參數(shù)中,發(fā)送登錄請(qǐng)求
其實(shí)第2、3步是一個(gè)手動(dòng)關(guān)聯(lián)的操作。登錄接口是一個(gè)POST請(qǐng)求。
web_submit_data("給這個(gè)接口起的別名",
"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"中,傳遞的應(yīng)該是我們?cè)谏厦娲鎯?chǔ)的驗(yàn)證碼,所以傳遞的參數(shù)要是我們
第2步中自己設(shè)置的參數(shù)名稱。即"Value={第2步中自己設(shè)置的參數(shù)名稱},
Value={loginName}和{password},我設(shè)置了參數(shù)列表。好累啊,今天不想寫了,明天見!
4、判斷登錄是否成功
我這邊要獲取返回值,如果獲取失敗,就直接報(bào)錯(cuò)No match found for the requested parameter "code".
獲取成功就打印code值
對(duì),我有點(diǎn)懶,還沒有開始整理日志打印
web_reg_save_param("code",
"LB=code\":\"",
"RB=\"",
//"ORD=1",
"SaveLen=32",
"SEARCH=BODY",
LAST);
同理可得,這個(gè)注冊(cè)型函數(shù)也要放在第3步的前面。
打印就使用lr_output_message(lr_eval_string("{code}"));
好的,現(xiàn)在相當(dāng)于我們的開發(fā)手冊(cè)已經(jīng)完成了,其他細(xì)節(jié)也要注意哦
1、新建腳本,注意選擇腳本協(xié)議時(shí)要與自己所測(cè)試的項(xiàng)目一致。
2、lr_start_transaction("login");lr_end_transaction("login", LR_AUTO);設(shè)置事務(wù)開始結(jié)束函數(shù)("事務(wù)名稱")。
如果需要平均事務(wù)響應(yīng)時(shí)間等有關(guān)事務(wù)的報(bào)告就必須要增加事務(wù),在你需要統(tǒng)計(jì)的內(nèi)容前后增加上事務(wù)函數(shù)
增加事務(wù)函數(shù)有手動(dòng)寫函數(shù),還有insert選項(xiàng)下的開始事務(wù)和結(jié)束事務(wù),可以直接點(diǎn)擊添加
3.在Vuser選項(xiàng)下的Run time setting下的Run Log可以選擇運(yùn)行次數(shù)(不是并發(fā)哦)
好的,寫的有點(diǎn)累了,有關(guān)查看報(bào)告的下次再講。
PS:這里只是很簡(jiǎn)單的一個(gè)登錄腳本,還有許多設(shè)置會(huì)在以后的文檔中慢慢分享給大家(^U^)ノ~YO~
本文題目:LoadRunner登錄腳本-簡(jiǎn)單易上手-創(chuàng)新互聯(lián)
文章鏈接:http://jinyejixie.com/article28/dphecp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、外貿(mào)網(wǎng)站建設(shè)、定制網(wǎng)站、App開發(fā)、靜態(tài)網(wǎng)站、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)