一文搞定Java和Python在接口測試中的應(yīng)用

本文將會通過java和python編碼的方式來幫助大家實現(xiàn)接口測試悉尾。另外讀者還可以通過這篇文章了解到什么是接口測試、工作中接口測試的主要分類挫酿、接口測試優(yōu)勢构眯、接口測試的評估標(biāo)準(zhǔn)、開展接口測試的通用過程等入門接口測試必備知識點早龟。如果你想上手接口測試惫霸,她一定會幫到你!無論你的接口項目編碼使用的是java還是python葱弟,看這篇文章就夠了壹店!

接口測試必備知識點

接口測試概念

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

工作中接口測試的主要分類

1.模塊接口測試(開發(fā)人員)

模塊接口測試是單元測試的基礎(chǔ)老赤。它主要測試模塊的調(diào)用與返回。類似于JUnit或者unittest中的單元測試制市。

2.Web接口測試(測試工作重點)

web接口測試又可分為兩類:服務(wù)器接口測試和外部接口測試抬旺。

服務(wù)器接口測試:

是測試前端與服務(wù)器的接口(最常用的接口測試場景)。

外部接口測試:

這個很典型的例子就是第三方登錄祥楣,比如你做的新系統(tǒng)免于新用戶重新注冊的麻煩會提供第三方登錄开财,那用戶在登錄的時候調(diào)用的就是第三方登錄的接口汉柒,由第三方驗證用戶名和密碼并且返回給當(dāng)前系統(tǒng)。

接口測試優(yōu)勢

1.接口測試相對容易實現(xiàn)自動化持續(xù)集成责鳍,且相對UI自動化也比較穩(wěn)定

2.測試可以更早的介入

3.可以發(fā)現(xiàn)功能測試覆蓋不到的服務(wù)端問題

接口文檔

接口文檔是接口測試的依據(jù)碾褂,在接口文檔不完善的情況下不主張開展接口測試

接口文檔不管以什么形式存在,需要包含的內(nèi)容有:

a.接口名稱以及業(yè)務(wù)描述

b.接口類型(http\webservices等等)

c.輸入?yún)?shù)

? ? ? ? ? ? ? ? ?每個參數(shù)名历葛;

? ? ? ? ? ? ? ? ?每個參數(shù)類型正塌;

? ? ? ? ? ? ? ? ?每個參數(shù)業(yè)務(wù)含義;

? ? ? ? ? ? ? ? ?每個是否可空恤溶;

? ? ? ? ? ? ? ? ?每個字段長度(可選乓诽,一般需要提供,有嚴格要求的字段需特別注明)咒程;

? ? ? ? ? ? ? ? ?每個參數(shù)的單位(可選鸠天,金額類字段需注明);

d.輸出結(jié)果

? ? ? ? ? ? ? ? ? 每個參數(shù)名帐姻;

? ? ? ? ? ? ? ? ? ?每個參數(shù)類型稠集;

? ? ? ? ? ? ? ? ? ?每個參數(shù)業(yè)務(wù)含義;

接口測試介入階段

接口測試應(yīng)該在程序的開發(fā)階段就開始饥瓷,具體的時間點應(yīng)該是在后臺接口開發(fā)基本完畢之后巍杈,需要開始接口測試,在前端寫功能之前對接口進行測試扛伍,能夠在早期就把接口層的問題暴露出來筷畦,后續(xù)前端在寫功能時能夠減少很多由于接口問題導(dǎo)致返工的工作量。

接口測試評估標(biāo)準(zhǔn)

業(yè)務(wù)功能覆蓋是否完整

業(yè)務(wù)規(guī)則覆蓋是否完整(與業(yè)務(wù)相關(guān)的操作規(guī)范刺洒、管理章程鳖宾、規(guī)章制度、行業(yè)標(biāo)準(zhǔn)等)

參數(shù)驗證是否達到要求(邊界逆航、業(yè)務(wù)規(guī)則)

返回數(shù)據(jù)正確性與格式

接口異常場景覆蓋是否完整

接口覆蓋率是否達到要求

性能指標(biāo)是否滿足要求(接口的響應(yīng)時間鼎文、處理能力)

安全指標(biāo)是否滿足要求(一般接口都不會暴露在網(wǎng)上任意被調(diào)用,需要做一些限制因俐,比如鑒權(quán)或認證拇惋。)

開展接口測試的過程

確認接口文檔(接口測試依據(jù))

準(zhǔn)備數(shù)據(jù)(往往耗費很多精力)

構(gòu)建接口(根據(jù)接口文檔,使用代碼或者工具)抹剩,代碼選擇java或者python,工具選擇postman撑帖、jmeter等

校驗接口請求(根據(jù)接口文檔,使用代碼或者工具)

http接口實戰(zhàn)

接口項目介紹

使用http協(xié)議是目前最常用的接口調(diào)用方式澳眷,她的本質(zhì)是通過http請求調(diào)用后端的api胡嘿,具體過程如下圖所示:


關(guān)于http知識的詳細內(nèi)容在這里就不做詳細介紹了,作為一個tester钳踊,http請求是必會的知識點之一衷敌,請大家自己查閱學(xué)習(xí)勿侯,重點關(guān)注如下內(nèi)容:

請求方法(重點關(guān)注get和post)

請求頭參數(shù)含義

響應(yīng)頭參數(shù)含義

響應(yīng)代碼含義

我們這里重點講解如何通過java和python代碼的方式進行http接口測試,主要就兩步(比大象放冰箱里還簡單)

1.http請求構(gòu)建

2.http請求的解析

舉一個get接口請求的例子

接口描述:判斷獲取用戶的姓名和年齡是否成功

http://rap2.taobao.org:38080/app/mock/85630/getinfo

類型:get

參數(shù):name(String)必選缴罗,age(Number)必選

返回值信息說明

參數(shù)傳入正確

{

? "code": 0-10之間的數(shù)字,

? "msg": "OK"

}

參數(shù)缺失

"errMsg":"必選參數(shù)name或者age未傳值

Python方式實現(xiàn)

Python使用requests模塊進行接口測試

安裝pip install requests

核心代碼如下:

import requests

正確的調(diào)用

response=requests.get("http://rap2.taobao.org:38080/app/mock/85630/getinfo?name=kevin&age=40")

print(response.text)

輸出:

{

? "code": 10,

? "message": "ok"

}

異常調(diào)用

response=requests.get("http://rap2.taobao.org:38080/app/mock/85630/getinfo?age=25")

print(response.text)

輸出:

{"isOk":false,"errMsg":"必選參數(shù)name未傳值助琐。Required parameter name has no value."}

Java方式實現(xiàn)

使用httpclient jar包

下載地址:http://hc.apache.org/downloads.cgi

我這里使用的是4.5.12版本,把下圖的所有jar包導(dǎo)入到eclipse中面氓。


核心代碼如下:

正確的調(diào)用

importorg.apache.http.client.fluent.Request;

String rsp1=Request.Get("http://rap2.taobao.org:38080/app/mock/85630/getinfo?name=kevin&age=40")????

????????? .execute().returnContent().asString();

????????????? ? System.out.println(rsp1);

輸出:

{

?"code": 4,

?"msg": "OK"

}

異常調(diào)用

?Stringrsp2=Request.Get("http://rap2.taobao.org:38080/app/mock/85630/getinfo?age=40")????

????????????? ????????? .execute().returnContent().asString();

??????????????????????????? ? System.out.println(rsp2);

輸出:

{"isOk":false,"errMsg":"必選參數(shù)name未傳值兵钮。Required parameter name has no value."}

通過java和python對同一個接口調(diào)用的實現(xiàn),我們很容易發(fā)現(xiàn)二者的實現(xiàn)差別不大侧但,只要掌握了一門語言,使用另一門語言做接口測試也只不過是換了一種調(diào)用形式而已航罗!核心就是:

使用合適的包或者模塊

發(fā)送http請求

獲取http請求

接口測試在unittest中的應(yīng)用

在實際工作中禀横,我們利用上面的核心代碼+單元測試框架就可以完全搞定接口測試

Python unittest單元測試源碼如下:


接口測試在junit4中的應(yīng)用

Java Junit4源碼如下:

總結(jié)

接口自動化測試的本質(zhì)總結(jié)為以下兩點:

通過使用requests或者httpclient提供的api,發(fā)送接口請求

解析接口響應(yīng)判斷接口發(fā)送成功與否粥血;

大家可以看到發(fā)送接口請求的api要比ui自動化涉及的api少很多柏锄,也簡單很多,因此更適合大家進行代碼入門复亏!關(guān)于ui自動化測試大家可以關(guān)注我的另一篇文章:

一文搞定Java和Python在Selenium3中的應(yīng)用

隨著大家接口測試經(jīng)驗的不斷積累趾娃,在工作中可能還會遇到webservice、或者dubbo類型的接口缔御,其實無論對于哪種接口進行測試抬闷,其本質(zhì)和方法與我們文章中介紹的都是一致的!不同的接口會涉及使用不同的第三方j(luò)ar包或者模塊中的api來構(gòu)建接口而已耕突。個人經(jīng)驗笤成,接口測試的難點不在于技術(shù)手段,而是前期的溝通工作眷茁!想要做好接口測試的重點是接口文檔的詳盡程度以及文檔變更后及時通知的管理策略炕泳。各位同學(xué)可以在實際工作中多總結(jié)、多體會上祈、找出一條適合自己公司的接口測試開展方案培遵。真的寫了很多也非常地辛苦,原創(chuàng)不易登刺,如果文章幫到了你籽腕,歡迎轉(zhuǎn)發(fā),讓更多的朋友受益纸俭!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末节仿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子掉蔬,更是在濱河造成了極大的恐慌廊宪,老刑警劉巖矾瘾,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異箭启,居然都是意外死亡壕翩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進店門傅寡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來放妈,“玉大人,你說我怎么就攤上這事荐操∥呤悖” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵托启,是天一觀的道長宅倒。 經(jīng)常有香客問我,道長屯耸,這世上最難降的妖魔是什么拐迁? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮疗绣,結(jié)果婚禮上线召,老公的妹妹穿的比我還像新娘。我一直安慰自己多矮,他們只是感情好缓淹,可當(dāng)我...
    茶點故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著塔逃,像睡著了一般割卖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上患雏,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天鹏溯,我揣著相機與錄音,去河邊找鬼淹仑。 笑死丙挽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的匀借。 我是一名探鬼主播颜阐,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吓肋!你這毒婦竟也來了凳怨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肤舞,沒想到半個月后紫新,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡李剖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年芒率,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片篙顺。...
    茶點故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡偶芍,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出德玫,到底是詐尸還是另有隱情匪蟀,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布宰僧,位于F島的核電站材彪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏撒桨。R本人自食惡果不足惜查刻,卻給世界環(huán)境...
    茶點故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一键兜、第九天 我趴在偏房一處隱蔽的房頂上張望凤类。 院中可真熱鬧,春花似錦普气、人聲如沸谜疤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夷磕。三九已至,卻和暖如春仔沿,著一層夾襖步出監(jiān)牢的瞬間坐桩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工封锉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留绵跷,地道東北人。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓成福,卻偏偏與公主長得像碾局,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子奴艾,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,614評論 2 353

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