LoadRunner中如何使用集合點(diǎn)進(jìn)行功能測(cè)試
集合點(diǎn)的用處對(duì)于LoadRunner來說意義非常大,它可以設(shè)置多個(gè)虛擬用戶等待到一個(gè)點(diǎn),同時(shí)觸發(fā)一個(gè)事務(wù),以達(dá)到模擬真實(shí)環(huán)境下同時(shí)多個(gè)用戶操作,同時(shí)模擬負(fù)載,實(shí)現(xiàn)性能測(cè)試的最終目的。由此可見,插入集合點(diǎn)主要是為了衡量在加重負(fù)載的情況下服務(wù)器的性能情況。
舉例如下:在客戶的需求中,可能會(huì)要求系統(tǒng)能夠承受1000人同時(shí)提交數(shù)據(jù)。在LoadRunner中可以通過在提交數(shù)據(jù)操作前面加入集合點(diǎn),當(dāng)虛擬用戶運(yùn)行到提交數(shù)據(jù)的集合點(diǎn)時(shí),Loadrunner就會(huì)檢查同時(shí)有多少用戶運(yùn)行到集合點(diǎn),如果我們?cè)O(shè)定腳本運(yùn)行的虛擬用戶數(shù)為1000,等到這1000個(gè)虛擬用戶都運(yùn)行到集合點(diǎn)后,就會(huì)觸發(fā)同時(shí)進(jìn)行提交數(shù)據(jù)的操作,從而能夠測(cè)試系統(tǒng)對(duì)于這1000個(gè)用戶提交數(shù)據(jù)的響應(yīng)情況,依次來看系統(tǒng)是否滿足客戶的該點(diǎn)需求。
集合點(diǎn)除了用于多用戶并發(fā)操作對(duì)服務(wù)器施壓的性能測(cè)試外,還可以用戶系統(tǒng)的功能測(cè)試,而且這些功能測(cè)試都是手工測(cè)試所不能實(shí)現(xiàn)的,下面以本人實(shí)際遇到的兩種情況進(jìn)行說明。
A. 用集合點(diǎn)測(cè)試編號(hào)生成策略:
被測(cè)系統(tǒng)為一個(gè)訂單處理的準(zhǔn)生產(chǎn)系統(tǒng),在系統(tǒng)中形成訂單的時(shí)候會(huì)自動(dòng)生成訂單編號(hào),訂單編號(hào)的生成規(guī)則是【日期+時(shí)間+4位隨機(jī)數(shù)+2位編號(hào)】,如:20091216104924276201,系統(tǒng)中要保證所有生成的訂單編號(hào)不能重復(fù),而訂單編號(hào)中關(guān)系編號(hào)是否重復(fù)的關(guān)鍵是“4位隨機(jī)數(shù)”?,F(xiàn)在系統(tǒng)的實(shí)際操作可能會(huì)出現(xiàn)同時(shí)有200個(gè)訂單錄入員提交訂單,提交訂單時(shí)會(huì)生成訂單編號(hào),要保證不會(huì)出現(xiàn)重復(fù)的編號(hào),設(shè)計(jì)測(cè)試用例:在提交訂單之前插入集合點(diǎn),虛擬用戶為200,運(yùn)行腳本,運(yùn)行結(jié)束后查看運(yùn)行后提交的訂單個(gè)數(shù),然后查看訂單編號(hào)是否有重復(fù)的情況;
如果運(yùn)行腳本發(fā)現(xiàn)頻繁出現(xiàn)有訂單編號(hào)重復(fù)的情況,可能訂單編號(hào)的4位隨機(jī)數(shù)生成策略不能滿足需求,需要考慮采用更好的生成策略;如果多次運(yùn)行腳本未出現(xiàn)有訂單編號(hào)重復(fù)的情況,那么可以說明4為隨機(jī)數(shù)生成策略以滿足訂單編號(hào)生成的需求和設(shè)計(jì)。
B. 用集合點(diǎn)測(cè)試互斥鎖定策略:
被測(cè)系統(tǒng)還是訂單處理的準(zhǔn)生產(chǎn)系統(tǒng),生成后的訂單是可以被部分用戶把信息讀取到另一個(gè)系統(tǒng)中的,讀取的時(shí)候要保證一個(gè)訂單同時(shí)只能被一個(gè)用戶讀取,一旦一個(gè)訂單被一個(gè)用戶讀取到后,其他的用戶就不能再讀取到這個(gè)訂單,只能讀取到其他可以被讀取的訂單。讀取訂單時(shí)是可以選擇讀哪一個(gè)訂單,也可以不選定,不選定系統(tǒng)就會(huì)自動(dòng)分配。
設(shè)計(jì)實(shí)現(xiàn)這個(gè)功能的時(shí)候,實(shí)現(xiàn)方式是,訂單被用戶讀取到后,就將該訂單加鎖,加鎖的訂單其他的用戶是不能讀取到的,這時(shí)系統(tǒng)就會(huì)按照策略分配其他可被提取的訂單給其他的用戶。手工測(cè)試是這樣進(jìn)行的:
預(yù)置條件:系統(tǒng)中有多個(gè)待讀取的訂單A、B、C……,默認(rèn)讀取順序就是A、B、C……
操作步驟:
1、用戶1選擇讀取訂單A,讀取成功;然后用戶2選擇讀取訂單A;
2、用戶1讀取訂單,讀取到訂單A;然后用戶2讀取訂單;
預(yù)期結(jié)果:
1、用戶2讀取訂單A失敗,返回正確合理的提示信息;
2、用戶2讀取到訂單B;
手工測(cè)試并未測(cè)試出設(shè)計(jì)和實(shí)現(xiàn)有什么樣的缺陷,功能正常。
考慮到客戶實(shí)際使用系統(tǒng)時(shí),提取訂單的用戶是上百個(gè)的,很可能出現(xiàn)這些用戶同時(shí)讀取訂單的情況,這樣的場(chǎng)景下,幾個(gè)測(cè)試人員手工測(cè)試是不現(xiàn)實(shí)的,這時(shí)考慮設(shè)計(jì)集合點(diǎn)并觸發(fā)多個(gè)用戶同時(shí)進(jìn)行讀取訂單事務(wù)操作就比較適用。
而實(shí)際運(yùn)行的情況是,在訂單讀取操作前設(shè)置集合點(diǎn),只使用兩個(gè)虛擬用戶在同一時(shí)刻讀取訂單就出現(xiàn)了讀取到同一訂單的情況,說明程序在實(shí)現(xiàn)上是存在缺陷的,這也很好的對(duì)手工測(cè)試不能覆蓋到的地方做了測(cè)試補(bǔ)充。
集合點(diǎn)插入方法:
1. 錄制時(shí),在需要并發(fā)操作的事務(wù)前直接點(diǎn)擊插入集合的按鈕;
2. 錄制后,錄制的腳本中,在并發(fā)操作事務(wù)提交前插入,點(diǎn)擊右鍵,選擇,然后選擇后面出現(xiàn)的,輸入集合名稱,腳本中出現(xiàn),即添加集合點(diǎn)成功;
備注:集合點(diǎn)只能插入到Action部分,vuser_init和vuser_end中不能插入集合點(diǎn)。如果想要測(cè)試系統(tǒng)所能支持同時(shí)登錄的用戶數(shù),登錄的事務(wù)要寫入到Action中,然后插入集合點(diǎn)進(jìn)行測(cè)試……
本文轉(zhuǎn)自(spasvo.com)