軟件測試教程 性能測試Loadrunner篇(二)
上節(jié)課主要講述了性能測試的基本知識本今,現(xiàn)在開始介紹性能測試工具Loadrunner。
Loadrunner是業(yè)界公認的權(quán)威性能測試工具鹰溜,被譽為工業(yè)級的性能測試工具,支持廣泛的協(xié)議和平臺戚哎。
本節(jié)主要介紹以下內(nèi)容:
Loadrunner安裝
Loadrunner的基本概念
開發(fā)測試腳本
Loadrunner安裝
現(xiàn)在以Loadrunner12為例味赃,說明一下安裝過程。
1滔悉、雙擊HP LoadRunner 12.53 Community Edition.exe啟動安裝程序
2伊诵、安裝程序開始解壓,選擇默認路徑即可回官,點擊install
3曹宴、Loadrunner程序會使用到Visual C++的庫,如果缺少這些庫歉提,安裝程序會提示安裝笛坦,這時選擇“確定”進行安裝即可,過程中如果提示重啟苔巨,按要求重啟即可版扩,重啟后會繼續(xù)進行安裝過程。
4恋拷、按照默認操作一步步進行安裝
5资厉、安裝過程中會有如下的提示。若無指定代理使用的證書蔬顾,則去掉勾選宴偿。
6湘捎、至此,Loadrunner已安裝完畢窄刘。HP network Virtualization為可選項窥妇,可不安裝。
7娩践、雙擊HP LoadRunner 12.53 Community Edition - Language Packs活翩,安裝中文包。
系統(tǒng)將抽取語言包安裝包翻伺,可選擇抽取的語言包臨時存放路徑材泄。建議直接默認即可,點擊【Install】
8吨岭、抽取安裝包完成后將自動關(guān)閉窗口(注此處只是把安裝包抽取出來了拉宗,要到抽取的安裝包中進行安裝),此時需要到上一步中選擇的路徑中找到語言安裝包辣辫。如未修改路徑則在以下路徑”C:\Temp\HP LoadRunner 12.02 Community Edition\DVD“打開該文件夾旦事。點擊”Setup“
9、將自動打開安裝目錄急灭,點擊【語言】
10姐浮、打開選擇語言文件夾,選擇要安裝的語言葬馋。本處依次打開如下文件【Chinese-Simplified】→【LoadRunner】→【LR_CHS】卖鲤,點擊【LR_CHS】將進行安裝。(其實可以省略掉第8,9步点楼,直接找到該文件安裝即可)
Loadrunner的基本概念
在使用loadrunner之前扫尖,先了解一下幾個概念:
- Scenario:場景。所謂場景掠廓,是指在每一個測試過程中發(fā)生的事件换怖,場景的設(shè)計需要
- Vusers:虛擬用戶。LoadRunner使用多線程或多進程來模擬用戶對應(yīng)用程序操作時產(chǎn)生的壓力蟀瞧。一個場景可能包括多個虛擬用戶沉颂,甚至成千上萬個虛擬用戶。
- Vuser Script:腳本悦污。用腳本來描述Vuser在場景中執(zhí)行的動作铸屉。
- Transactions:事務(wù)。事務(wù)代表了用戶的某個業(yè)務(wù)過程切端,需要衡量這些業(yè)務(wù)過程的性能彻坛。
- rendezvous :集合。當(dāng)我們測試多個用戶并發(fā)時,每個用戶執(zhí)行到該事務(wù)腳本的先后順序是不確定的昌屉,所以得到的測試結(jié)果也并不是一個完全 并發(fā)的極限測試結(jié)果钙蒙。在開始事務(wù)之前 ,插入一個“集合點”间驮,那么在多用戶執(zhí)行時躬厌,就可以將用戶請求停下來,直到用戶數(shù)量達到滿足的條件(默認是100%的用戶都到達集合點)竞帽。那么扛施,所有的用戶都將同時發(fā)出接下來的請求。
Loadrunner的性能測試用例執(zhí)行過程:
st=>start: 制定性能測試計劃
op=>operation: 開發(fā)測試腳本
op1=>operation: 設(shè)計測試場景
op2=>operation: 執(zhí)行屹篓、監(jiān)控測試場景
op3=>operation: 分析測試結(jié)果
op4=>operation: 對系統(tǒng)進行優(yōu)化
op5=>operation: 優(yōu)化后的測試
e=>end:yhua
st->op->op1(right)->op2(right)->op3->op4->op5(right)->op2
制定性能測試計劃
這部分內(nèi)容已經(jīng)在上一節(jié)進行了講述疙渣。主要實現(xiàn)以下內(nèi)容:
分析應(yīng)用程序、確定測試目標(biāo)抱虐、計劃怎樣執(zhí)行
開發(fā)測試腳本
LoadRunner 使用虛擬用戶的活動來模擬真實用戶來操作Web 應(yīng)用程序昌阿,而虛擬用戶的活動就包含在測試腳本中饥脑,所以說測試腳本對于測試來說是非常重要的恳邀。
開發(fā)測試腳本要使用 VuGen 組件。測試腳本要完成的內(nèi)容有:
- 每一個虛擬用戶的活動
- 參數(shù)化
- 定義事物
- 定義檢查點
設(shè)計運行場景
運行場景描述在測試活動中發(fā)生的各種事件灶轰。一個運行場景包括一個運行虛擬用戶活動的Load Generator 機器列表谣沸,一個測試腳本的列表以及大量的虛擬用戶和虛擬用戶組。
運行笋颤、監(jiān)視測試
一切配置妥當(dāng)乳附,開始運行測試。在運行過程中伴澄,需要監(jiān)視各個服務(wù)器的運行情況(DataBase Server赋除、Web Server 等)。
分析測試結(jié)果
所有前面的準(zhǔn)備都是為了這一步非凌。我們需要分析大量的圖表举农,生成各種不同的報告,最后會得出結(jié)論敞嗡。
LoadRunner用3個主要功能模塊來覆蓋性能測試的基本流程颁糟。
Virtual User Generator
Controller
Analysis
其中Virtual User Generator使用在創(chuàng)建VU腳本階段,Controller用在定義場景階段和運
行場景階段喉悴,Analysis用在分析結(jié)果階段棱貌。
開發(fā)測試腳本
下面以Loadrunner安裝時附帶的樣例程序Web Tours進行講解。
C:\Program Files (x86)\HP\LoadRunner\WebTours箕肃,選擇StartServer.bat啟動服務(wù)婚脱。
錄制基本的用戶腳本
1、啟動 Visual User Generator 后,選擇新建腳本障贸,因為要測試的是web項目涡贱,所以選擇協(xié)議為Web-HTTP/HTML,點擊創(chuàng)建后惹想,進入主窗體
2问词、在解決方案資源管理器中可以看到該腳本的組成部分。簡單說明一下:VuGen 中的腳本分為三部分:vuser_init嘀粱、vuser_end 和Action激挪。vuser_init用于用戶初始化,vuser_end用于用戶清理工作锋叨。Action用于具體的需要測試的操作垄分。類似于unittest等測試框架。
舉例說明:
一個測試場景為:用戶登錄系統(tǒng)娃磺,進行搜索操作薄湿,再進行退出系統(tǒng)。
這里偷卧,一般將登陸放置到vuser_init豺瘤,退出放置到vuser_end,搜索放置到Action听诸。
注意:在重復(fù)執(zhí)行測試腳本時坐求,vuser_init 和vuser_end 中的內(nèi)容只會執(zhí)行一次,重復(fù)執(zhí)行的只是Action 中的部分晌梨。
3桥嗤、選擇錄制操作,可以開始一次錄制操作仔蝌,在錄制中需要填寫URL泛领,這里以http://127.0.0.1:1080/WebTours/為例。錄制到操作說明是將腳本放置到哪里敛惊。在錄制中也可以修改腳本放置的地方渊鞋。
開始錄制中,“立即”默認情況下是選中的豆混,說明應(yīng)用程序一旦啟動篓像,VuGen 就會開始錄制腳本;如果沒有選中皿伺,應(yīng)用程序啟動后员辩,VuGen 出現(xiàn)對話框,待確認后才開始錄制鸵鸥。一般默認即可奠滑。
4丹皱、在以上頁面上有錄制選項可以進行一些高級選項的設(shè)置,這里一般不需要改動宋税。
Recording 標(biāo)簽頁:
-
基于HTML的腳本:這種方式錄制的代碼只生成了一個函數(shù)摊崭,所有請求全放在這個函數(shù)里面,即:一個操作(可能包含多個請求)會生成一個函數(shù)杰赛,這種方式看起來比較簡潔
基于HTML的腳本模式下-->高級選項兩種方式的區(qū)別:
? 描述用戶操作的腳本(e.g. web_link,web_submit_form):上下文相關(guān)的呢簸,依賴上下文才能提交,比較符合人們的操作習(xí)慣乏屯。
? 僅包含明確URL的腳本(e.g. web_url, web_submit_data):上下文不相關(guān)根时,每個函數(shù)都指定了具體的url地址,可以直接提交成功辰晕,如果只關(guān)注協(xié)議蛤迎,不需要關(guān)注頁面,可使用這種方式錄制含友。
基于URL的腳本:這種方式會生成很多函數(shù)替裆,它將每個請求都單獨成一個函數(shù),這種方式更接近請求-響應(yīng)的本質(zhì)
選擇哪種方式錄制窘问,有以下參考原則:
- 基于瀏覽器的應(yīng)用程序推薦使用HTML-based Script
- 不是基于瀏覽器的應(yīng)用程序推薦使用 URL-based Script
- 如果基于瀏覽器的應(yīng)用程序中包含了 JavaScript 并且該腳本向服務(wù)器產(chǎn)生了請求辆童,比如DataGrid 的分頁按鈕等,也要使用URL-based 方式錄制
- 基于瀏覽器的應(yīng)用程序中使用了 HTTPS 安全協(xié)議南缓,使用URL-based 方式錄制
5胸遇、點擊開始錄制,loadrunner會自動調(diào)用IE汉形,并開始錄制操作。這里以注冊為例進行錄制倍阐,錄制完畢后概疆,點擊停止,錄制停止峰搪,返回到腳本界面岔冀,可以看到已錄制的腳本。
錄制過程中概耻,在屏幕上會有一個工具條出現(xiàn)使套。錄制提供了暫停、停止鞠柄、新增操作侦高,增加事務(wù)、增加集合點等操作厌杜。
插入事務(wù)
當(dāng)錄制完一個基本的用戶腳本后奉呛,在正式使用前我們還需要完善測試腳本计螺,增強腳本的靈活性。一般情況下瞧壮,我們通過以下方法來完善測試腳本登馒。
事務(wù)(Transaction):為了衡量服務(wù)器的性能,我們需要定義事務(wù)咆槽。比如:我們在腳本中有一個數(shù)據(jù)查詢操作陈轿,為了衡量服務(wù)器執(zhí)行查詢操作的性能,我們把這個操作定義為一個事務(wù)秦忿,這樣在運行測試腳本時济欢,LoadRunner 運行到該事務(wù)的開始點時,LoadRunner 就會開始計時小渊,直到運行到該事務(wù)的結(jié)束點法褥,計時結(jié)束。這個事務(wù)的運行時間在結(jié)果中會有反映酬屉。插入事務(wù)操作可以在錄制過程中進行半等,也可以在錄制結(jié)束后進行。LoadRunner 可以在腳本中插入不限數(shù)量的事務(wù)呐萨。
通過菜單設(shè)計---在腳本中插入---開始事務(wù)杀饵、結(jié)束事務(wù)來進行事務(wù)的添加。
事務(wù)的狀態(tài)默認情況下是 LR_AUTO谬擦。一般情況下切距,我們也不需要修改,除非在手工編寫代碼時惨远,有可能需要手動設(shè)置事務(wù)的狀態(tài)谜悟。可以通過步驟導(dǎo)航器來查看步驟的參數(shù)選項北秽。
以上述注冊為例葡幸,在實際生成的腳本中含有打開首頁、注冊贺氓、退出登錄等多項操作蔚叨。而我們實際需要關(guān)注的是注冊這一個事務(wù)的性能,那么就需要在注冊前后來加入事務(wù)辙培。
lr_start_transaction("register");
web_submit_form("login.pl_2",
"Snapshot=t8.inf",
ITEMDATA,
"Name=username", "Value=test", ENDITEM,
"Name=password", "Value=123456", ENDITEM,
"Name=passwordConfirm", "Value=123456", ENDITEM,
"Name=firstName", "Value=", ENDITEM,
"Name=lastName", "Value=", ENDITEM,
"Name=address1", "Value=", ENDITEM,
"Name=address2", "Value=", ENDITEM,
"Name=register.x", "Value=59", ENDITEM,
"Name=register.y", "Value=10", ENDITEM,
LAST);
web_image("button_next.gif",
"Src=/WebTours/images/button_next.gif",
"Snapshot=t9.inf",
LAST);
lr_end_transaction("register", LR_AUTO);
插入集合點
插入集合點是為了衡量在加重負載的情況下服務(wù)器的性能情況蔑水。在測試計劃中,可能會要求系統(tǒng)能夠承受1000 人同時提交數(shù)據(jù)扬蕊,在LoadRunner 中可以通過在提交數(shù)據(jù)操作前面加入集合點搀别,這樣當(dāng)虛擬用戶運行到提交數(shù)據(jù)的集合點時,LoadRunner 就會檢查同時有多少用戶運行到集合點厨相,如果不到1000 人领曼,LoadRunner 就會命令已經(jīng)到集合點的用戶在此等待鸥鹉,當(dāng)在集合點等待的用戶達到1000 人時,LoadRunner 命令1000 人同時去提交數(shù)據(jù)庶骄,從而達到測試計劃中的需求毁渗。
注意:集合點經(jīng)常和事務(wù)結(jié)合起來使用。集合點只能插入到Action 部分单刁,vuser_init和vuser_end 中不能插入集合點灸异。
具體的操作方法如下:在需要插入集合點的前面,通過菜單操作:菜單設(shè)計---在腳本中插入---集合
lr_rendezvous("index");
參數(shù)化輸入
如果用戶在錄制腳本過程中羔飞,填寫提交了一些數(shù)據(jù)肺樟,比如要增加數(shù)據(jù)庫記錄。這些操作都被記錄到了腳本中逻淌。當(dāng)多個虛擬用戶運行腳本時么伯,都會提交相同的記錄,這樣不符合實際的運行情況卡儒,而且有可能引起沖突田柔。為了更加真實的模擬實際環(huán)境,需要各種各樣的輸入骨望。
參數(shù)化輸入是一種不錯的方法硬爆。
用參數(shù)表示用戶的腳本有兩個優(yōu)點:
① 可以使腳本的長度變短。
② 可以使用不同的數(shù)值來測試你的腳本擎鸠。例如缀磕,如果你企圖搜索不同名稱的圖書,你僅僅需要寫提交函數(shù)一次劣光。在回放的過程中袜蚕,你可以使用不同的參數(shù)值,而不只搜索一個特定名稱的值赎线。
參數(shù)化包含以下兩項任務(wù):
① 在腳本中用參數(shù)取代常量值廷没。
② 設(shè)置參數(shù)的屬性以及數(shù)據(jù)源。
參數(shù)化僅可以用于一個函數(shù)中的參量垂寥。你不能用參數(shù)表示非函數(shù)參數(shù)的字符串。
例如在上面的注冊的例子中另锋,我們已經(jīng)注冊了test用戶滞项,那么再次注冊就會失敗。也就是說Loadrunner腳本再次運行就會失敗夭坪。找到以下的代碼塊文判,在username中選中“test”字符串點擊右鍵選擇“使用參數(shù)替換”,就可以進行參數(shù)設(shè)置室梅。
web_submit_form("login.pl_2",
"Snapshot=t8.inf",
ITEMDATA,
"Name=username", "Value=test", ENDITEM,
"Name=password", "Value=123456", ENDITEM,
"Name=passwordConfirm", "Value=123456", ENDITEM,
"Name=firstName", "Value=", ENDITEM,
"Name=lastName", "Value=", ENDITEM,
"Name=address1", "Value=", ENDITEM,
"Name=address2", "Value=", ENDITEM,
"Name=register.x", "Value=59", ENDITEM,
"Name=register.y", "Value=10", ENDITEM,
LAST);
下面介紹一下參數(shù)的類型戏仓。
日期/時間:很簡單疚宇,在需要輸入日期/時間的地方,可以用DateTime 類型來替代赏殃。其屬性設(shè)置也很簡單敷待,選擇一種格式即可。當(dāng)然也可以定制格式仁热。
組名:在實際運行中榜揖,LoadRunner使用該虛擬用戶所在的Vuser Group 來代替。但是在VuGen 中運行時抗蠢,Group Name將會是None
Load Generator Name:在實際運行中举哟,LoadRunner 使用該虛擬用戶所在LoadGenerator 的機器名來代替。
迭代編號:在實際運行中迅矛,LoadRunner 使用該測試腳本當(dāng)前循環(huán)的次數(shù)來代替妨猩。
隨機數(shù)字:隨機數(shù)。很簡單秽褒。在屬性設(shè)置中可以設(shè)置產(chǎn)生隨機數(shù)的范圍
唯一編號:唯一的數(shù)壶硅。在屬性設(shè)置中可以設(shè)置第一個數(shù)以及遞增的數(shù)的大小(每個Vuser的塊大姓鸺怠)森瘪。
注意:使用該參數(shù)類型必須注意可以接受的最大數(shù)。例如:某個文本框能接受的最大數(shù)為99票堵。當(dāng)使用該參數(shù)類型時扼睬,設(shè)置第一個數(shù)為1,遞增的數(shù)為1悴势,但100 個虛擬用戶同時運行時窗宇,第100 個虛擬用戶輸入的將是100,這樣腳本運行將會出錯特纤。
注意:這里說的遞增意思是各個用戶取第一個值的遞增數(shù)军俊,每個用戶相鄰的兩次循環(huán)之間的差值為1。舉例說明:假如起始數(shù)為1捧存,遞增為5粪躬,那么第一個用戶第一次循環(huán)取值1,第二次循環(huán)取值2昔穴;第二個用戶第一次循環(huán)取值為6镰官,第二次為7;依次類推吗货。
Vuser ID:設(shè)置比較簡單泳唠。在實際運行中,LoadRunner 使用該虛擬用戶的ID 來代替宙搬,該ID 是由Controller 來控制的笨腥。但是在VuGen 中運行時拓哺,Vuser ID 將會是–1。
File:需要在屬性設(shè)置中編輯文件脖母,添加內(nèi)容
用戶定義的函數(shù):從用戶開發(fā)的dll 文件提取數(shù)據(jù)士鸥。
在上面的例子中,我們?nèi)‰S機數(shù)就可以了镶奉。選擇隨機數(shù)后础淤,點擊“屬性… ..”按鈕,進行屬性設(shè)置窗口
添入隨機數(shù)的取值范圍為(1-50)哨苛,選擇一種數(shù)據(jù)格式鸽凶。在更新值的時間中有以下幾個選項:
- Each Occurrence:在運行時,每遇到一次該參數(shù)建峭,便會取一個新的值
- Each iteration:運行時玻侥,在每一次循環(huán)中都取相同的值
- Once:運行時,在每次循環(huán)中亿蒸,該參數(shù)只取一次值
這里我們用的是隨機數(shù)凑兰,選擇默認的Each Occurrence 就非常合適。
File等類型中有以下參數(shù):
“選擇下一行 ”有以下幾種選擇:
Sequential:按照順序一行行的讀取边锁。每一個虛擬用戶都會按照相同的順序讀取
Random:在每次循環(huán)里隨機的讀取一個姑食,但是在循環(huán)中一直保持不變
Unique :唯一的數(shù)。注意:使用該類型必須注意數(shù)據(jù)表有足夠多的數(shù)茅坛。比如Controller 中設(shè)定20 個虛擬用戶進行5 次循環(huán)音半,那么編號為1 的虛擬用戶取前5個數(shù),編號為2 的虛擬用戶取6-10 的數(shù)贡蓖,依次類推曹鸠,這樣數(shù)據(jù)表中至少要有100個數(shù)據(jù),否則Controller 運行過程中會返回一個錯誤斥铺。
為了避免不正確的參數(shù)導(dǎo)致不可用彻桃,在設(shè)置后,可以選擇“模擬參數(shù)”來試運行
插入函數(shù)
VuGen 中可以使用C 語言中比較標(biāo)準(zhǔn)的函數(shù)和數(shù)據(jù)類型晾蜘,語法和C 語言相同邻眷。下面簡單介紹一下比較常用的函數(shù)和數(shù)據(jù)類型。
在腳本頁面剔交,通過右鍵-插入-新建步驟可以查看函數(shù)列表
- 控制腳本流程
if { } else { }
for{ }
while{ }
……………
總之 C 語言的控制流程的語句這里都可以直接使用
- 字符串函數(shù)
由于在 VuGen 腳本中使用最多的還是字符串耗溜,所以字符串函數(shù)在腳本中使用非常頻繁。具體的語法請參考幫助說明省容。
strcmp 比較兩個字符串
strcat 連接兩個字符串
strcpy 拷貝字符串
……………..
注意:在VuGen 中,以char聲明的字符串是只讀的燎字,如果試圖給char類型的字符串賦值的話腥椒,編譯會通過阿宅,但在運行時會產(chǎn)生“Access Violation”的錯誤。解決這類問題笼蛛,就是把字符串聲明為字符數(shù)組洒放,比如char[100]。
- 輸出函數(shù)
輸出函數(shù)在調(diào)試腳本時非常有用滨砍。
lr_output_message 輸出一條消息
- LoadRunner 提供的標(biāo)準(zhǔn)函數(shù)
lr_eval_string 該函數(shù)功能是得到參數(shù)(參數(shù)化輸入中)當(dāng)前的值
exg: lr_output_message("temp = %s", lr_eval_string("{WCSParam2}"));
lr_save_string 該函數(shù)功能是把一個字符串保存到參數(shù)中
exg: lr_save_string("439","WCSParam3");
web_reg_save_param("BODY",
"LB=\"MESSAGE\":{\"",
"RB=\":",
LAST);
if(strcmp(lr_eval_string("{BODY}"),"msginfo")==0)
{
lr_end_transaction("柜員登陸",LR_PASS);
}
else
{
lr_output_message("BODY=[%s]",lr_eval_string("{BODY}"));
lr_end_transaction("柜員登陸",LR_FAIL);
插入檢查點
在進行壓力測試時往湿,為了檢查Web 服務(wù)器返回的網(wǎng)頁是否正確,VuGen 允許我們插入Text 檢查點惋戏,這些檢查點驗證網(wǎng)頁上是否存在指定的Text领追,還可以測試在比較大的壓力測試環(huán)境中,被測的網(wǎng)站功能是否保持正確响逢。檢查點的含義和unittest中的斷言功能基本上一致绒窑。
通過菜單---查看---快照,可以查看到http數(shù)據(jù)視圖舔亭,選擇檢查的文本些膨,選擇添加文本檢查步驟,即可添加一個檢查點钦铺。
web_reg_find("Text=Thank you, <b>test</b>, for registering and welcome to the Web Tours family.",LAST);
此時選擇“回放”订雾,可以看到錯誤提示:
這是因為username我們已經(jīng)做了參數(shù)化,在注冊成功后的歡迎頁面矛洞,已經(jīng)不是test了洼哎。我們做如下改造:
web_reg_find("Text=Thank you, <b>{username}</b>, for registering and welcome to the Web Tours family.",LAST);
再回放一下試試,失敗還是成功缚甩?為什么谱净?想一想?yún)?shù)中有什么需要修改的?
關(guān)聯(lián)
很多時候擅威,一個項目的請求所以帶的參數(shù)會來源于前面請求返回的結(jié)果壕探,而我們錄制的內(nèi)容,則只是完整地記錄當(dāng)時的請求參數(shù)郊丛,這通常不是我們想要的李请。
例如上面的例子中的檢查點文本中的test。就是根據(jù)輸出來顯示的厉熟,我們可以獲取該值來供后續(xù)使用导盅。
在上圖中,選擇test揍瑟,通過創(chuàng)建關(guān)聯(lián)白翻,可以創(chuàng)建一個關(guān)聯(lián),創(chuàng)建完畢后如下圖:
web_reg_save_param_ex(
"ParamName=CorrelationParameter",
"LB=you, <b>",
"RB=<",
SEARCH_FILTERS,
"Scope=Body",
LAST);
//添加輸出,進行驗證
lr_output_message("BODY=[%s]", lr_eval_string("{CorrelationParameter}"));
運行時設(shè)置
當(dāng)完善了測試腳本后滤馍,需要對VuGen 的“運行時設(shè)置” 進行配置岛琼。
在“解決方案資源管理器”視圖中選擇“運行時設(shè)置”,常用的設(shè)置內(nèi)容如下:
1巢株、常規(guī)-其他-錯誤處理:
一般不需要改動槐瑞,但是在Controller運行時,可以設(shè)置“出現(xiàn)錯誤時仍繼續(xù)”阁苞,來統(tǒng)計錯誤率
2困檩、常規(guī)-其他-自動事務(wù)
當(dāng)我們手工設(shè)置了事務(wù)時,建議取消該項那槽,以免Controller運行時事務(wù)太多
3悼沿、常規(guī)-運行邏輯-迭代數(shù)
根據(jù)需要變動,一般在調(diào)試腳本時可以設(shè)置為多次迭代
4倦炒、常規(guī)-日志
在調(diào)試階段可勾選“啟動日志記錄”显沈,腳本穩(wěn)定時可取消該項
5、常規(guī)-思考時間
忽略時會對服務(wù)器造成更大的壓力逢唤,而增加思考時間可以更好的模擬用戶使用
6拉讯、internet協(xié)議-首選項-啟用圖像或文本檢查
不勾選“啟用圖像或文本檢查”,web_find和web_image_check設(shè)置的檢查點在運行時無效
7鳖藕、工具-選項-腳本-回放
如果勾選“回放期間顯示運行時查看器”魔慷,則在運行時會啟動瀏覽器
單機運行測試腳本
經(jīng)過以上的各個步驟后,腳本就可以運行了著恩。運行腳本可以通過菜單或者工具欄來操作院尔。
執(zhí)行“運行”命令后,VuGen 先編譯腳本喉誊,檢查是否有語法等錯誤邀摆。如果有錯誤,VuGen將會提示錯誤伍茄。雙擊錯誤提示栋盹,VuGen 能夠定位到出現(xiàn)錯誤的那一行。為了驗證腳本的正確性敷矫,我們還可以調(diào)試腳本例获,比如在腳本中加斷點等。
如果編譯通過曹仗,就會開始運行榨汤。然后會出現(xiàn)運行結(jié)果。