关于存储过程的测试
? 昨天看到51testing上有個(gè)帖子說(shuō)討論下存儲(chǔ)過(guò)程的測(cè)試。在存儲(chǔ)過(guò)程這一方面,我算是做得不少了,基本上70%的工作是關(guān)于存儲(chǔ)過(guò)程測(cè)試的。于是第一次在51testing上發(fā)表了自己的第一份見(jiàn)解。在帖子上簡(jiǎn)單的說(shuō)下了存儲(chǔ)過(guò)程測(cè)試的進(jìn)行和需要注意的幾個(gè)地方。
今晚,趁著這難得的閑暇稍微詳細(xì)說(shuō)下存儲(chǔ)過(guò)程測(cè)試的過(guò)程吧!
?存儲(chǔ)過(guò)程測(cè)試主要有兩方面內(nèi)容。一個(gè)是業(yè)務(wù)邏輯,也就是實(shí)現(xiàn)功能。其次是性能方面,尋求最優(yōu)的SQL語(yǔ)句。
?⑴:業(yè)務(wù)邏輯
給你一堆存儲(chǔ)過(guò)程放在數(shù)據(jù)庫(kù)里,你需要去測(cè)試它是否實(shí)現(xiàn)了該實(shí)現(xiàn)的功能,未出現(xiàn)多余的“功能”;獲取到了想要的數(shù)據(jù),未得到冗余的數(shù)據(jù)。由于數(shù)據(jù)獲取到后是需要進(jìn)行傳輸?shù)?#xff0c;如果有冗余的數(shù)據(jù),雖然在獲取的時(shí)候能夠處理掉,但是會(huì)給服務(wù)器造成很大的壓力,久而久之,難免會(huì)出現(xiàn)瓶頸。再者,對(duì)于一系列的存儲(chǔ)過(guò)程,你需要看它是否按照需求完成了所需要的功能,是否能夠把一系列的流程跑通。
對(duì)于業(yè)務(wù)邏輯方面的測(cè)試,能夠在數(shù)據(jù)庫(kù)里執(zhí)行該語(yǔ)句,通過(guò)傳入一些參數(shù)后能夠進(jìn)行手動(dòng)的測(cè)試。說(shuō)到這,大家肯定會(huì)問(wèn)是否能夠?qū)崿F(xiàn)自動(dòng)話測(cè)試吧?當(dāng)然,這里有一定的技巧。我是通過(guò)C#語(yǔ)言來(lái)簡(jiǎn)單的實(shí)現(xiàn)了。通過(guò)ADO.NET調(diào)用存儲(chǔ)過(guò)程,傳入一些參數(shù),執(zhí)行存儲(chǔ)過(guò)程就能夠通過(guò)點(diǎn)擊一個(gè)按鈕就把所有的存儲(chǔ)過(guò)程跑完了。在這個(gè)過(guò)程,需要收集的數(shù)據(jù)是一個(gè)難點(diǎn),因?yàn)槟阈枰@條數(shù)據(jù)一直能用下去。測(cè)試數(shù)據(jù)庫(kù)并不是你一個(gè)人在用,所以這條數(shù)據(jù)得很靈活,需要仔細(xì)了哦,不然會(huì)經(jīng)常跑不通。 為了再智能點(diǎn),就是不需要自己去點(diǎn)某個(gè)按鈕就能自動(dòng)執(zhí)行所有的存儲(chǔ)過(guò)程。當(dāng)然就是利用開(kāi)機(jī)自動(dòng)運(yùn)行了。有個(gè)第三方工具:Nunit。你只需要把存儲(chǔ)過(guò)程代碼寫(xiě)好,編譯好后,加載進(jìn)去,點(diǎn)擊執(zhí)行就能夠一次性跑完代碼,跑不通的會(huì)有顏色提示。這個(gè)工具其實(shí)看似簡(jiǎn)單,里面還有很多的功能,本人不才,未能發(fā)掘到更多,只是簡(jiǎn)單的利用了跑代碼而已。把Nunit結(jié)合另外幾個(gè)插件使用,如:Nant、NUnit2Report、nantcontrib。這幾個(gè)一起使用完全可以架構(gòu)出一套自動(dòng)話測(cè)試平臺(tái)。具體如何進(jìn)行,請(qǐng)看下回。
?⑵:存儲(chǔ)過(guò)程的性能。
?存儲(chǔ)過(guò)程是由SQL語(yǔ)句經(jīng)過(guò)一些修飾而來(lái)的,說(shuō)到性能,也就是sql語(yǔ)句的性能了。一條SQL語(yǔ)句的性能有很多地方能得出來(lái)。有經(jīng)驗(yàn)的同志可以一眼就能看出大部分SQL語(yǔ)句的性能高低。所以,很簡(jiǎn)單的一個(gè)方法就是肉眼觀看。如今,很多軟件都支持查看SQL語(yǔ)句運(yùn)行的時(shí)間,從時(shí)間上也可以很直觀的看出SQL語(yǔ)句的性能。在相同的外界環(huán)境下,時(shí)間越短,顯然效率是越高的。依稀記得在51testing上有一篇短文上介紹了一條語(yǔ)句,可以直接在oracle是sqlplus上執(zhí)行后可以直接查看出SQL運(yùn)行的時(shí)間,哎,記性不好,忘記了,大家應(yīng)該可以搜出來(lái)。 查看SQL語(yǔ)句的執(zhí)行時(shí)間,有很多方法,PL/sql就會(huì)顯示SQL語(yǔ)句的執(zhí)行時(shí)間。你也可以通過(guò)ado來(lái)調(diào)用存儲(chǔ)過(guò)程來(lái)查看SQL語(yǔ)句的執(zhí)行時(shí)間,也是很容易實(shí)現(xiàn)的。
?
在測(cè)試領(lǐng)域工作了一年多了,終于發(fā)現(xiàn)自己有點(diǎn)作為了。如今還在為工作的事情感到擔(dān)心,其實(shí),有時(shí)間可以多做些總結(jié)什么的。所以,潛水這么久,第一發(fā)文來(lái)記錄自己的測(cè)試工作和發(fā)表自己的工作心得吧。希望能找到份好工作,也希望能早點(diǎn)走出陰影。
轉(zhuǎn)載于:https://www.cnblogs.com/Zeech-Lee/archive/2012/03/28/2422042.html
總結(jié)
- 上一篇: ATT汇编指令
- 下一篇: poj 1011 Sticks 搜索