應(yīng)用場景
假設(shè)有3個不同的
測試場景,,分別為并發(fā)登錄,、核心業(yè)務(wù)、可靠性測試,,3個場景有先后執(zhí)行順序,。由于白天測試機(jī)器另有用處,只能在晚上進(jìn)行
性能測試,,這時我們的期望是能否把測試場景都設(shè)定好之后晚上自動運(yùn)行,,第二天我們回來看測試結(jié)果呢?
答案是肯定的,,可以有兩種方式實(shí)現(xiàn),。
第一種,相對簡單
充分利用LR Controller里面Group的功能,。
新建一個場景把3個腳本都添加進(jìn)來,,在Edit Schedule中選擇“Schedule by Group”的方式,,在StartTime中設(shè)置3個腳本的運(yùn)行順序?yàn)?#8220;Start when Group xxx finished”,并在“Scenario Start Time”中設(shè)定場景在晚上的運(yùn)行啟動時間,。設(shè)定完定時執(zhí)行場景后,,點(diǎn)擊StartScenario按鈕,會出現(xiàn)一個倒計(jì)時窗口,,這樣在固定的某個時間上,,測試場景中的3個腳本將乖乖的按照設(shè)定的先后順序進(jìn)行測試。注意,,如果沒有點(diǎn)擊StartScenario按鈕激活測試,,是不會真正進(jìn)行測試的。(感謝Athenst朋友的提醒,,^_^)
第二種,,比較靈活
我們把應(yīng)用場景稍微擴(kuò)展一下,假設(shè)其中1,、3場景只有一個測試腳本,,而核心業(yè)務(wù)場景由數(shù)據(jù)錄入、數(shù)據(jù)查詢,、數(shù)據(jù)上報(bào)3個腳本組成,,同樣的,3個場景仍需按順序進(jìn)行測試,。這時如果采用第一種方式,,由于第2個場景有3個腳本,所以第三個腳本的啟動時間就是一個問題了,。由于Controller中每個腳本都對應(yīng)一個Group,,而且GroupName不能重復(fù),這時第三個場景的StartTime中“Start when group finished”則只能是選擇第二個場景中的某個Group,,而并非是第二個場景的3個腳本都完成之后再進(jìn)行,,無法達(dá)到我們的初衷。
這時,,可以通過命令行的方式來進(jìn)行,。
首先創(chuàng)建并設(shè)置好3個測試場景,再創(chuàng)建一個一個批處理程序按先后順序調(diào)用這3個場景進(jìn)行測試,,最后通過Windows的定時任務(wù)設(shè)定批處理的執(zhí)行時間,。
批處理示例如下:
cls SET M_ROOT="D:\Program Files\MI\Mercury LoadRunner\bin\" %M_ROOT%\wlrun.exe -TestPath "D:\Program Files\MI\Mercury LoadRunner\scenario\Test\TestScen_1.lrs" -Run %M_ROOT%\wlrun.exe -TestPath "D:\Program Files\MI\Mercury LoadRunner\scenario\Test\TestScen_2.lrs" -Run %M_ROOT%\wlrun.exe -TestPath "D:\Program Files\MI\Mercury LoadRunner\scenario\Test\TestScen_3.lrs" -Run
|
這種方式比較靈活,但需要注意在Result Settings中設(shè)置“Automatically create a results directory for each scenario execution”,,以免后面的測試結(jié)果覆蓋了前面的,。
另外補(bǔ)充一下,如果想對某個腳本進(jìn)行50,、100,、150...等用戶數(shù)遞增的測試,,也可以用以上方法實(shí)現(xiàn),但需要注意的是將事務(wù)名稱區(qū)分開以便進(jìn)行分析,。