软件接口测试是什么?怎么测?
軟件測(cè)試是一條超級(jí)長(zhǎng)的跑道,最好分階段來(lái)跑:先入行,后精通。網(wǎng)上能看到很多軟件測(cè)試的帖子,但能夠準(zhǔn)確分類詳細(xì)介紹的并不多。正好最近有時(shí)間,就把我所了解的軟件測(cè)試做一個(gè)小小總結(jié),對(duì)你有幫助的話,記得點(diǎn)贊、收藏、關(guān)注偶~
一、軟件測(cè)試分類
在招聘網(wǎng)站上能夠看到很多軟件測(cè)試的崗位,但大部分崗位的名稱都是非常籠統(tǒng)的軟件測(cè)試,到底是做功能測(cè)試的,還是做接口測(cè)試的,還是做性能測(cè)試的,并不十分明晰。有些招聘明明在崗位描述里寫的是功能手工測(cè)試,面試的時(shí)候希望用7k的工資招聘一個(gè)資深測(cè)試開發(fā)人員,逗兒呢?
不吐槽了,先做一點(diǎn)介紹吧。軟件測(cè)試想必不用我做介紹了,就是通過(guò)一系列的手段和方法,通過(guò)或手工或工具來(lái)測(cè)試軟件里的錯(cuò)誤(bug),要有“雞蛋里挑骨頭”的勇氣和細(xì)心。當(dāng)然不能亂挑刺。
根據(jù)測(cè)試階段,可以將軟件測(cè)試分為單元測(cè)試(UT)、集成測(cè)試(IT)、系統(tǒng)測(cè)試(SY)、驗(yàn)收測(cè)試(UAT,又可以分為alpha、beta、gamma測(cè)試)等。這種分類方法必須知道并且其中涉及的點(diǎn)是需要記憶的。
根據(jù)是否自動(dòng)化,可以將軟件測(cè)試分為人工測(cè)試和自動(dòng)化測(cè)試。像我們?cè)谡衅妇W(wǎng)站里看到的自動(dòng)化測(cè)試就是這里的概念,通俗來(lái)說(shuō),就是用機(jī)器來(lái)代替人工進(jìn)行測(cè)試,以提升效率。現(xiàn)在測(cè)試入行的門檻是在逐步抬高的,基本是家公司,不管招人來(lái)是干什么的,都希望候選人會(huì)自動(dòng)化測(cè)試。
根據(jù)是否要運(yùn)行程序,可以將軟件測(cè)試可以分為靜態(tài)測(cè)試和動(dòng)態(tài)測(cè)試。靜態(tài)測(cè)試其實(shí)主要就是看一看文檔呀、頁(yè)面呀之類的,很重要,但是我們主要做的還是動(dòng)態(tài)測(cè)試。
根據(jù)是否要對(duì)代碼進(jìn)行測(cè)試,可以將軟件測(cè)試分為白盒測(cè)試和黑盒測(cè)試。直接對(duì)源代碼進(jìn)行測(cè)試是為白盒測(cè)試,這塊一般是直接由開發(fā)人員來(lái)測(cè)試的。不對(duì)源代碼進(jìn)行測(cè)試是為黑盒測(cè)試,又可以分為很多種類。對(duì)于測(cè)試人員來(lái)說(shuō),大部分進(jìn)行的都是黑盒測(cè)試。
而接口測(cè)試是介于黑盒與白盒測(cè)試之中的一種測(cè)試,我們理解為是灰盒測(cè)試。因?yàn)榻涌谝仁止y(cè)試(如點(diǎn)點(diǎn)點(diǎn))更提前介入,更早地發(fā)現(xiàn)程序中可能存在的bug,從而補(bǔ)救成本比較低,所以很受重視。而且就點(diǎn)點(diǎn)點(diǎn)的功能測(cè)試來(lái)說(shuō),現(xiàn)在很多公司選擇外包,這也造就了很多外包測(cè)試公司。而接口測(cè)試因?yàn)樯婕暗焦镜暮诵臉I(yè)務(wù)邏輯和數(shù)據(jù),很少有公司愿意把接口外包。
看到這里是不是感覺(jué)仍舊十分的迷惑,接口測(cè)試到底是干什么的呢?通俗點(diǎn)來(lái)說(shuō),接口測(cè)試和功能測(cè)試沒(méi)有什么太大的區(qū)別。只不過(guò)功能測(cè)試一般是要等程序上線以后,才能夠用手來(lái)點(diǎn)點(diǎn)點(diǎn)測(cè)試的。而接口測(cè)試也是測(cè)試軟件的功能,只不過(guò)是在沒(méi)有UI界面、在程序沒(méi)有上線之前就可以測(cè)試的。
二、接口測(cè)試是什么?
1、接口是什么?接口是從哪里來(lái)的?
在介紹接口測(cè)試是什么之前,讓我們先思考一個(gè)問(wèn)題:什么是接口呢?舉個(gè)現(xiàn)實(shí)點(diǎn)的例子來(lái)說(shuō),USB和電腦連接的接口就是一個(gè)接口;人與人之間交流的語(yǔ)言也是一個(gè)接口。接口的目的是為了方便人與人之間的協(xié)同,以提高工作效率的一套標(biāo)準(zhǔn)與規(guī)范。就軟件測(cè)試來(lái)說(shuō),接口就是一套前端和后端在開發(fā)過(guò)程中都需要遵循的用以數(shù)據(jù)傳輸?shù)囊?guī)范與標(biāo)準(zhǔn)。
明確了標(biāo)準(zhǔn),就可以將軟件開發(fā)的業(yè)務(wù)劃分成若干個(gè)部分,然后交由不同的專業(yè)人士去開發(fā)了。前端的歸前端,后端的歸后端。在提升效率的同時(shí),也方便了以后的迭代升級(jí)和人員流動(dòng)等場(chǎng)景需求。
好,那也就是說(shuō),所謂接口就是一套規(guī)范嗎?是的。其實(shí)有一個(gè)專業(yè)的名詞:API文檔。這個(gè)詞應(yīng)該不算是太陌生吧,不管是不是搞軟件的,基本都聽說(shuō)過(guò)它。這份文檔其實(shí)就是軟件開發(fā)過(guò)程中的一套標(biāo)準(zhǔn),它里面規(guī)定了軟件的功能,以及每個(gè)功能的標(biāo)準(zhǔn)。當(dāng)然,API文檔是由人來(lái)書寫的,它也不一定就是完美無(wú)缺的。
一般來(lái)說(shuō),API文檔是由公司里非常有經(jīng)驗(yàn)的架構(gòu)師大佬來(lái)編寫的,編寫的格式?jīng)]有通用的標(biāo)準(zhǔn)。不過(guò)有一種流行的風(fēng)格,那就是restful風(fēng)格。restful風(fēng)格是一種軟件架構(gòu)設(shè)計(jì)風(fēng)格,但是并不是一套標(biāo)準(zhǔn)。所以如果你的公司所用的不是這種風(fēng)格,也不必驚奇。
這種風(fēng)格最大的好處就是流行,便于協(xié)同,其實(shí)也不是什么很厲害的東西,就是約定了一些方法、數(shù)據(jù)格式、狀態(tài)碼等。非常的簡(jiǎn)單。
2、接口清單
有了API文檔有什么作用呢?------>找接口!前面說(shuō)了,API文檔就是軟件開發(fā)的規(guī)范和標(biāo)準(zhǔn),它里面包括了功能以及功能實(shí)現(xiàn)的標(biāo)準(zhǔn)。那么作為測(cè)試人員,就需要有能力從API文檔中將接口提煉出來(lái),形成接口清單。
提煉的方法其實(shí)也比較簡(jiǎn)單,這里還是以restful風(fēng)格的API文檔來(lái)舉例吧。根據(jù)軟件功能模塊,可以分為N個(gè)層次,每個(gè)層次里又包括了若干個(gè)功能(接口),就可以提煉出N個(gè)層次、M個(gè)獨(dú)立的接口了。
可是這樣的接口是比較亂的,我們?cè)俑鶕?jù)restful風(fēng)格中約定的get、post、put、delete四種方法進(jìn)行分類,就可以在N個(gè)層次下將M個(gè)獨(dú)立的接口歸位四類。于是,一套脫胎于API文檔的接口清單就形成了。
可是,可是,我怎么知道它是一個(gè)接口呢?這就要提到接口的三要素了:url+方法+參數(shù)+返回值。在API文檔中,能夠找到這么一套東西的,就是一個(gè)接口。
3、接口測(cè)試是什么
接口測(cè)試就是根據(jù)接口清單,模擬客戶端向服務(wù)端發(fā)送請(qǐng)求數(shù)據(jù),并獲取響應(yīng)數(shù)據(jù)后,查看響應(yīng)數(shù)據(jù)是否符合預(yù)期的過(guò)程。
整個(gè)過(guò)程可以分為三個(gè)步驟:
第一步:模擬客戶端向服務(wù)端發(fā)送請(qǐng)求;
第二步:接受服務(wù)端返回的數(shù)據(jù);
第三步:查看返回?cái)?shù)據(jù)是否符合預(yù)期。
必須要明確的一點(diǎn)是,接口測(cè)試的依據(jù)是接口清單,接口清單的依據(jù)是API文檔,API文檔的依據(jù)的項(xiàng)目需求文檔和原型圖。有了接口清單后,針對(duì)于每一個(gè)接口依次執(zhí)行上述三個(gè)步驟的過(guò)程就是接口測(cè)試。
那么是怎么執(zhí)行的呢?因?yàn)榻涌跍y(cè)試是在程序開發(fā)過(guò)程中進(jìn)行的,是沒(méi)有完整的程序的,所以測(cè)試是需要用到工具的。不僅模擬客戶端向服務(wù)端發(fā)送請(qǐng)求是需要工具的,從服務(wù)端接受數(shù)據(jù)也是需要工具的,而且有時(shí)候驗(yàn)證返回?cái)?shù)據(jù)是否符合預(yù)期也是需要用到工具的。
這就不得不提到在接口測(cè)試中常用的如fiddler之類的抓包工具、postman、Jmeter等工具了。如果再涉及到接口自動(dòng)化測(cè)試的話,還需要學(xué)習(xí)python、pytest、java等有關(guān)內(nèi)容,這里先不介紹。對(duì)于小白來(lái)說(shuō),能夠先入門是最重要的。
4、接口測(cè)試的分類有哪些?
雖然接口測(cè)試已經(jīng)是一個(gè)比較小的分類了,但是它仍舊是可以細(xì)分的。一般來(lái)說(shuō),可以分為兩種:
web接口測(cè)試------>指基于BS架構(gòu)的軟件測(cè)試
模塊接口測(cè)試------>指基于CS架構(gòu)的軟件測(cè)試
在做接口測(cè)試的過(guò)程中,主要做的是web接口測(cè)試,即基于BS架構(gòu)開發(fā)的軟件。至于說(shuō)BS和CS架構(gòu)是什么,這里就不介紹了,百度一下就可以找到很多答案了。
上面的分類方法我們知道即可,在工作中最常用的兩種接口測(cè)試,實(shí)際上是:單接口測(cè)試和關(guān)聯(lián)接口測(cè)試(多接口測(cè)試)。
顧名思義,單接口測(cè)試就是針對(duì)于接口清單里的某一個(gè)接口來(lái)進(jìn)行測(cè)試,主要針對(duì)的是某一個(gè)點(diǎn),而關(guān)聯(lián)接口測(cè)試(多接口測(cè)試)則是指針對(duì)于接口清單里的某幾個(gè)接口進(jìn)行測(cè)試,主要針對(duì)的是某一業(yè)務(wù)邏輯。
測(cè)試的點(diǎn)不同,所需要學(xué)習(xí)了解的點(diǎn)就不同。單接口測(cè)試的目的是為了測(cè)試某個(gè)接口是不是完美地實(shí)現(xiàn)了需求,那么就需要測(cè)試到各種可能出現(xiàn)的情況,所以是對(duì)某一個(gè)接口進(jìn)行大量同類用例的設(shè)計(jì),這就是常說(shuō)的數(shù)據(jù)驅(qū)動(dòng)測(cè)試。
關(guān)聯(lián)接口測(cè)試的目的是為了測(cè)試某一業(yè)務(wù)邏輯是不是能正常實(shí)現(xiàn)的,所以基本上是建立在單個(gè)功能接口正常的前提下的,即一般不會(huì)填入逆向數(shù)據(jù)。在這個(gè)過(guò)程中,難點(diǎn)在于不同接口之間的數(shù)據(jù)傳遞。
以上這兩個(gè)點(diǎn)是接口測(cè)試執(zhí)行過(guò)程的重點(diǎn),也是在學(xué)習(xí)使用postman和jmeter工具過(guò)程中的重點(diǎn)。我們以后再來(lái)介紹。
三、軟件接口測(cè)試怎么測(cè)?
前面鋪墊了這么多,這里做一個(gè)簡(jiǎn)單的小結(jié),到底應(yīng)該要怎么做接口測(cè)試呢?
第一步:根據(jù)API文檔提取接口清單;
第二步:根據(jù)接口清單,確定適用于單接口測(cè)試的接口。根據(jù)需求評(píng)審及業(yè)務(wù)邏輯,確定適用于關(guān)聯(lián)接口測(cè)試的接口類。
第三步:根據(jù)確定的單接口測(cè)試和關(guān)聯(lián)接口測(cè)試,搭建測(cè)試框架,設(shè)計(jì)測(cè)試用例。這里的重點(diǎn)是用postman或jmeter等工具搭建測(cè)試框架(重點(diǎn)是數(shù)據(jù)驅(qū)動(dòng)和參數(shù)傳遞),并根據(jù)等價(jià)類法、正交表法等方法設(shè)計(jì)合理有效的測(cè)試用例。
第四步:執(zhí)行測(cè)試用例,并驗(yàn)證結(jié)果是否符合預(yù)期。如果是bug,提交bug等。
到這里,軟件接口測(cè)試就結(jié)束了。當(dāng)然,還有一些更細(xì)節(jié)的實(shí)現(xiàn)流程沒(méi)有介紹,比如說(shuō),用例設(shè)計(jì)的方法有哪些?postman如何使用?jmeter如何使用?軟件測(cè)試的基本理論有哪些?缺陷管理工具怎么用?接口測(cè)試自動(dòng)化如何學(xué)習(xí)?等等、等等,我們之后的文章再來(lái)介紹。
下一篇文章:軟件接口測(cè)試工具Jmeter怎么使用安裝教程詳解(一)
最后感謝每一個(gè)認(rèn)真閱讀我文章的人,看著粉絲一路的上漲和關(guān)注,禮尚往來(lái)總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:?
這些資料,對(duì)于【軟件測(cè)試】的朋友來(lái)說(shuō)應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴上萬(wàn)個(gè)測(cè)試工程師們走過(guò)最艱難的路程,希望也能幫助到你!
在我的QQ技術(shù)交流群里(技術(shù)交流和資源共享,廣告勿擾)
可以自助拿走,群號(hào):310357728群里的免費(fèi)資料都是筆者十多年測(cè)試生涯的精華。還有同行大神一起交流技術(shù)哦
如果對(duì)你有一點(diǎn)點(diǎn)幫助,各位的「點(diǎn)贊」就是小編創(chuàng)作的最大動(dòng)力,我們下篇文章見(jiàn)
🌻好文推薦
在小公司“混”了2年,我只認(rèn)真做了5件事,如今順利拿到字節(jié) Offe
去了字節(jié)跳動(dòng),才知道年薪 30w 的測(cè)試工程師有這么多?
北京35歲程序員失業(yè),感嘆:編程估計(jì)沒(méi)戲了,想去賣點(diǎn)煎餅果子養(yǎng)家~?
29歲轉(zhuǎn)行軟件測(cè)試靠譜嗎?一個(gè)過(guò)來(lái)人的心路歷程送給迷茫的你
同樣是IT行業(yè),測(cè)試和開發(fā)薪資真就差這么大嗎??
?
總結(jié)
以上是生活随笔為你收集整理的软件接口测试是什么?怎么测?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sql查询涵盖的时段_涵盖的主题
- 下一篇: LHS与RHS查询(已完结)