軟件介紹
-
Virtual User Generator
,記錄用戶流程并創(chuàng)建一個自動化性能測試腳本 -
Controller
,單一控制點(diǎn),輕松、有效地控制所有Vuser
,執(zhí)行期間監(jiān)控場景性能 -
Analysis
,生成性能測試報告,以圖表形式呈現(xiàn)。
由于教程篇幅較大,盡可能地照顧大部分學(xué)習(xí)情況,更多還是要大家多讀官方文檔,多去上手測試學(xué)習(xí)。
如果你還沒有安裝軟件,或者是用的LoadRunner 12
這樣的老版本,我在阿里云盤分享了LoadRunner 2023
的安裝包。
前置要求:
- 需要簡單了解LoadRunner軟件功能有哪些
- 了解HTTP網(wǎng)絡(luò)工作方式
- 擁有C語言基礎(chǔ)
- 軟件測試術(shù)語
本次教學(xué)應(yīng)該會花費(fèi)20-30分鐘,生成測試報告也要接近半個小時
如果對軟件測試、接口、自動化、性能測試、測試開發(fā)、面試經(jīng)驗(yàn)交流。感興趣可以加裙485187702,群內(nèi)會有不定期的發(fā)放免費(fèi)的資料鏈接,這些資料都是從各個技術(shù)網(wǎng)站搜集、整理出來的,如果你有好的學(xué)習(xí)資料可以私聊發(fā)我,我會注明出處之后分享給大家。
?
選用被測系統(tǒng)
這里選用華測教育在線商城
關(guān)于接口文檔,在他們培訓(xùn)機(jī)構(gòu)的資料領(lǐng)取里面,同時我也放在了上面鏈接里面。
VuGen的推薦配置
錄制設(shè)定
由于是模擬用戶真實(shí)行為,所以錄制應(yīng)當(dāng)是基于HTML
腳本只要有包含的URL請求就好了,Web用戶的界面動作并不重要。
日志設(shè)定
也許你有參數(shù)化,但是如果次次手動打印到
output
太麻煩了
?
當(dāng)然,你還可以將服務(wù)器返回的數(shù)據(jù)打印,但是沒必要,snapshot
快照就能很清楚查看。
現(xiàn)在不管是關(guān)聯(lián)的,還是預(yù)先設(shè)定好的參數(shù),都可以很清晰看到值。
錄制腳本
初始動作 - 登錄
打開VuGen
軟件
默認(rèn)創(chuàng)建
?
新建后,有3個行為(Action
),代表的啟動腳本、運(yùn)行時腳本、結(jié)束腳本。
那就開始錄制吧
?
進(jìn)入到了商城首頁,我們需要先進(jìn)行登錄,以模擬場景下用戶第一次的動作
?
賬號 | 密碼 |
---|---|
lisi | 123456 |
huace_tester | huace_tester |
提示登錄成功后,就可以將vuser_init
切換至Action
事務(wù) - 添加購物車
這里就點(diǎn)進(jìn)小米4手機(jī),作為要加入購物車的商品。
?
進(jìn)入詳細(xì)商品頁面之后。
加入購物車之前,先點(diǎn)擊開始事務(wù)(Start Transcation
),這里命名為add_car
?然后成功加入購物車后,一定不要忘記結(jié)束事務(wù)了
結(jié)束動作 - 退出登錄
接下來就是模擬用戶的退出系統(tǒng)操作,切換成錄制
vuser_end
腳本
?
然后點(diǎn)擊系統(tǒng)的左上角退出登錄
?可以結(jié)束錄制腳本了
修改腳本
回放腳本 - 程序介紹
修改腳本之前,簡單的聊一下錄制后的腳本(程序)
可以看到Action
都是標(biāo)準(zhǔn)的C語言程序。 不過,并不支持C99
語法,要正常寫的話,得是C89
語法,也就是ANSI C
。
?
C語言基礎(chǔ)很好的同學(xué),可以一眼就能理解腳本程序了。
可以說,函數(shù)名就是腳本
Action
名稱,vuser_init
和vuser_end
對應(yīng)著啟動和結(jié)束的鉤子函數(shù)。執(zhí)行一個腳本,就相當(dāng)于調(diào)用了這個函數(shù)。
進(jìn)入Actions
的vuser_init
程序來看一下調(diào)用了哪些函數(shù)
-
web_set_sockets_option
,用于設(shè)置與網(wǎng)絡(luò)通信和套接字操作相關(guān)的選項(xiàng) -
web_add_auto_header
,自動向請求頭加入信息,這個自動的意思是“后續(xù)的請求,都會有這個請求頭信息”。 -
web_url
,實(shí)際上是發(fā)送HTTP請求,可以簡單理解“模擬瀏覽器請求一個新的頁面(HTML
文件),并同時包含了其他靜態(tài)文件的請求(css
、js
、png
文件等等)”。 -
web_revert_auto_header
,對應(yīng)結(jié)束自動向請求頭加入信息 -
web_add_header
,下一個請求,會加入此請求頭信息 -
lr_think_time
,思考時間函數(shù),也就是程序睡眠時間,等同于Windows
庫中的sleep
函數(shù) -
web_submit_data
,模擬用戶的表單提交操作,也就是HTML
的form
標(biāo)簽事件。
按F5
,或者是點(diǎn)擊下面的按鈕,先進(jìn)性回放腳本
?
回放腳本的意思,等同于執(zhí)行腳本
在底部的output
中,可以看到添加購物車的事務(wù),正常執(zhí)行并結(jié)束
然后看一下快照(Snapshot
)
?
然后此時,鼠標(biāo)點(diǎn)擊函數(shù)的地方,就可以看見整個網(wǎng)絡(luò)請求。 比如我這里演示的是,vuser_init.c
腳本中的登錄POST請求。
?
檢查點(diǎn) - 登錄成功
這里需要用到函數(shù)創(chuàng)建工具,在LoadRunner里叫步驟工具箱(
Steps Toolbox
)
?然后要使用一個注冊類型的函數(shù),web_reg_find
可以查找下一個動作函數(shù)中,是否符合對應(yīng)的匹配值(文本)。
再次回放腳本,可以發(fā)現(xiàn)已經(jīng)找到了這個值,如果不成功的話
?
關(guān)聯(lián)參數(shù)化 - 登錄賬號
這里我們的任務(wù)是,隨機(jī)抽取一個賬號密碼進(jìn)行登錄
首先必須要有一個外部參數(shù)的引入,也就是類似賬號密碼表格的文件。
文件路徑可以自己起個名字保存。 ’選擇下一次‘ 一定要是 Ramdom
(隨機(jī)),才符合任務(wù)要求。(這里其實(shí)不只是下一次隨機(jī),第一次也會隨機(jī))
為什么不用
File
類型?因?yàn)樵贚oadRunner中,File
類型只能讀取行中一列數(shù)據(jù),而賬戶密碼是與之相對應(yīng)的行數(shù)據(jù),如果需要隨機(jī)賬戶密碼登錄,就必須讓行完整。
這樣,拿到的參數(shù)值,為 賬號,密碼
形式,接下來就是分割字符串,要用到string.h
庫的strtok
。
#include <string.h>
vuser_init()
{
????char?*?tableResultString?=?lr_eval_string("{account}");
????// 分割符
????const?char?*?delim?=?",";
????// 賬號
????char?*?account?=?strtok(tableResultString,delim);
????// 密碼????
????char?*?pwd?=?strtok(NULL,delim);
????// 注冊關(guān)聯(lián)參數(shù)
????lr_save_string(account,?"acc");
????lr_save_string(pwd,?"pwd");
????// --- 輸出變量的值
????lr_log_message("account變量 %s",account);
????lr_log_message("pwd變量 %s",pwd);
????// --- 輸出關(guān)聯(lián)參數(shù)的值
????lr_log_message("關(guān)聯(lián)參數(shù)的賬號為 %s",lr_eval_string("{acc}"));
????lr_log_message("關(guān)聯(lián)參數(shù)的密碼為 %s",lr_eval_string("{pwd}"));
...
return 0;
}
?
lr_eval_string
的意思是,將LoadRunner
可以執(zhí)行的參數(shù),轉(zhuǎn)換成C語言的字符串。 lr_save_string
的意思是,將C語言的字符串值,保存到LoadRunner
參數(shù)。 lr_log_message
則是在LoadRunner
的輸出中打印信息。
?
可以看到,實(shí)現(xiàn)了隨機(jī)抽取用戶。
接著就是,在網(wǎng)絡(luò)提交的時候,使用這個值。
找到唯一的POST
請求,在請求體字符串中,參數(shù)值替換成{參數(shù)名}
形式。
外部參數(shù)化 - 不同商品加入購物車
來看看錄制的時候,網(wǎng)絡(luò)請求和Web
頁面有哪些關(guān)系
?這是小米4的,那其他的呢?
可以看到,2、3、4、5對應(yīng)著蘋果、三星、華為、魅族手機(jī)。
這個數(shù)字,就是商品id,現(xiàn)在我們的任務(wù)是:將商品id為1-10的,按每次迭代順序添加到購物車
打開參數(shù)列表,開始創(chuàng)建一個外部參數(shù)吧,參數(shù)類型為File
。
參數(shù)值手動錄入進(jìn)去,或者是用工具生成。
?然后,將代碼中所有的網(wǎng)絡(luò)請求,引用商品id為1的字段,換成LoadRunner
參數(shù)goods
有一個便攜的辦法,那就是通過action
腳本中,搜索全部id/1
的地方。因?yàn)檫@里只引用了商品id。
?
這樣我們就完成了本任務(wù),但是會發(fā)現(xiàn)output,只引用了goods = 1,因?yàn)楸灸_本只運(yùn)行一次,后面我們需要加入迭代次數(shù)。
集合點(diǎn) - 加入購物車
本任務(wù):為加入購物車業(yè)務(wù)設(shè)置一個集合點(diǎn)
?
在設(shè)計中,或者是右擊腳本,可以找到 插入(Insert
) - 集合點(diǎn)(Rendezvous
),然后命名為add_car_r
。
集合點(diǎn)不應(yīng)該被包含在事務(wù)里面,否則集合點(diǎn)等待時間,會被算在事務(wù)時間。
這樣就完成了,集合點(diǎn)的目的是,某個業(yè)務(wù)功能的壓力測試,也就是一群用戶做相同功能。
回放腳本
迭代次數(shù)
這一次任務(wù),將把1-10商品ID都用到,那么需要加入迭代次數(shù)
進(jìn)入 運(yùn)行時設(shè)定(Runtime Settings
) - 運(yùn)行邏輯(Run Logic
) - 迭代次數(shù)(Number of iterations
) 這里設(shè)置為15吧,意味著run
生命周期的Action
(腳本)重復(fù)15次。
然后開始點(diǎn)擊回放
最后:下面是配套學(xué)習(xí)資料,對于做【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!【100%無套路免費(fèi)領(lǐng)取】
軟件測試面試小程序
被百萬人刷爆的軟件測試題庫?。?!誰用誰知道!??!全網(wǎng)最全面試刷題小程序,手機(jī)就可以刷題,地鐵上公交上,卷起來!
8小時傳瘋!大廠面試真題全被大佬整理在這個小程序上了!【軟件測試,建議收藏】
涵蓋以下這些面試題板塊:
1、軟件測試基礎(chǔ)理論 ,2、web,app,接口功能測試 ,3、網(wǎng)絡(luò) ,4、數(shù)據(jù)庫 ,5、linux
6、web,app,接口自動化 ,7、性能測試 ,8、編程基礎(chǔ),9、hr面試題 ,10、開放性測試題,11、安全測試,12、計算機(jī)基礎(chǔ)?文章來源:http://www.zghlxwxcb.cn/news/detail-736862.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-736862.html
??全套資料獲取方式:點(diǎn)擊下方小卡片自行領(lǐng)取即可
到了這里,關(guān)于商城性能測試LoadRunner快速上手教學(xué)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!