現(xiàn)在很多公司都有做接口測試的要求马胧,這時很多之前一直做功能測試的伙伴們就比較措手不及了汉买,所以就需要來學(xué)習(xí)接口測試了,今天就給大家講解一下接口測試的知識佩脊。
一蛙粘、接口測試的意義
1朽色、什么是接口測試呢?
接口測試是測試系統(tǒng)組件間接口的一種測試组题,接口測試主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個子系統(tǒng)之間的交互點聯(lián)系,測試的重點是要檢查數(shù)據(jù)的交換抱冷,傳遞和控制管理過程崔列,以及系統(tǒng)間的相互邏輯依賴關(guān)系等。
2旺遮、那為什么要做接口測試呢赵讯?
(1)舉個例子來說,就舉大家都很熟悉的淘寶網(wǎng)來說吧耿眉,在淘寶網(wǎng)不斷發(fā)展歷史過程中边翼,最先出現(xiàn)的是功能測試和性能測試,然后才是自動化測試鸣剪,但測試技術(shù)發(fā)展到今天组底,淘寶網(wǎng)的架構(gòu)已經(jīng)不再是以前傳統(tǒng)的 MVC 結(jié)構(gòu)了,整個系統(tǒng)架構(gòu)不斷向著分布式筐骇、業(yè)務(wù)中心化和高可用性的方向發(fā)展债鸡,淘寶網(wǎng)現(xiàn)今的系統(tǒng)架構(gòu)紛繁復(fù)雜,系統(tǒng)間的各種接口龐雜繁多铛纬,傳統(tǒng)的功能測試厌均、性能測試和自動化測試已經(jīng)難以滿足系統(tǒng)發(fā)展的需求,這時就迫切需要一種更加有效實用且可以持續(xù)進(jìn)行的測試方式來保證整個系統(tǒng)架構(gòu)的質(zhì)量告唆。
(2)接口測試就是在這種需求下應(yīng)運(yùn)而生棺弊,首先,隨著系統(tǒng)復(fù)雜程度的不斷上升擒悬,傳統(tǒng)的測試方法測試成本急劇增加模她,測試效率且大幅下降(數(shù)據(jù)模型推算,底層的一個bug能夠引發(fā)上層的 8 個左右bug茄螃,而且底層的bug很容易引起全網(wǎng)的宕機(jī)缝驳;相反的接口測試能夠提供系統(tǒng)復(fù)雜度上升的情況下低成本高效率的解決方案。
(3)其次接口測試不同于傳統(tǒng)開發(fā)的單元測試归苍,接口測試是站在用戶的角度對系統(tǒng)接口進(jìn)行全面高效持續(xù)的檢測測試用狱。
(4)最后接口測試是自動化并且持續(xù)集成的,這也是為什么接口測試能夠低成本高效率的根源拼弃。
(5)總之接口測試是保證高復(fù)雜性系統(tǒng)質(zhì)量的內(nèi)在要求和低成本的經(jīng)濟(jì)利益的驅(qū)動作用下的最佳解決方案夏伊,接口測試是一個完整的體系,也包括功能測試吻氧、性能測試
3)接口測試的適用范圍
(1)接口測試一般應(yīng)用于多系統(tǒng)間交互開發(fā)溺忧,或者擁有多個子系統(tǒng)的應(yīng)用系統(tǒng)開發(fā)的測試咏连。 接口測試適用于為其他系統(tǒng)提供服務(wù)的底層框架系統(tǒng)和中心服務(wù)系統(tǒng),主要測試這些系統(tǒng)對外部提供的接口鲁森,驗證其正確性和穩(wěn)定性祟滴。接口測試同樣適用于一個上層系統(tǒng)中的服務(wù)層接口,越往上層歌溉,其測試的難度越大垄懂。接口測試在淘寶網(wǎng)的應(yīng)用是一個自下而上的發(fā)展過程。
(2)接口測試實施在多系統(tǒng)多平臺的構(gòu)架下痛垛,有著極為高效的成本收益比草慧。接口測試天生為高復(fù)雜性的平臺帶來高效的缺陷檢測和質(zhì)量監(jiān)督能力。平臺越復(fù)雜匙头,系統(tǒng)越龐大漫谷,做接口測試的效果就越明顯。
二蹂析、做接口測試的目的
1舔示、接口測試的戰(zhàn)略方針
(1)接口測試的核心戰(zhàn)略在于:以保證系統(tǒng)的正確和穩(wěn)定為核心,以持續(xù)集成為手段识窿,提高測試效率斩郎,提升用戶體驗,降低產(chǎn)品研發(fā)成本為目的喻频。
(2)核心:保證系統(tǒng)的穩(wěn)定質(zhì)量管理的目標(biāo)是保證系統(tǒng)的正確和穩(wěn)定缩宜,接口測試作為軟件質(zhì)量管理的一部分也是能保證系統(tǒng)的正確和穩(wěn)定的,更準(zhǔn)確的說法是保證系統(tǒng)服務(wù)端的正確和穩(wěn)定甥温,一個系統(tǒng)的服務(wù)端锻煌,越接近底層,對系統(tǒng)的影響就越大姻蚓,甚至有可能牽一發(fā)而動全身宋梧,服務(wù)端的一個缺陷可能會引起客戶端的幾個甚至十幾個缺陷,更可怕的是服務(wù)端的缺陷有可能引起整個系統(tǒng)的崩潰狰挡,這對整個系統(tǒng)來說捂龄,損失將是不可估量的,因此服務(wù)端接口的質(zhì)量將直接影響到系統(tǒng)的正確和穩(wěn)定加叁。
(3)手段:持續(xù)集成什么是以持續(xù)集成為手段倦沧,關(guān)鍵在于“持續(xù)構(gòu)建”、“業(yè)務(wù)”它匕、“集成化”以及“文檔體系”展融,我們需要讓被測代碼進(jìn)行持續(xù)構(gòu)建集成,我們需要用業(yè)務(wù)化的思維去考慮接口定義的合理性豫柬,我們需要從性能告希、安全的角度去思考代碼的正確性扑浸,我們還需要從集成化的角度去甄別接口間數(shù)據(jù)傳遞的正確性,我們更需要確定我們的測試范圍燕偶,也就是我們要測什么喝噪、不要測什么。
(3)目的:提高測試效率指么,提升用戶體驗仙逻,降低產(chǎn)品研發(fā)成本,接口測試要為代碼的編寫保駕護(hù)航涧尿,增強(qiáng)開發(fā)人員和測試人員的自信,讓隱含的BUG提前暴露出來檬贰,要讓開發(fā)人員在第一時間修復(fù) BUG姑廉,要讓功能測試人員和性能測試人員在測試的時候更加順手,最大限度減少底層 BUG 的出現(xiàn)數(shù)量翁涤,要讓產(chǎn)品研發(fā)的流程更加敏捷桥言,要縮短產(chǎn)品的研發(fā)周期,最后在產(chǎn)品上線以后葵礼,要讓用戶用得更加順暢号阿,同時也要讓用戶感覺產(chǎn)品服務(wù)零缺陷。
(4)另外在這個戰(zhàn)略過程中鸳粉,我們需要幾類資源作為支撐扔涧,下面做簡單描述。 首先在這個戰(zhàn)略中最重要的一點是要強(qiáng)調(diào)團(tuán)隊的重要性届谈,特別是團(tuán)隊中需要有合理的人力資源配置枯夜,在這個團(tuán)隊中,需要全才艰山,也需要專才湖雹,需要技術(shù)專家,也需要業(yè)務(wù)專家曙搬,既需要高效的執(zhí)行者摔吏,也需要有效的管理者,任何人在這個團(tuán)隊中都可以發(fā)揮重要作用纵装。
(5)其次要充分重視文檔的重要性征讲,包括需求文檔,開發(fā)技術(shù)方案搂擦,測試技術(shù)方案稳诚,測試用例文檔等等,完善這些文檔可以大大減少軟件工程周期中各個團(tuán)隊配合障礙瀑踢,也可以降低后期軟件維護(hù)成本扳还。
(6)因此貫徹和落實接口測試的戰(zhàn)略可以最大程度地提高軟件質(zhì)量的穩(wěn)定性才避。
2、接口測試的各階段發(fā)展和目標(biāo)
簡要講述一個接口測試團(tuán)隊從建立初期到發(fā)展起來經(jīng)歷了哪些階段氨距,以及我們期望將來做成什么樣子桑逝。
(1)摸索階段:一個全新的團(tuán)隊在成立之初一般都會經(jīng)歷一個比較長期的摸索過程庐船,在這個階段內(nèi)我們會嘗試不同的技術(shù)烹困、框架和流程規(guī)范。直到在這些方面都找到了比較適合團(tuán)隊自身特點的方案了资锰, 那么這個階段的目標(biāo)就算是達(dá)到了首昔。
(2)穩(wěn)定提高階段: 摸索階段過后就應(yīng)該會進(jìn)入一個穩(wěn)定提高期寡喝,經(jīng)歷了摸索階段過后,團(tuán)隊的技術(shù)勒奇、框架和流程規(guī)范都應(yīng)該有了一個基本的定型预鬓。這個時候團(tuán)隊的目標(biāo)就是通過不同的項目實踐來不斷優(yōu)化這些定型后的東西,最終總結(jié)出一套最佳方案出來赊颠。這套方案應(yīng)該能夠成為其它項目測試活動的參照格二,甚至是依據(jù)標(biāo)準(zhǔn)。這個時候呢竣蹦,我們會發(fā)現(xiàn)所有的項目都在有序顶猜、統(tǒng)一、高效痘括、可靠的進(jìn)行长窄。
(3)擴(kuò)大影響,組織共贏階段 :那么到達(dá)上面這個目標(biāo)之后是不是就是接口測試團(tuán)隊的終點呢纲菌?顯然不是的抄淑,不要忘了,到目前為止驰后,無論你在接口測試的工作上做得再好肆资,那也僅僅只局限在接口測試本身上而已,我們不應(yīng)該滿足于此灶芝。通常來說接口測試團(tuán)隊在整個質(zhì)量保證團(tuán)隊中占據(jù)了眾多的核心技術(shù)人員郑原。他們擅長使用各種技術(shù)來解決問題,甚至比開發(fā)團(tuán)隊做得還還要好夜涕。擁有如此多的技術(shù)資源犯犁, 如果我們不懂得合理利用,那真的是一種很大的浪費(fèi)女器。在做好接口測試本身的基礎(chǔ)上酸役,我們還應(yīng)該積極了解其它測試團(tuán)隊面臨哪些問題,這些問題是不是可以利用技術(shù)手段來解決,如果可以涣澡,我們是否可以為他們實現(xiàn)一些實用的工具來幫助他們解決問題或者提高工作效率贱呐;我們自己的技術(shù)是否有需要分享給其它測試團(tuán)隊,甚至是整個軟件團(tuán)隊入桂,以幫助他們更好地完成工作奄薇。總之抗愁,我們應(yīng)該思考如何更有效馁蒂、更合理地利用接口測試團(tuán)隊的資源,來提高整個測試團(tuán)隊的業(yè)績蜘腌,這不僅會擴(kuò)大接口測試團(tuán)隊本身的影響力沫屡,還讓接口測試團(tuán)隊成為整個部門的核心競爭力,同時它還能創(chuàng)造了一個共贏的局面撮珠。
(4)另一方面谁鳍,在工作的流程上,各個測試角色是可以互補(bǔ)的劫瞳,接口測試的設(shè)計、測試用例可以跟功能和性能測試共享绷柒,接口測試的報告可以作為功能測試的重要參考志于,讓其了解底層都經(jīng)歷了哪些測試,哪里是 bug 的密集區(qū)废睦,哪里相對安全一些伺绽。在功能測試工程師找到 bug 之后, 接口測試工程師可以用代碼直接覆蓋這個 bug 產(chǎn)生的代碼嗜湃,使這個 bug 永遠(yuǎn)不會出現(xiàn)第二次奈应。 接口測試人員還可以直接繞過頁面,對底層系統(tǒng)進(jìn)行性能和壓力的測試购披,在測試過程中各個角色之間的密切配合杖挣,也減少了測試的成本,提供系統(tǒng)全方位的質(zhì)量保障刚陡。
三惩妇、接口測試的工具
接口測試的工具:apipost、jmeter
apipost是國產(chǎn)的主要針對的接口測試和接口文檔生成的工具
jmeter怎是一個很好的性能測試工具筐乳,主要針對性能測試中的壓力測試等