題外話
挺久沒更新了稳懒,最近終于擠時(shí)間弄出來了后面要分享的文章大綱及開篇,前面分享的文章大部分是從UI自動(dòng)化測(cè)試和開發(fā)的角度,后續(xù)將開始接口自動(dòng)化測(cè)試相關(guān)專題嘴瓤,會(huì)從基礎(chǔ)到提升逐步展開扫外。整個(gè)接口自動(dòng)化測(cè)試的文章框架大概是這樣的:
1、接口自動(dòng)化測(cè)試(一):關(guān)于接口
2廓脆、接口自動(dòng)化測(cè)試(二):關(guān)于HTTP協(xié)議
3筛谚、接口自動(dòng)化測(cè)試(三):關(guān)于URL
4、接口自動(dòng)化測(cè)試(四):Helloworld入門
5停忿、接口自動(dòng)化測(cè)試(五):Http框架搭建
6驾讲、接口自動(dòng)化測(cè)試(六):數(shù)據(jù)驗(yàn)證專項(xiàng)
7、接口自動(dòng)化測(cè)試(七):測(cè)試用例管理
8席赂、接口自動(dòng)化測(cè)試(八):日志與報(bào)告
9吮铭、接口自動(dòng)化測(cè)試(九):任務(wù)調(diào)度
10、接口自動(dòng)化測(cè)試(十):平臺(tái)化
可是前面分享的UI自動(dòng)化測(cè)試方案那塊的教訓(xùn)告訴我颅停,我這一整塊分享出來谓晌,估計(jì)是給很多培訓(xùn)機(jī)構(gòu)做嫁衣了,人家照搬你的內(nèi)容做培訓(xùn)癞揉,搞得我還是copy他們的一樣纸肉,所以接口自動(dòng)化測(cè)試這塊的分享,我打算前面大半基礎(chǔ)部分共享出來喊熟,后面優(yōu)化及平臺(tái)化部分暫時(shí)不共享毁靶,采用入群集中練習(xí)的方式,畢竟平臺(tái)化那塊代碼實(shí)踐較多逊移,以練習(xí)的方式更好開展(具體要不要設(shè)置門檻及如何實(shí)施预吆,到對(duì)應(yīng)章節(jié)的時(shí)候再公布)。
關(guān)于接口
“接口”應(yīng)該是大家平日工作中聽到的一個(gè)高頻詞胳泉,開發(fā)童鞋經(jīng)常掛在嘴邊:“老鐵拐叉,來來來……今天程序改了個(gè)接口,幫我回歸下”扇商,又或者有時(shí)候需要制造數(shù)據(jù)不想通過UI界面來操作凤瘦,開發(fā)童鞋又來給你支招了:“在瀏覽器調(diào)下我這個(gè)接口,就產(chǎn)生數(shù)據(jù)了”……這里的接口到底表示的是什么含義呢案铺?今天的主題就是圍繞著什么是接口來展開蔬芥。
1、接口的定義
我們這里說的接口控汉,只考慮軟件領(lǐng)域笔诵,那么就是應(yīng)用程序接口,借用維基百科的解釋:
應(yīng)用程序接口 (A**pplication Programming Interface 簡(jiǎn)稱:API)為:“‘電腦操作系統(tǒng)(Operating system)’或‘程序庫提供給應(yīng)用程序調(diào)用使用的代碼”姑子。其主要目的是讓應(yīng)用程序開發(fā)人員得以調(diào)用一組例程功能乎婿,而無須考慮其底層的源代碼為何、或理解其內(nèi)部工作機(jī)制的細(xì)節(jié)街佑。API本身是抽象的谢翎,它僅定義了一個(gè)接口捍靠,而不涉及應(yīng)用程序在實(shí)際實(shí)現(xiàn)過程中的具體操作。
2森逮、對(duì)接口的理解
看上面的定義榨婆,好像還是不能很直觀的理解,所以我想將它具體化褒侧,用下面這個(gè)例子來解釋它:
例1: 猿A畢業(yè)后日復(fù)一日的寫代碼良风,突然有一天發(fā)現(xiàn)有些地方的代碼經(jīng)常在重復(fù)寫,于是他就想將重復(fù)的那一部分代碼提取出來封裝一下璃搜,寫一個(gè)工具類(XXXUtils.java),可是隨著對(duì)項(xiàng)目的加深鳞上,和項(xiàng)目其他成員的互動(dòng)这吻,發(fā)現(xiàn)大家都要用這個(gè)工具類,于是猿A就想到了寫一個(gè)Library篙议,將這個(gè)工具類發(fā)布到公司的maven平臺(tái)上……
例2: 猿A開發(fā)的應(yīng)用A需要猿B的應(yīng)用B提供的用戶信息來判斷用戶的行為唾糯,于是猿A找到猿B說,我的項(xiàng)目需要你們那邊給我提供用戶信息數(shù)據(jù)來判斷用戶后續(xù)行為鬼贱,你們給我提供個(gè)接口吧……
例3:一日移怯,猿A遇到了這樣的需求:需要在應(yīng)用中集成天氣預(yù)報(bào)功能,于是他百度到了中國天氣網(wǎng)有提供這種免費(fèi)的API:http://mobile.weather.com.cn/data/sk/101010100.html(后面的數(shù)字101010100是北京的地區(qū)碼这难,所以你想知道某個(gè)城市的天氣舟误,只需要使用對(duì)應(yīng)的地區(qū)碼去請(qǐng)求即可),在瀏覽器中輸入這個(gè)url就可以獲取北京的天氣預(yù)報(bào)信息:
{"sk_info":{"date":"20131012","cityName":"北京","areaID":"101010100","temp":"21℃","tempF":"69.8℉","wd":"東風(fēng)","ws":"3級(jí)","sd":"39%","time":"15:10","sm":"暫無實(shí)況"}}
注:上述的天氣API已不更新了姻乓,這里只作為例子使用焙压。
上面這三個(gè)實(shí)例分別是從微觀到宏觀旬蟋、從私有到開放層面對(duì)接口(API)的應(yīng)用,實(shí)例1是從代碼層面的接口調(diào)用,實(shí)例2是應(yīng)用層面或系統(tǒng)層面的接口調(diào)用篱蝇,實(shí)例3是從網(wǎng)絡(luò)層面的接口調(diào)用。接口又分對(duì)內(nèi)對(duì)外滋迈,對(duì)內(nèi)的接口一般在應(yīng)用罪郊、系統(tǒng)或項(xiàng)目?jī)?nèi)部之間使用,對(duì)外的接口我們又稱之為開放式API扣囊,大多是以URL地址的方式供大家請(qǐng)求乎折,返回對(duì)應(yīng)的數(shù)據(jù)。
總結(jié)
如果看上面給的這些例子和圖侵歇,你還沒理解什么是接口笆檀,那么我就給你一句通俗易懂的話:接口其實(shí)就是一個(gè)可以傳值和取值的數(shù)據(jù)傳輸通道。應(yīng)用內(nèi)代碼級(jí)別的方法調(diào)用盒至、應(yīng)用或系統(tǒng)間的遠(yuǎn)程過程調(diào)用(RPC)酗洒、網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)鹊冗@些都是對(duì)接口的直接或間接應(yīng)用……如果這樣說還是沒有理解士修,那么我想大家都會(huì)基本的SQL查詢吧,輸入一個(gè)SQL查詢語句就可以返回對(duì)應(yīng)的數(shù)據(jù)集樱衷,這其實(shí)也是接口的應(yīng)用棋嘲。
原文來自下方公眾號(hào),轉(zhuǎn)載請(qǐng)聯(lián)系作者矩桂,并務(wù)必保留出處沸移。
想第一時(shí)間看到更多原創(chuàng)技術(shù)好文和資料,請(qǐng)關(guān)注公眾號(hào):測(cè)試開發(fā)棧