一、分層自動(dòng)化測(cè)試
分層自動(dòng)化測(cè)試是最近曝光度比較高的概念步责,傳統(tǒng)的自動(dòng)化測(cè)試更關(guān)注的是UI層的自動(dòng)化測(cè)試,而分層自動(dòng)化測(cè)試則倡導(dǎo)產(chǎn)品的不同層次都要進(jìn)行自動(dòng)化測(cè)試钞速。
單元測(cè)試:關(guān)注代碼的實(shí)現(xiàn)邏輯纲酗,比如一個(gè)if分支或者一個(gè)for循環(huán)的實(shí)現(xiàn)轴踱;
服務(wù)層測(cè)試:關(guān)注的代碼所提供的接口是否可靠飞傀;
UI層測(cè)試:關(guān)注的是界面層的測(cè)試朴摊;
單元測(cè)試和服務(wù)層測(cè)試葛圃,可以通過junit千扔、testNG、unittest等一些測(cè)試框架來實(shí)現(xiàn)自動(dòng)化測(cè)試库正。
UI層的測(cè)試可以借助selenium曲楚、appium模擬頁(yè)面操作實(shí)現(xiàn)自動(dòng)化測(cè)試。
我們看這個(gè)模型為什么要設(shè)計(jì)成金字塔形褥符,而不是長(zhǎng)方形或者倒三角形呢龙誊,這是為了表示不同階段投入自動(dòng)化測(cè)試的比例,越往上層喷楣,其維護(hù)成本越高趟大,尤其是ui層的元素會(huì)時(shí)常發(fā)生變化,所以我們應(yīng)該把更多的自動(dòng)化測(cè)試放在單元測(cè)試和接口測(cè)試階段铣焊。
在這里我們不是說不提倡大家做UI測(cè)試逊朽,而是不應(yīng)該投入太多精力去做UI層的自動(dòng)化測(cè)試。
什么是接口
接口:外部系統(tǒng)與本系統(tǒng)之間以及系統(tǒng)內(nèi)部的各個(gè)子系統(tǒng)間曲伊,以約定標(biāo)準(zhǔn)提供的服務(wù)叽讳,包括對(duì)外提供的接口/對(duì)內(nèi)提供的接口。
在這塊我們舉一個(gè)比較生活化的例子坟募,我們平常使用的筆記本岛蚤,在筆記本的兩端有很多小插口,最常見的就是USB插口婿屹,我們可以把鼠標(biāo)連接在USB插口上,也可以把鍵盤推溃、U盤連接在USB插口上昂利,為什么同一個(gè)USB接口可以連接這么多設(shè)備呢届腐,其實(shí)這個(gè)接口,他就有一個(gè)統(tǒng)一對(duì)外的連接標(biāo)準(zhǔn)蜂奸。
在我們開發(fā)當(dāng)中犁苏,也有一個(gè)對(duì)外暴露的接口,因?yàn)樗麄兎?wù)的協(xié)議都是統(tǒng)一的扩所,最常見的就是hhtp協(xié)議围详,我們規(guī)定好一種格式,讓客戶端來調(diào)用我們祖屏。
這里面鍵盤鼠標(biāo)屬于調(diào)用方助赞,插到筆記本的USB上,就可以連接設(shè)備袁勺,就可以進(jìn)行操作了雹食。對(duì)外暴露的一個(gè)統(tǒng)一的一個(gè)規(guī)范,這樣去理解接口期丰,更形象一些群叶。
什么是接口測(cè)試
在了解完什么是接口之后,我們來說一下什么是接口測(cè)試钝荡。
接口測(cè)試測(cè)試系統(tǒng)組件間接口的一種測(cè)試街立。接口測(cè)試主要用于檢測(cè)外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個(gè)子系統(tǒng)之間的交互點(diǎn)。測(cè)試的重點(diǎn)是要檢查數(shù)據(jù)的交換埠通,傳遞和控制管理過程赎离,以及系統(tǒng)間的相互邏輯依賴關(guān)系等,保證對(duì)外提供接口的正確性和健壯性植阴。
我們?cè)诰唧w測(cè)試過程中蟹瘾,我們不用關(guān)心接口調(diào)用方和接收方的實(shí)現(xiàn)邏輯,我們只需要知道傳入什么數(shù)據(jù)掠手,返回什么的結(jié)果是否達(dá)到我們的預(yù)期憾朴。接口測(cè)試其實(shí)也是黑盒測(cè)試,他與UI測(cè)試的區(qū)別就是沒有界面交互喷鸽,是不可視化的众雷。
我們?yōu)槭裁匆鼋涌跍y(cè)試
測(cè)試前置:我們不能等到整個(gè)系統(tǒng)全部開發(fā)完成才能進(jìn)行測(cè)試,我們可以通過調(diào)用接口來進(jìn)行測(cè)試做祝,把問題攔截在前期砾省,降低問題修復(fù)成本。
Bug更容易定位:因?yàn)槲覀儼唇涌谶M(jìn)行測(cè)試混槐,出現(xiàn)問題后在被測(cè)接口中排查就可以了编兄,它比系統(tǒng)集成之后,發(fā)現(xiàn)問題更容易定位声登,系統(tǒng)集成之后有各種模塊的調(diào)用狠鸳,出現(xiàn)bug之后再排查揣苏,排查的鏈路非常的長(zhǎng)。另外從機(jī)制上更接近出問題的地方更容易命中問題件舵。
前后端分離結(jié)構(gòu):現(xiàn)在很多系統(tǒng)都采用前后端分離架構(gòu)卸察,各服務(wù)之間更多的是通過接口來實(shí)現(xiàn)信息互通,對(duì)接口進(jìn)行直接測(cè)試铅祸,可以更全面的覆蓋各類測(cè)試場(chǎng)景坑质。
自動(dòng)化測(cè)試落地性價(jià)比高:比UI自動(dòng)化測(cè)試更穩(wěn)定,我們上面已經(jīng)說了UI層的元素時(shí)常發(fā)生變化临梗,有時(shí)改一個(gè)簡(jiǎn)單的元素涡扼,都有可能導(dǎo)致我們的自動(dòng)化測(cè)試走不下去,寫一套自動(dòng)化測(cè)試腳本比較容易的夜焦,但是維護(hù)起來壳澳,會(huì)耗費(fèi)很大的時(shí)間精力,相對(duì)來說茫经,接口就比較穩(wěn)定巷波,一個(gè)項(xiàng)目沒有大的改造,入?yún)⒑统鰠⒕褪枪潭ǖ男渡。兓母怕时容^小抹镊,這樣維護(hù)起來也比較方便。
減少安全隱患:比如我們?cè)谄匠5臏y(cè)試過程中荤傲,測(cè)試用戶名和密碼垮耳,密碼格式要求不能輸入特殊字符,前端做了校驗(yàn)遂黍,而后端沒有處理终佛,這樣我們只測(cè)試頁(yè)面,這條case就默認(rèn)通過了雾家,但一些黑客可能通過抓包的方式進(jìn)行登錄铃彰,這樣安全隱患就比較大了。我們對(duì)接口進(jìn)行安全測(cè)試芯咧,可以避免安全隱患牙捉。
接口測(cè)試用例如何設(shè)計(jì)
自動(dòng)化測(cè)試如何落地
借助工具: Postman、Jmeter敬飒、jsf平臺(tái)邪铲、jsf測(cè)試工具、easytest
編寫測(cè)試腳本:Java+TestNG
請(qǐng)關(guān)注下一篇如何使用Java+TestNG進(jìn)行接口自動(dòng)化測(cè)試