服務(wù)端測(cè)試之接口測(cè)試初探

本文章轉(zhuǎn)載于搜狗測(cè)試

提起服務(wù)端測(cè)試粉臊,第一反應(yīng)想到的可能就是http協(xié)議、socket連接驶兜、post/get發(fā)送請(qǐng)求等等扼仲≡洞纾回想起小編當(dāng)時(shí)初次接觸服務(wù)端測(cè)試,真可謂一臉懵逼屠凶,不知道要干什么也不知道從哪兒開始做驰后。服務(wù)端測(cè)試往往呈現(xiàn)給大家的是一個(gè)很大很寬泛的任務(wù),我們知道要做服務(wù)端測(cè)試但卻不知道怎么做矗愧,流程是啥灶芝,用什么工具去做,要達(dá)到什么樣的效果唉韭。今天小編就結(jié)合最近自己做的一些服務(wù)端測(cè)試的任務(wù)监署,和大家聊聊服務(wù)端測(cè)試中的一個(gè)常見方法——接口測(cè)試。

一纽哥、什么是接口測(cè)試

先來看看接口測(cè)試的定義:

接口測(cè)試是測(cè)試系統(tǒng)組件間接口的一種測(cè)試。接口測(cè)試主要用于檢測(cè)外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個(gè)子系統(tǒng)之間的交互點(diǎn)栖秕。測(cè)試的重點(diǎn)是要檢查數(shù)據(jù)的交換春塌,傳遞和控制管理過程,以及系統(tǒng)間的相互邏輯依賴關(guān)系等簇捍。

如今的軟件系統(tǒng)通常采用前后端分離的模式進(jìn)行設(shè)計(jì)與實(shí)現(xiàn)只壳,即一個(gè)系統(tǒng)分為前端(客戶端)和后端(服務(wù)端)兩部分。通常服務(wù)端以接口的形式給客戶端提供服務(wù)暑塑,實(shí)際上接口和客戶端的功能之間是關(guān)聯(lián)的:每個(gè)接口都對(duì)應(yīng)著客戶端一個(gè)或多個(gè)功能點(diǎn)吼句;而客戶端同服務(wù)端的交互,一般也是以接口作為基礎(chǔ)事格,客戶端根據(jù)不同的需要請(qǐng)求不同的接口惕艳,服務(wù)端根據(jù)客戶端請(qǐng)求的接口及攜帶的參數(shù)進(jìn)行邏輯處理。因此服務(wù)端測(cè)試可以先從接口測(cè)試入手驹愚,保證其對(duì)客戶端提供的服務(wù)沒有問題后再進(jìn)行更加深入的業(yè)務(wù)邏輯測(cè)試远搪,這也是目前我們做服務(wù)端測(cè)試的一個(gè)“套路”。

定義中說的接口包括兩種:系統(tǒng)與系統(tǒng)之間的接口逢捺,內(nèi)部各個(gè)子系統(tǒng)之間的交互點(diǎn)谁鳍。根據(jù)不同的劃分會(huì)有不同的結(jié)果:如果我們把一個(gè)系統(tǒng)的客戶端和服務(wù)器看成一個(gè)整體,那么此時(shí)服務(wù)端的接口相當(dāng)于是內(nèi)部子系統(tǒng)之間的交互點(diǎn)劫瞳;如果我們把客戶端和服務(wù)端各自看成是一個(gè)整體倘潜,那么接口就相當(dāng)于是不同系統(tǒng)之間的交互點(diǎn)了。

二志于、接口測(cè)試常用工具

說到接口測(cè)試涮因,最常見的一種測(cè)試方式就是檢查服務(wù)端返回的數(shù)據(jù)正確性了。實(shí)際項(xiàng)目中恨憎,服務(wù)端在收到客戶端的請(qǐng)求之后蕊退,對(duì)請(qǐng)求進(jìn)行處理并將處理的結(jié)果返回給客戶端郊楣,這種結(jié)果比較常見的是Json、XML等數(shù)據(jù)格式瓤荔,所以測(cè)試的時(shí)候一個(gè)主要工作就是檢查這些數(shù)據(jù)的正確性净蚤。比如,服務(wù)端以Json的格式返回客戶端需要的數(shù)據(jù)输硝,那么在測(cè)試中我們就需要關(guān)注返回的Json中是否包含我們期望的字段今瀑、字段的內(nèi)容是否正確等等。這個(gè)時(shí)候自動(dòng)化腳本就顯得非常重要了点把。

小編在測(cè)試過程中發(fā)現(xiàn)好多接口都是以Json格式返回?cái)?shù)據(jù)的橘荠,在實(shí)際執(zhí)行中,我們用到了Python的一個(gè)開源框架Requests,該框架保留了所有urllib2的優(yōu)點(diǎn)郎逃,比起urllib2更加簡(jiǎn)潔明了哥童,更像是純粹的“Python”,該框架在平時(shí)接口測(cè)試中幾乎所有的自動(dòng)化腳本中都在使用褒翰,關(guān)于該框架贮懈,小編之前在一次公開課中做過一次分享,有興趣的話大家可以關(guān)注搜狗測(cè)試粉絲群(459645679)進(jìn)行查看哦优训。

還有一些工具在實(shí)際的操作中用的比較多朵你,比如Postman。Postman是谷歌Chrome的一個(gè)插件揣非,使用起來非常簡(jiǎn)單抡医,可以支持我們以get/post等各種方式發(fā)送請(qǐng)求,當(dāng)然也可以自己構(gòu)造請(qǐng)求早敬,服務(wù)器返回的數(shù)據(jù)會(huì)全部展示出來忌傻,便于檢查,這和Fiddler比較相似搁嗓。此外Postman還支持用戶自行構(gòu)造環(huán)境芯勘,設(shè)置檢查點(diǎn)等,不考慮時(shí)間的情況下基本能滿足接口數(shù)據(jù)驗(yàn)證的需求腺逛。關(guān)于Postman的安裝和使用教程荷愕,網(wǎng)上資源比較多,此處就不再贅述了棍矛。

接口測(cè)試的工具和自動(dòng)化框架可謂非常多安疗,除了上面羅列的之外,還有許多實(shí)踐中比較常用的:urllib/urllib2够委,Jmeter等等荐类,關(guān)于各種工具的使用和優(yōu)缺點(diǎn),小編會(huì)在后續(xù)的文章中結(jié)合自己項(xiàng)目的使用情況和大家進(jìn)行分享茁帽。

三玉罐、接口測(cè)試的用例設(shè)計(jì)

不同于功能測(cè)試屈嗤,接口測(cè)試的用例設(shè)計(jì)出了要驗(yàn)證正常功能之外,還需要考慮其他的一些情況吊输,總結(jié)起來饶号,接口測(cè)試的用例設(shè)計(jì)可以從以下幾個(gè)方面入手:

1.功能用例設(shè)計(jì)

服務(wù)端的接口與客戶端的功能是對(duì)應(yīng)的,那么這個(gè)接口是否能提供給客戶端某個(gè)特定功能所需要的數(shù)據(jù)自然是我們需要驗(yàn)證的地方季蚂,功能性用例的主要目的是幫助我們驗(yàn)證該接口最初設(shè)計(jì)的功能是否被實(shí)現(xiàn)以及該功能是否按照規(guī)定的接口文檔進(jìn)行實(shí)現(xiàn)等等茫船。

2.業(yè)務(wù)邏輯用例設(shè)計(jì)

業(yè)務(wù)邏輯方面的測(cè)試用例主要是針對(duì)服務(wù)端接口的處理邏輯進(jìn)行的用例設(shè)計(jì),這種用例設(shè)計(jì)不是針對(duì)某個(gè)功能點(diǎn)是否實(shí)現(xiàn)扭屁,而是對(duì)接口的處理邏輯以及一些相互依賴的業(yè)務(wù)進(jìn)行驗(yàn)證算谈,通常依照接口的邏輯流程圖來進(jìn)行。舉一個(gè)例子料滥,購(gòu)物系統(tǒng)中的兩個(gè)動(dòng)作:登錄和下單操作然眼,這兩個(gè)業(yè)務(wù)是相互依賴的,下單操作必須在登錄完成后(登錄狀態(tài)下)葵腹,否則無法完成下單罪治,這個(gè)時(shí)候我們就可以設(shè)計(jì)這樣一條case:沒有登錄的狀態(tài)下進(jìn)行下單操作,看服務(wù)端如何處理礁蔗。

3.異常處理的情況

服務(wù)端接口和客戶端之間通常是通過HTTP請(qǐng)求來傳遞數(shù)據(jù),在發(fā)送請(qǐng)求的時(shí)候雁社,客戶端會(huì)攜帶各種不同的參數(shù)浴井,此時(shí)服務(wù)端會(huì)根據(jù)不同的參數(shù)進(jìn)行不同的處理,所以異常處理主要是針對(duì)請(qǐng)求中的參數(shù)情況:比如參數(shù)增加和缺省霉撵、參數(shù)的數(shù)據(jù)類型錯(cuò)誤磺浙,參數(shù)攜帶錯(cuò)誤的值、參數(shù)為空等等徒坡,這需要我們根據(jù)接口文檔中各種不同的參數(shù)去構(gòu)造不同的參數(shù)異常撕氧,檢查服務(wù)端的響應(yīng)情況。

4.性能和安全性方面

服務(wù)器的性能往往是個(gè)非常重要的關(guān)注點(diǎn)喇完,在實(shí)際的測(cè)試中我們主要關(guān)注的是接口的QPS數(shù)值伦泥,以及CPU和內(nèi)存占用等性能指標(biāo),通常借助于其他工具比如LoadRunner進(jìn)行性能測(cè)試锦溪。安全性方面不脯,主要考慮一些常見的安全策略比如請(qǐng)求加密、sql注入等等刻诊。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末防楷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子则涯,更是在濱河造成了極大的恐慌复局,老刑警劉巖冲簿,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異亿昏,居然都是意外死亡峦剔,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門龙优,熙熙樓的掌柜王于貴愁眉苦臉地迎上來羊异,“玉大人,你說我怎么就攤上這事彤断∫安埃” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵宰衙,是天一觀的道長(zhǎng)平道。 經(jīng)常有香客問我,道長(zhǎng)供炼,這世上最難降的妖魔是什么一屋? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮袋哼,結(jié)果婚禮上冀墨,老公的妹妹穿的比我還像新娘。我一直安慰自己涛贯,他們只是感情好诽嘉,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著弟翘,像睡著了一般虫腋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上稀余,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天悦冀,我揣著相機(jī)與錄音,去河邊找鬼睛琳。 笑死盒蟆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的师骗。 我是一名探鬼主播茁影,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼丧凤!你這毒婦竟也來了募闲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤愿待,失蹤者是張志新(化名)和其女友劉穎浩螺,沒想到半個(gè)月后靴患,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡要出,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年鸳君,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片患蹂。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡或颊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出传于,到底是詐尸還是另有隱情囱挑,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布沼溜,位于F島的核電站平挑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏系草。R本人自食惡果不足惜通熄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望找都。 院中可真熱鬧唇辨,春花似錦、人聲如沸能耻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嚎京。三九已至,卻和暖如春隐解,著一層夾襖步出監(jiān)牢的瞬間鞍帝,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工煞茫, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留帕涌,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓续徽,卻偏偏與公主長(zhǎng)得像蚓曼,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子钦扭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理纫版,服務(wù)發(fā)現(xiàn),斷路器客情,智...
    卡卡羅2017閱讀 134,656評(píng)論 18 139
  • 國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報(bào)批稿:20170802 前言: 排版 ...
    庭說閱讀 10,967評(píng)論 6 13
  • 文章來自:http://blog.csdn.net/mj813/article/details/52451355 ...
    好大一只鵬閱讀 9,192評(píng)論 2 126
  • 一個(gè)多月的培訓(xùn)使我收獲頗豐其弊,感謝各位老師辛苦的付出癞己,傾囊相授;感謝團(tuán)隊(duì)小伙伴的鼓勵(lì)梭伐,永不言退痹雅,咱們是最好...
    小娜change閱讀 236評(píng)論 0 0