一进胯、接口測(cè)試的背景
1)什么是接口測(cè)試呢?
接口測(cè)試是測(cè)試系統(tǒng)組件間接口的一種測(cè)試具练,接口測(cè)試主要用于檢測(cè)外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個(gè)子系統(tǒng)之間的交互點(diǎn)聯(lián)系帘饶,測(cè)試的重點(diǎn)是要檢查數(shù)據(jù)的交換绰精,傳遞和控制管理過程撒璧,以及系統(tǒng)間的相互邏輯依賴關(guān)系等。
2)那為什么要做接口測(cè)試呢笨使?
(1)舉個(gè)例子來說卿樱,就舉大家都很熟悉的淘寶網(wǎng)來說吧,在淘寶網(wǎng)不斷發(fā)展歷史過程中硫椰,最先出現(xiàn)的是功能測(cè)試和性能測(cè)試繁调,然后才是自動(dòng)化測(cè)試,但測(cè)試技術(shù)發(fā)展到今天靶草,淘寶網(wǎng)的架構(gòu)已經(jīng)不再是以前傳統(tǒng)的 MVC 結(jié)構(gòu)了蹄胰,整個(gè)系統(tǒng)架構(gòu)不斷向著分布式、業(yè)務(wù)中心化和高可用性的方向發(fā)展奕翔,淘寶網(wǎng)現(xiàn)今的系統(tǒng)架構(gòu)紛繁復(fù)雜裕寨,系統(tǒng)間的各種接口龐雜繁多,傳統(tǒng)的功能測(cè)試派继、性能測(cè)試和自動(dòng)化測(cè)試已經(jīng)難以滿足系統(tǒng)發(fā)展的需求宾袜,這時(shí)就迫切需要一種更加有效實(shí)用且可以持續(xù)進(jìn)行的測(cè)試方式來保證整個(gè)系統(tǒng)架構(gòu)的質(zhì)量。
(2)接口測(cè)試就是在這種需求下應(yīng)運(yùn)而生驾窟,首先庆猫,隨著系統(tǒng)復(fù)雜程度的不斷上升,傳統(tǒng)的測(cè)試方法測(cè)試成本急劇增加绅络,測(cè)試效率且大幅下降(數(shù)據(jù)模型推算月培,底層的一個(gè)bug能夠引發(fā)上層的 8 個(gè)左右bug,而且底層的bug很容易引起全網(wǎng)的宕機(jī)恩急;相反的接口測(cè)試能夠提供系統(tǒng)復(fù)雜度上升的情況下低成本高效率的解決方案杉畜。
(3)其次接口測(cè)試不同于傳統(tǒng)開發(fā)的單元測(cè)試,接口測(cè)試是站在用戶的角度對(duì)系統(tǒng)接口進(jìn)行全面高效持續(xù)的檢測(cè)測(cè)試假栓。
(4)最后接口測(cè)試是自動(dòng)化并且持續(xù)集成的寻行,這也是為什么接口測(cè)試能夠低成本高效率的根源。
(5)總之接口測(cè)試是保證高復(fù)雜性系統(tǒng)質(zhì)量的內(nèi)在要求和低成本的經(jīng)濟(jì)利益的驅(qū)動(dòng)作用下的最佳解決方案匾荆,接口測(cè)試是一個(gè)完整的體系拌蜘,也包括功能測(cè)試杆烁、性能測(cè)試
3)接口測(cè)試的適用范圍
(1)接口測(cè)試一般應(yīng)用于多系統(tǒng)間交互開發(fā),或者擁有多個(gè)子系統(tǒng)的應(yīng)用系統(tǒng)開發(fā)的測(cè)試简卧。 接口測(cè)試適用于為其他系統(tǒng)提供服務(wù)的底層框架系統(tǒng)和中心服務(wù)系統(tǒng)兔魂,主要測(cè)試這些系統(tǒng)對(duì)外部提供的接口,驗(yàn)證其正確性和穩(wěn)定性举娩。接口測(cè)試同樣適用于一個(gè)上層系統(tǒng)中的服務(wù)層接口析校,越往上層,其測(cè)試的難度越大铜涉。接口測(cè)試在淘寶網(wǎng)的應(yīng)用是一個(gè)自下而上的發(fā)展過程智玻。
(2)接口測(cè)試實(shí)施在多系統(tǒng)多平臺(tái)的構(gòu)架下,有著極為高效的成本收益比芙代。接口測(cè)試天生為高復(fù)雜性的平臺(tái)帶來高效的缺陷檢測(cè)和質(zhì)量監(jiān)督能力吊奢。平臺(tái)越復(fù)雜,系統(tǒng)越龐大纹烹,做接口測(cè)試的效果就越明顯页滚。
二、接口測(cè)試操作示例
1)實(shí)現(xiàn)一個(gè)登錄功能的接口測(cè)試
選擇post方法铺呵,輸入url地址裹驰,填寫登錄需要的參數(shù),然后點(diǎn)擊發(fā)送查看響應(yīng)值片挂,登錄的接口測(cè)試就完成了幻林。
2)獲取登錄返回的token進(jìn)行查詢操作
只需要在登錄接口的后執(zhí)行腳本中添加一個(gè)環(huán)境變量,然后獲取響應(yīng)值response.json.token就可以了宴卖。
在到查詢的接口中引用token的值滋将。如圖:
這就是接口測(cè)試簡(jiǎn)單的操作示例了
三、做接口測(cè)試的目的
1)接口測(cè)試的戰(zhàn)略方針
(1)接口測(cè)試的核心戰(zhàn)略在于:以保證系統(tǒng)的正確和穩(wěn)定為核心症昏,以持續(xù)集成為手段随闽,提高測(cè)試效率,提升用戶體驗(yàn)肝谭,降低產(chǎn)品研發(fā)成本為目的掘宪。
(2)核心:保證系統(tǒng)的穩(wěn)定質(zhì)量管理的目標(biāo)是保證系統(tǒng)的正確和穩(wěn)定,接口測(cè)試作為軟件質(zhì)量管理的一部分也是能保證系統(tǒng)的正確和穩(wěn)定的攘烛,更準(zhǔn)確的說法是保證系統(tǒng)服務(wù)端的正確和穩(wěn)定魏滚,一個(gè)系統(tǒng)的服務(wù)端,越接近底層坟漱,對(duì)系統(tǒng)的影響就越大鼠次,甚至有可能牽一發(fā)而動(dòng)全身,服務(wù)端的一個(gè)缺陷可能會(huì)引起客戶端的幾個(gè)甚至十幾個(gè)缺陷,更可怕的是服務(wù)端的缺陷有可能引起整個(gè)系統(tǒng)的崩潰腥寇,這對(duì)整個(gè)系統(tǒng)來說成翩,損失將是不可估量的,因此服務(wù)端接口的質(zhì)量將直接影響到系統(tǒng)的正確和穩(wěn)定赦役。
(3)手段:持續(xù)集成什么是以持續(xù)集成為手段麻敌,關(guān)鍵在于“持續(xù)構(gòu)建”、“業(yè)務(wù)”掂摔、“集成化”以及“文檔體系”术羔,我們需要讓被測(cè)代碼進(jìn)行持續(xù)構(gòu)建集成,我們需要用業(yè)務(wù)化的思維去考慮接口定義的合理性乙漓,我們需要從性能级历、安全的角度去思考代碼的正確性,我們還需要從集成化的角度去甄別接口間數(shù)據(jù)傳遞的正確性簇秒,我們更需要確定我們的測(cè)試范圍鱼喉,也就是我們要測(cè)什么、不要測(cè)什么趋观。
(3)目的:提高測(cè)試效率,提升用戶體驗(yàn)锋边,降低產(chǎn)品研發(fā)成本皱坛,接口測(cè)試要為代碼的編寫保駕護(hù)航,增強(qiáng)開發(fā)人員和測(cè)試人員的自信豆巨,讓隱含的BUG提前暴露出來剩辟,要讓開發(fā)人員在第一時(shí)間修復(fù) BUG,要讓功能測(cè)試人員和性能測(cè)試人員在測(cè)試的時(shí)候更加順手往扔,最大限度減少底層 BUG 的出現(xiàn)數(shù)量贩猎,要讓產(chǎn)品研發(fā)的流程更加敏捷,要縮短產(chǎn)品的研發(fā)周期萍膛,最后在產(chǎn)品上線以后吭服,要讓用戶用得更加順暢,同時(shí)也要讓用戶感覺產(chǎn)品服務(wù)零缺陷蝗罗。
(4)另外在這個(gè)戰(zhàn)略過程中艇棕,我們需要幾類資源作為支撐,下面做簡(jiǎn)單描述串塑。 首先在這個(gè)戰(zhàn)略中最重要的一點(diǎn)是要強(qiáng)調(diào)團(tuán)隊(duì)的重要性沼琉,特別是團(tuán)隊(duì)中需要有合理的人力資源配置,在這個(gè)團(tuán)隊(duì)中桩匪,需要全才打瘪,也需要專才,需要技術(shù)專家,也需要業(yè)務(wù)專家闺骚,既需要高效的執(zhí)行者桃移,也需要有效的管理者,任何人在這個(gè)團(tuán)隊(duì)中都可以發(fā)揮重要作用葛碧。
(5)其次要充分重視文檔的重要性借杰,包括需求文檔,開發(fā)技術(shù)方案进泼,測(cè)試技術(shù)方案蔗衡,測(cè)試用例文檔等等,完善這些文檔可以大大減少軟件工程周期中各個(gè)團(tuán)隊(duì)配合障礙乳绕,也可以降低后期軟件維護(hù)成本绞惦。
(6)因此貫徹和落實(shí)接口測(cè)試的戰(zhàn)略可以最大程度地提高軟件質(zhì)量的穩(wěn)定性。
四洋措、接口測(cè)試工具
1.接口測(cè)試接口性能測(cè)試工具:jmeter
jmeter是一款100%純Java編寫的免費(fèi)開源的工具济蝉,它主要用來做性能測(cè)試,相比loadrunner來說菠发,它內(nèi)存占用小王滤,免費(fèi)開源,輕巧方便滓鸠、無需安裝雁乡,越來越被大眾所喜愛。
2.接口測(cè)試和接口文檔生成工具:apipost
apipost是一款國(guó)產(chǎn)的接口測(cè)試和接口文檔生成工具糜俗,可以生成各種格式接口文檔踱稍,包括在線及時(shí)更新文檔,word格式文檔等悠抹,是一款非常不錯(cuò)的接口測(cè)試工具珠月。
下載地址: