接口自動化測試很難?帶你從0到1入門接口自動化測試【0基礎(chǔ)也能看懂系列】

前 言

“接口測試”一個讓人覺得非常高端的名詞银室,特別是對于剛?cè)腴T的測試同學(xué)而言。隨著測試技術(shù)不斷的深化,“接口測試”出現(xiàn)在我們視野中的頻次越來越高蜈敢。那么接口測試到底是如何做的辜荠?接口測試的優(yōu)勢又體現(xiàn)在哪些方面?

目錄

前 言

接口

一抓狭、什么是接口伯病?

二、接口的常見類型

三否过、前后端區(qū)別

接口測試

一午笛、什么是接口測試

二、接口的組成

三苗桂、為什么要做接口測試

四药磺、接口測試與UI測試優(yōu)劣對比

五、接口測試流程

學(xué)習(xí)資源分享

接口

一煤伟、什么是接口癌佩?

接口:外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個子系統(tǒng)之間的交互點

-----百度百科

接口一般分為兩種:程序內(nèi)部接口、系統(tǒng)對外接口便锨。

1围辙、系統(tǒng)對外接口:例如最常見的系統(tǒng)對外接口—支付寶支付接口,很多app的支付功能都是調(diào)用支付寶的支付接口來進行支付放案,而該接口是支付寶系統(tǒng)提供給外部系統(tǒng)進行調(diào)用的

2姚建、程序內(nèi)部接口:模塊與模塊之間的交互,比如淘寶商城要購買商品吱殉,下訂單前必須要先登錄桥胞,那么下訂單與登錄之間就是一個交互,這個交互就是一個接口考婴,讓程序內(nèi)部的其他模塊進行調(diào)用的贩虾。

另外程序內(nèi)部方法直接的接口調(diào)用。比如電商平臺的前臺和后臺之間接口調(diào)用沥阱,前臺開發(fā)人員用HTML或CSS或JS等技術(shù)缎罢,后臺開發(fā)人員用JAVA,PYTHON等語言,若用戶從前臺輸入數(shù)據(jù)考杉,怎樣將數(shù)據(jù)傳到后臺呢策精?主要是通過http協(xié)議的get或post請求來實現(xiàn)前后端的數(shù)據(jù)傳遞,這些都是接口測試的一部分崇棠。

二咽袜、接口的常見類型

webService接口:soap協(xié)議通過http傳輸,請求報文和返回報文都是xml格式的枕稀。測試時需要通過工具才能進行調(diào)用询刹、測試谜嫉。少數(shù)公司還在使用這種接口,如醫(yī)院等行業(yè)凹联。

http api接口:http協(xié)議沐兰,通過路徑來區(qū)分調(diào)用的方法,請求和報文都是key-value形式的蔽挠,返回報文一般都是json串住闯,有g(shù)et和post等方法。目前來講澳淑,是最常用的比原。如RESTful基于http協(xié)議的接口。

dubbo接口:?rpc協(xié)議杠巡,使用rpc協(xié)議進行遠程調(diào)用量窘,直接使用socket通信。傳輸效率高忽孽,并且可以統(tǒng)計出系統(tǒng)之間的調(diào)用關(guān)系绑改、調(diào)用次數(shù)谢床。使用Java語言開發(fā)兄一,只能用于Java語言開發(fā)的項目間的通信,不具備跨語言识腿,跨平臺的特點出革!

硬件接口:USB 、充電接口(此處不做討論)

三渡讼、前后端區(qū)別

做接口測試前骂束,需要對兩個概念有所了解,前端和后端

前端:通常為Web前端和app前端成箫,前端的作用是為了展示數(shù)據(jù)內(nèi)容展箱,做簡單的數(shù)據(jù)校驗比如我們看到的淘寶商城蹬昌,那些商品信息混驰,圖片展示等等。

后端:進行復(fù)雜計算的業(yè)務(wù)邏輯皂贩,功能實現(xiàn)栖榨,例如我們購買商品后的價格計算,優(yōu)惠活動的使用明刷,最終的支付婴栽,都是通過后端實現(xiàn)的,而前后端就是通過接口來進行交互的辈末。

接口調(diào)用示意圖:

說明:輸入條件也就是入?yún)笪挠拚?jīng)過接口程序處理之后映皆,得到結(jié)果輸出,也就是出參報文准脂。

接口測試

一劫扒、什么是接口測試

系統(tǒng)組件間接口測試。主要是檢測外部系統(tǒng)與系統(tǒng)之間狸膏,以及內(nèi)部各個子系統(tǒng)之間的交互點沟饥,檢查數(shù)據(jù)的交換,傳遞湾戳,和控制管理過程贤旷,以及系統(tǒng)間的相互邏輯依賴關(guān)系,適用于為其他系統(tǒng)提供服務(wù)的底層框架系統(tǒng)和中心服務(wù)系統(tǒng)砾脑,主要測試這些系統(tǒng)對外部系統(tǒng)提供的接口幼驶,驗證其正確性與穩(wěn)定性。

-----百度百科

關(guān)于接口測試的說法:

1韧衣、接口測試即功能測試盅藻,是通過測試不同輸入條件下,接口返回的結(jié)果是否與預(yù)期結(jié)果一致畅铭。

2氏淑、接口是用來連接客戶端和服務(wù)端的,一般接口返回的數(shù)據(jù)都是json格式硕噩。

3假残、接口測試實質(zhì)是數(shù)據(jù)測試,對數(shù)據(jù)庫的各種操作(增炉擅,刪辉懒,改,查)谍失。

4眶俩、接口測試其實是一個非常簡單的過程,將接口的業(yè)務(wù)邏輯處理看成黑盒測試中的黑盒子快鱼,我們只需要考慮各種輸入條件下颠印,會產(chǎn)生相應(yīng)的什么結(jié)果。

接口測試是黑盒測試攒巍,但黑盒測試不一定只是接口測試嗽仪。

我們知道黑盒測試又稱功能測試,那么接口測試與功能測試是不是一回事呢柒莉?答案是否定的闻坚,為什么呢?

功能測試還包含了程序的UI層兢孝,包含了按鈕窿凤,UI交互等功能仅偎,而接口測試是沒有頁面操作的,只能通過調(diào)用接口來進行測試雳殊,只需要給接口傳遞相應(yīng)的輸入條件橘沥,再檢查接口輸出的結(jié)果是否符合預(yù)期即可。某種程度講夯秃,接口測試比功能測試還要更簡單一些座咆。

二、接口的組成

接口說明文檔

接口url

請求方法:post或get

請求參數(shù)仓洼、參數(shù)類型介陶、請求參數(shù)說明

返回參數(shù)說明

由接口文檔可知,接口至少應(yīng)有請求地址色建、請求方法哺呜、請求參數(shù)(入?yún)⒑统鰠ⅲ┙M成,部分接口有請求頭header箕戳,cookie某残。

標(biāo)頭 (header):是服務(wù)器以HTTP協(xié)議傳HTML資料到瀏覽器前所送出的字串,在標(biāo)頭與 HTML 文件之間尚需空一行分隔陵吸,一般存放cookie玻墅、token等信息

那么,header和入?yún)⒂惺裁搓P(guān)系走越?它們不都是發(fā)送到服務(wù)器的參數(shù)嗎椭豫?

首先耻瑟,它們確實都是發(fā)送到服務(wù)器里的參數(shù)旨指,但它們是有區(qū)別的,header里存放的參數(shù)一般存放的是一些校驗信息喳整,比如cookie谆构,它是為了校驗這個請求是否有權(quán)限請求服務(wù)器,如果有框都,它才能請求服務(wù)器搬素,然后把請求地址連同入?yún)⒁黄鸢l(fā)送到服務(wù)器,然后服務(wù)器會根據(jù)地址和入?yún)矸祷爻鰠⑽罕!R簿褪钦f熬尺,服務(wù)器是先接受header信息進行判斷該請求是否有權(quán)限請求,判斷有權(quán)限后谓罗,才會接受請求地址和入?yún)⒌摹?/p>

三粱哼、為什么要做接口測試

通過圖我們知道,程序的前端(UI層)是用來展示數(shù)據(jù)以及簡單的數(shù)據(jù)檢驗的檩咱,而真正的業(yè)務(wù)邏輯核心是后端揭措。

在傳統(tǒng)的功能測試中胯舷,如果前端工程師還沒有將前端工作做完,我們測試是無法展開測試工作的绊含,另一方面桑嘶,既然前端有校驗功能,那后端就有可能會遺漏該功能的數(shù)據(jù)校驗躬充,如果用戶通過抓包繞過前端逃顶,直接進行后端操作,我們的程序就可能出現(xiàn)重大問題充甚。

所以進行接口測試主要是因為:

盡早的測試介入口蝠,越早介入測試,發(fā)現(xiàn)的問題解決起來的成本是最低的津坑。很多時候開發(fā)沒有將完整產(chǎn)品提交給測試時妙蔗,測試時無法工作的,就會有大部分時間處于等待狀態(tài)疆瑰,而接口測試可以在沒有前端界面下進行測試

后端的功能校驗在前端很難進行測試眉反,因為前端已經(jīng)有初步校驗控制,所以接口測試可以發(fā)現(xiàn)很多在前端無法發(fā)現(xiàn)的問題

提升測試效率穆役,降低人工回歸測試的人力成本與時間成本寸五,縮短測試周期

四、接口測試與UI測試優(yōu)劣對比


接口測試的介入時間更早耿币,越早介入價值越高梳杏。

接口測試的穩(wěn)定性更高,變動少淹接。接口測試通過十性,前端即時出現(xiàn)問題,解決起來也會非乘艿浚快

接口測試發(fā)現(xiàn)缺陷后采记,解決的成本更低探入。越底層的缺陷,影響的面就越廣,一個底層缺陷可能引起N個表面的缺陷耽梅,那時候解決起來就會非常麻煩橡羞,而且還不一定能找到源頭缺陷

定位問題更加準(zhǔn)確和快速刻帚。當(dāng)我們接口測試通過后砖顷,在功能測試中出現(xiàn)問題,我們就可以更快速和準(zhǔn)確的定位問題巷屿,因為已經(jīng)排除掉接口層的干擾了固以。

五、接口測試流程

接口測試的原理跟功能測試是一樣的攒庵,那么它的流程跟功能測試流程其實也是基本一致的嘴纺。

接口測試?不等于?接口測試工具使用

很多人認為會使用接口測試工具就是會接口測試败晴。其實接口測試遠遠不止是工具的使用,SoapUI也好栽渴,Jmeter也好尖坤,這些工具都是我們在進行接口測試過程中能夠更方便的進行測試,而工具僅僅是工具闲擦,真正核心部分還是接口測試用例設(shè)計以及測試思維慢味。那么當(dāng)我們做接口測試時,到底需要做哪些方面的工作呢墅冷?

接口測試流程:

獲取需求文檔和接口文檔

通過對需求文檔分析出接口的業(yè)務(wù)邏輯要求以及業(yè)務(wù)邊界

通過對接口文檔分析出接口的技術(shù)指標(biāo)(接口地址纯路、請求方式、入?yún)⒛蕖⒊鰠ⅲ?/p>

接口測試用例設(shè)計(著重于接口測試數(shù)據(jù)準(zhǔn)備)

使用接口測試工具進行接口測試

接口缺陷管理與跟蹤

接口自動化持續(xù)集成

接口測試常用工具:

接口測試的工具很多驰唬,比如 postman、jmeter腔彰、loadrunner叫编、SoapUI等,比較常見的是postman和jmeter霹抛。

簡介下postman和jmeter:

1搓逾、Postman是谷歌的一款接口測試插件,它使用簡單杯拐,支持用例管理霞篡,支持get/post、文件上傳端逼、響應(yīng)驗證朗兵、變量管理、環(huán)境參數(shù)管理等功能裳食,可以批量運行矛市,并支持用例導(dǎo)出芙沥、導(dǎo)入诲祸。

2、jmeter是一款100%純Java編寫的免費開源的工具而昨,它主要用來做性能測試救氯,相比loadrunner來說,它內(nèi)存占用小歌憨,免費開源着憨,輕巧方便、無需安裝务嫡,越來越被大眾所喜愛甲抖。

接口測試怎么做:

通用接口用例設(shè)計

1漆改、通過性驗證:

首先肯定要保證這個接口功能是好使的,也就是正常的通過性測試准谚,按照接口文檔上的參數(shù)挫剑,正常傳入,是否可以返回正確的結(jié)果柱衔。

2樊破、參數(shù)組合:

現(xiàn)在有一個操作商品的接口,有個字段type唆铐,傳1的時候代表修改商品哲戚,商品id、商品名稱艾岂、價格有一個是必傳的顺少,type傳2的時候是刪除商品,商品id  是必傳的王浴,這樣的祈纯,就要測參數(shù)組合了,type傳1的時候叼耙,只傳商品名稱能不能修改成功腕窥,id、名稱筛婉、價格都傳的時候能不能修改成功簇爆。

3、接口安全:

繞過驗證爽撒,比如說購買了一個商品入蛆,它的價格是300元,那我在提交訂單時候硕勿,我把這個商品的價格改成3元哨毁,后端有沒有做驗證,更狠點源武,我把錢改成-3扼褪,是不是我的余額還要增加?

繞過身份授權(quán)粱栖,比如說修改商品信息接口话浇,那必須得是賣家才能修改,那我傳一個普通用戶闹究,能不能修改成功幔崖,我傳一個其他的賣家能不能修改成功

參數(shù)是否加密,比如說我登陸的接口,用戶名和密碼是不是加密赏寇,如果不加密的話吉嫩,別人攔截到你的請求,就能獲取到你的信息了嗅定,加密規(guī)則是否容易破解率挣。

密碼安全規(guī)則,密碼的復(fù)雜程度校驗

4露戒、異常驗證:

所謂異常驗證椒功,也就是我不按照你接口文檔上的要求輸入?yún)?shù),來驗證接口對異常情況的校驗智什。比如說必填的參數(shù)不填动漾,輸入整數(shù)類型的,傳入字符串類型荠锭,長度是10的旱眯,傳11,總之就是你說怎么來证九,我就不怎么來删豺,其實也就這三種,必傳非必傳愧怜、參數(shù)類型呀页、入?yún)㈤L度。

根據(jù)業(yè)務(wù)邏輯來設(shè)計用例

根據(jù)業(yè)務(wù)邏輯來設(shè)計的話拥坛,就是根據(jù)自己系統(tǒng)的業(yè)務(wù)來設(shè)計用例蓬蝶,這個每個公司的業(yè)務(wù)不一樣,就得具體的看自己公司的業(yè)務(wù)了猜惋,其實這也和功能測試設(shè)計用例是一樣的丸氛。

舉個例子,拿bbs來說著摔,bbs的需求是這樣的:

1缓窜、登錄失敗5次,就需要等待15分鐘之后再登錄

2谍咆、新注冊的用戶需要過了實習(xí)期才能發(fā)帖

3禾锤、刪除帖子扣除積分

4、......

像這樣的你就要把這些測試點列出來卧波,然后再去造數(shù)據(jù)測試對應(yīng)的測試點时肿。

請求狀態(tài)碼說明

200 :2開頭的都表示這個請求發(fā)送成功,最常見的就是200港粱,就代表這個請求是ok的,服務(wù)器也返回了。

300 :3開頭的代表重定向查坪,最常見的是302寸宏,把這個請求重定向到別的地方了,

400 :400代表客戶端發(fā)送的請求有語法錯誤偿曙,401代表訪問的頁面沒有授權(quán)氮凝,403表示沒有權(quán)限訪問這個頁面,404代表沒有這個頁面

500 :5開頭的代表服務(wù)器有異常望忆,500代表服務(wù)器內(nèi)部異常罩阵,504代表服務(wù)器端超時,沒返回結(jié)果

自動化測試資源分享

最后感謝每一個認真閱讀我文章的人启摄,看著粉絲一路的上漲和關(guān)注稿壁,禮尚往來總是要有的,雖然不是什么很值錢的東西歉备,如果你用得到的話可以直接拿走

這些資料傅是,對于進階【自動化測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程蕾羊,希望也能幫助到你喧笔!凡事要趁早,特別是技術(shù)行業(yè)龟再,一定要提升技術(shù)功底书闸。希望對大家有所幫助…….

關(guān)注我的微信公眾號:【程序員小濠】即可獲取這份資料了!

如果你不想再體驗一次自學(xué)時找不到資料利凑,沒人解答問題梗劫,堅持幾天便放棄的感受的話,可以加入我們的群:779450660 大家一起討論交流截碴,里面也有各種軟件測試資料和技術(shù)交流梳侨。

如果對你有幫助的話,點個贊收個藏日丹,給作者一個鼓勵走哺。也方便你下次能夠快速查找。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哲虾,一起剝皮案震驚了整個濱河市丙躏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌束凑,老刑警劉巖晒旅,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異汪诉,居然都是意外死亡废恋,警方通過查閱死者的電腦和手機谈秫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鱼鼓,“玉大人拟烫,你說我怎么就攤上這事∑荆” “怎么了硕淑?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嘉赎。 經(jīng)常有香客問我置媳,道長,這世上最難降的妖魔是什么公条? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任拇囊,我火速辦了婚禮,結(jié)果婚禮上赃份,老公的妹妹穿的比我還像新娘寂拆。我一直安慰自己,他們只是感情好抓韩,可當(dāng)我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布纠永。 她就那樣靜靜地躺著,像睡著了一般谒拴。 火紅的嫁衣襯著肌膚如雪尝江。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天英上,我揣著相機與錄音炭序,去河邊找鬼。 笑死苍日,一個胖子當(dāng)著我的面吹牛惭聂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播相恃,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼辜纲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了拦耐?” 一聲冷哼從身側(cè)響起耕腾,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎杀糯,沒想到半個月后扫俺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡固翰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年狼纬,在試婚紗的時候發(fā)現(xiàn)自己被綠了羹呵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡畸颅,死狀恐怖担巩,靈堂內(nèi)的尸體忽然破棺而出方援,到底是詐尸還是另有隱情没炒,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布犯戏,位于F島的核電站送火,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏先匪。R本人自食惡果不足惜种吸,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望呀非。 院中可真熱鬧坚俗,春花似錦、人聲如沸岸裙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽降允。三九已至恩闻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剧董,已是汗流浹背幢尚。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留翅楼,地道東北人尉剩。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像毅臊,于是被迫代替她去往敵國和親理茎。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容