背景
最近接口測(cè)試做的多了,略有一點(diǎn)思想俱济,總結(jié)一下
怎么做
我之前專門寫過(guò)接口測(cè)試的文章,也對(duì)比過(guò)好多現(xiàn)有的工具钙勃,發(fā)現(xiàn)現(xiàn)有的工具并不是非常好用蛛碌,至少擴(kuò)展性不好。所以自己寫才是最好的辖源。方法嘛有很多蔚携,用Java、Python都行克饶,最近在用RobotFramework酝蜒,感覺(jué)都差不多,只要能實(shí)現(xiàn)定制化矾湃,都沒(méi)問(wèn)題亡脑。
測(cè)試腳本怎么規(guī)劃
文章標(biāo)題是測(cè)試腳本的規(guī)劃,那就專門說(shuō)說(shuō)這個(gè)。
以前的代碼都是一個(gè)人玩远豺,所以怎么玩都行,換工作之后需要協(xié)作坞嘀,那么就和以前不一樣了躯护,至少我覺(jué)得,現(xiàn)在的腳本結(jié)構(gòu)還是不錯(cuò)的丽涩。
公共方法
公共方法指的是所有項(xiàng)目都能使用的方法棺滞,比如網(wǎng)絡(luò)連接,文件操作矢渊,數(shù)據(jù)庫(kù)連接等等继准。這種方法所有項(xiàng)目都需要使用,就可以全部抽象出來(lái)成為資源矮男,然后調(diào)用就行了移必。
當(dāng)然,不僅僅是這些毡鉴,某些特定的項(xiàng)目?jī)?nèi)崔泵,也一樣會(huì)有公共方法,但是這些方法僅僅在這個(gè)項(xiàng)目?jī)?nèi)通用猪瞬,出了項(xiàng)目就沒(méi)用了憎瘸,比如你把這個(gè)項(xiàng)目需要用的數(shù)據(jù)庫(kù)查詢,修改等專門封裝成方法陈瘦,那么就只能是項(xiàng)目的公共方法幌甘。
當(dāng)然,項(xiàng)目公共方法在足夠抽象時(shí)痊项,也是能夠上升到全局的公共方法的锅风,主要看組織者對(duì)于這塊的規(guī)劃。說(shuō)白了线婚,公共方法的主要目的就是減少代碼的重復(fù)遏弱,以及寫腳本的效率。
項(xiàng)目個(gè)體
每個(gè)項(xiàng)目都應(yīng)該做一些清晰的劃分塞弊,以便以后的拓展漱逸,迭代總是難免的,每次迭代都要花大量時(shí)間來(lái)修改腳本游沿,那么寫代碼測(cè)試的意義就不大了饰抒。我認(rèn)為應(yīng)該有這么幾塊要?jiǎng)澐殖鰜?lái)的。主要有這么幾塊:
- 業(yè)務(wù)模塊
- 報(bào)文構(gòu)建模塊
- 基礎(chǔ)報(bào)文模塊
- 環(huán)境模塊
- 公告方法
- 冒煙部分
冒煙測(cè)試是每個(gè)項(xiàng)目都會(huì)有的诀黍,而且在回歸的時(shí)候必定要回歸冒煙測(cè)試袋坑。屬于業(yè)務(wù)模塊部分
- 業(yè)務(wù)部分
所有的業(yè)務(wù)測(cè)試部分就應(yīng)該放在這里了,測(cè)試用例寫的各種場(chǎng)景眯勾,在這里應(yīng)該都要能提現(xiàn)出來(lái)枣宫。屬于業(yè)務(wù)模塊部分婆誓。
- 調(diào)試部分
這部分我放置的都是業(yè)務(wù)的拆分調(diào)試的腳本,畢竟業(yè)務(wù)流總是會(huì)有各種環(huán)境因素導(dǎo)致不通也颤,單步拆分是非常有必要的洋幻。屬于業(yè)務(wù)模塊部分
- 項(xiàng)目資源部分
這里應(yīng)該是整個(gè)腳本結(jié)構(gòu)的地基,之前的腳本都應(yīng)該從項(xiàng)目資源部分調(diào)取方法翅娶,所以這塊的構(gòu)建需要非常清楚文留。
基礎(chǔ)報(bào)文模塊。這塊用來(lái)組件基礎(chǔ)的報(bào)文竭沫,需要包括報(bào)文的所有字段燥翅,已經(jīng)某些字段的常量的定義。比如一個(gè)接口有30個(gè)字段蜕提,有一些字段是非必選的森书,有一些字段是常量,在構(gòu)建基礎(chǔ)報(bào)文時(shí)就可以確定的贯溅,還有一些是業(yè)務(wù)字段拄氯,需要根據(jù)不同的業(yè)務(wù)場(chǎng)景來(lái)傳值。在構(gòu)建基礎(chǔ)模塊時(shí)就要注意這些字段它浅,必選和非必選要能很好的區(qū)分開(kāi)來(lái)译柏,有時(shí)候需要只要測(cè)非必選參數(shù)即可,有時(shí)候全部參數(shù)都要拿來(lái)測(cè)姐霍。常量必須要確認(rèn)清楚鄙麦,這部分定義好之后是不做更改的。業(yè)務(wù)字段要保留默認(rèn)值镊折,在報(bào)文構(gòu)建模塊要對(duì)這些字段做業(yè)務(wù)場(chǎng)景的修改胯府。
報(bào)文構(gòu)建模塊。這部分也是非常關(guān)鍵的恨胚,在這里需要構(gòu)建成業(yè)務(wù)場(chǎng)景的報(bào)文骂因,那么這部分必須要有這么幾個(gè)哦功能。首先赃泡,要能從基礎(chǔ)報(bào)文模塊中獲取基礎(chǔ)報(bào)文寒波。然后,能夠動(dòng)態(tài)的修改和刪除所有的報(bào)文(不用增加功能升熊,因?yàn)榛A(chǔ)報(bào)文就應(yīng)該把所有字段定義好)俄烁。最后,要能夠往服務(wù)器發(fā)送報(bào)文级野。
環(huán)境模塊页屠。這塊主要是用來(lái)定義腳本的執(zhí)行環(huán)境。最好定義成可傳參的方式,在構(gòu)建的時(shí)候區(qū)分環(huán)境辰企。
公共方法风纠。這部分沒(méi)啥說(shuō)的,項(xiàng)目使用的方法都放到這里牢贸。
總體結(jié)構(gòu)
根據(jù)上面來(lái)看议忽,總體結(jié)構(gòu)大概是這樣的
|____所有項(xiàng)目的公共方法
|____項(xiàng)目1
| |____業(yè)務(wù)模塊
| |____基礎(chǔ)模塊
| |____公共方法
|____項(xiàng)目2
| |____業(yè)務(wù)模塊
| |____基礎(chǔ)模塊
| |____公共方法
...
總結(jié)
以上是現(xiàn)階段的接口測(cè)試腳本規(guī)劃,目前來(lái)看十减,還是比較清晰的。畫一張圖來(lái)表示一下吧愤估。
就像蓋房子一樣帮辟,項(xiàng)目中好的公共方法抽象到總的公共方法中,抽象的越多玩焰,相當(dāng)于地基打的越牢靠由驹,業(yè)務(wù)模塊的可擴(kuò)展性才能強(qiáng)大,在快速迭代中才能夠減少工作量昔园,提升效率蔓榄。