軟件測(cè)試行業(yè)做功能測(cè)試和接口測(cè)試的人相對(duì)比較多。在測(cè)試工作中,有高手,自然也會(huì)有小白,但有一點(diǎn)我們無(wú)法否認(rèn),就是每一個(gè)高手都是從小白開(kāi)始的,所以今天我們就來(lái)談?wù)勔淮蟛糠秩嗽谧龅慕涌跍y(cè)試,小白變高手也許你只差這一次深入了解!
一、接口測(cè)試的目的
已經(jīng)是老生常談了,我想不用我說(shuō),凡是說(shuō)到接口總會(huì)被問(wèn)及這個(gè)話題,的確,沒(méi)有目標(biāo)就沒(méi)有評(píng)定標(biāo)準(zhǔn),知道其目的也是至關(guān)重要的。
接口測(cè)試的目的通過(guò)英文翻譯呈現(xiàn)如下:
API 測(cè)試是一種作為集成測(cè)試的一部分,通過(guò)直接控制被測(cè)應(yīng)用的接口(API)來(lái)確定是否在功能、可靠性、性能和安全方面達(dá)到預(yù)期的軟件測(cè)試活動(dòng)。由于 API 都沒(méi)有 GUI 界面,API 測(cè)試都是在通訊層進(jìn)行的?,F(xiàn)在 API 測(cè)試在自動(dòng)化測(cè)試中有著很重要的地位,因?yàn)?API 一般是應(yīng)用邏輯的主要接口,同時(shí) GUI 測(cè)試在敏捷開(kāi)發(fā)和 DevOps 的快速迭代和頻繁變更中很難維護(hù)。
在進(jìn)行接口測(cè)試前,還需要了解:
1)、GET和POST請(qǐng)求:如果是get請(qǐng)求的話,直接在瀏覽器里輸入就行了,只要在瀏覽器里面直接能請(qǐng)求到的,都是get請(qǐng)求,如果是post的請(qǐng)求的話,就不行了,就得借助工具來(lái)發(fā)送。
GET請(qǐng)求和POST請(qǐng)求的區(qū)別:
1、GET使用URL或Cookie傳參。而POST將數(shù)據(jù)放在BODY中。
2、GET的URL會(huì)有長(zhǎng)度上的限制,則POST的數(shù)據(jù)則可以非常大。
3、POST比GET安全,因?yàn)閿?shù)據(jù)在地址欄上不可見(jiàn)。
4、一般get請(qǐng)求用來(lái)獲取數(shù)據(jù),post請(qǐng)求用來(lái)發(fā)送數(shù)據(jù)。
2)、http狀態(tài)碼
每發(fā)出一個(gè)http請(qǐng)求之后,都會(huì)有一個(gè)響應(yīng),http本身會(huì)有一個(gè)狀態(tài)碼,來(lái)標(biāo)示這個(gè)請(qǐng)求是否成功,常見(jiàn)的狀態(tài)碼有以下幾種:
1、200 2開(kāi)頭的都表示這個(gè)請(qǐng)求發(fā)送成功,最常見(jiàn)的就是200,就代表這個(gè)請(qǐng)求是ok的,服務(wù)器也返回了。
2、300 3開(kāi)頭的代表重定向,最常見(jiàn)的是302,把這個(gè)請(qǐng)求重定向到別的地方了,
3、400 400代表客戶端發(fā)送的請(qǐng)求有語(yǔ)法錯(cuò)誤,401代表訪問(wèn)的頁(yè)面沒(méi)有授權(quán),403表示沒(méi)有權(quán)限訪問(wèn)這個(gè)頁(yè)面,404代表沒(méi)有這個(gè)頁(yè)面
4、500 5開(kāi)頭的代表服務(wù)器有異常,500代表服務(wù)器內(nèi)部異常,504代表服務(wù)器端超時(shí),沒(méi)返回結(jié)果
3)web service的接口如何測(cè)試:
它不需要你在拼報(bào)文了,會(huì)給一個(gè)webservice的地址,或者wsdl文件,直接在soapui導(dǎo)入,就可以看到這個(gè)webservice里面的所有接口,也有報(bào)文,直接填入?yún)?shù)調(diào)用,看返回結(jié)果就可以了。
4)cookie與session的區(qū)別:
1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上。
2、cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙考慮到安全應(yīng)當(dāng)使用session。
3、session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問(wèn)增多,會(huì)比較占用你服務(wù)器的性能考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用cookie。
4、單個(gè)cookie保存的數(shù)據(jù)不能超過(guò)4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie。
5、所以個(gè)人建議:
將登錄信息等重要信息存放為session
其他信息如果需要保留,可以放在cookie中
二、接口測(cè)試怎么測(cè)
1)、通用接口用例設(shè)計(jì)
①、通過(guò)性驗(yàn)證:首先肯定要保證這個(gè)接口功能是好使的,也就是正常的通過(guò)性測(cè)試,按照接口文檔上的參數(shù),正常傳入,是否可以返回正確的結(jié)果。②、參數(shù)組合:現(xiàn)在有一個(gè)操作商品的接口,有個(gè)字段type,傳1的時(shí)候代表修改商品,商品id、商品名稱、價(jià)格有一個(gè)是必傳的,type傳2的時(shí)候是刪除商品,商品id 是必傳的,這樣的,就要測(cè)參數(shù)組合了,type傳1的時(shí)候,只傳商品名稱能不能修改成功,id、名稱、價(jià)格都傳的時(shí)候能不能修改成功。
③、接口安全:
1、繞過(guò)驗(yàn)證,比如說(shuō)購(gòu)買了一個(gè)商品,它的價(jià)格是300元,那我在提交訂單時(shí)候,我把這個(gè)商品的價(jià)格改成3元,后端有沒(méi)有做驗(yàn)證,更狠點(diǎn),我把錢改成-3,是不是我的余額還要增加?
2、繞過(guò)身份授權(quán),比如說(shuō)修改商品信息接口,那必須得是賣家才能修改,那我傳一個(gè)普通用戶,能不能修改成功,我傳一個(gè)其他的賣家能不能修改成功
3、參數(shù)是否加密,比如說(shuō)我登陸的接口,用戶名和密碼是不是加密,如果不加密的話,別人攔截到你的請(qǐng)求,就能獲取到你的信息了,加密規(guī)則是否容易破解。
4、密碼安全規(guī)則,密碼的復(fù)雜程度校驗(yàn)
5、異常驗(yàn)證:
所謂異常驗(yàn)證,也就是我不按照你接口文檔上的要求輸入?yún)?shù),來(lái)驗(yàn)證接口對(duì)異常情況的校驗(yàn)。
2)、根據(jù)業(yè)務(wù)邏輯來(lái)設(shè)計(jì)用例
根據(jù)業(yè)務(wù)邏輯來(lái)設(shè)計(jì)的話,就是根據(jù)自己系統(tǒng)的業(yè)務(wù)來(lái)設(shè)計(jì)用例,這個(gè)每個(gè)公司的業(yè)務(wù)不一樣,就得具體的看自己公司的業(yè)務(wù)了,其實(shí)這也和功能測(cè)試設(shè)計(jì)用例是一樣的。列出測(cè)試點(diǎn),然后再去造數(shù)據(jù)測(cè)試對(duì)應(yīng)的測(cè)試點(diǎn)。
三、用什么工具測(cè)
接口測(cè)試的工具很多,比如 postman、RESTClient、jmeter、loadrunner、SoapUI等,這里主要說(shuō)下最近看到的一些接口測(cè)試工具方面的帖子,簡(jiǎn)單匯總一下他們的實(shí)現(xiàn)方式:
?
?
?
本人首推的測(cè)試工具是postman和jmeter,接下來(lái)就簡(jiǎn)單介紹下如何使用這兩款工具進(jìn)行接口測(cè)試,其他工具本次暫不介紹。
1.創(chuàng)建接口用例集(沒(méi)區(qū)別)
Postman是Collections,Jmeter是線程組,沒(méi)什么區(qū)別。
2.步驟的實(shí)現(xiàn)(有區(qū)別)
Postman和jmeter都是創(chuàng)建http請(qǐng)求
區(qū)別1:postman請(qǐng)求的請(qǐng)求URL是一個(gè)整體,jmeter分成了4個(gè)部分(協(xié)議、主機(jī)、端口、路徑)
區(qū)別2:postman可以在請(qǐng)求中直接填寫請(qǐng)求頭信息, ?jmeter需要通過(guò)添加http請(qǐng)求頭管理器添加請(qǐng)求頭
區(qū)別3:對(duì)于cookie,postman可以對(duì)cookie做管理,但是jmeter只需添加http cookie管理器即可完成cookie的處理,并且是自動(dòng)處理cookie信息,所以jmeter的cookie管理更簡(jiǎn)單
Postman在pre-request script可以添加前置請(qǐng)求,獲取響應(yīng)數(shù)據(jù),比較容易進(jìn)行json結(jié)果的處理,很方便的提取json數(shù)據(jù)——————jmeter不僅可以處理json數(shù)據(jù),(json提取器),還可以提取其他數(shù)據(jù)(正則表達(dá)式提取器)
3數(shù)據(jù)用例的實(shí)現(xiàn)
區(qū)別1:jmeter比較適合進(jìn)行數(shù)據(jù)與操作分離,而postman比較適合把數(shù)據(jù)和操作放在一起,顯然postman操作更簡(jiǎn)單,jmeter更便于維護(hù)
區(qū)別2: postman也支持csv數(shù)據(jù)文件的導(dǎo)入,但是每次執(zhí)行時(shí)都需要收工加載數(shù)據(jù)文件。不方便(所以只能做半自動(dòng)化)
? Jmeter可以進(jìn)行完全自動(dòng)化,特別是引入ant后效果更明顯
4斷言的實(shí)現(xiàn)
區(qū)別1:Postman有很多自帶的斷言函數(shù),直接引用即可,操作非常方便。。。 jmeter也自帶斷言組件,操作非常直觀。 區(qū)別: postman用函數(shù)斷言, jmeter用元件進(jìn)行斷言
區(qū)別2:jmeter支持正則表達(dá)式斷言,postman不支持
區(qū)別3:Jmeter的斷言更豐富。 postman需要通過(guò)編程來(lái)實(shí)現(xiàn)同樣的效果,所以難度更大
5執(zhí)行
區(qū)別:默認(rèn)執(zhí)行,postman不能保存結(jié)果,jmeter可以報(bào)存結(jié)果
Postman可以通過(guò)newman實(shí)現(xiàn)批量執(zhí)行和保存結(jié)果,jmeter可以通過(guò)ant實(shí)現(xiàn)批量執(zhí)行和保存結(jié)果
6其他
Postman比較適合做手工接口測(cè)試,因?yàn)楹?jiǎn)單,可以實(shí)現(xiàn)半自動(dòng)化
Jmeter比較適合自動(dòng)化接口測(cè)試,因?yàn)楣δ軓?qiáng)大并且可以保存腳本,批量執(zhí)行設(shè)置很容易
Postman一般用來(lái)做接口測(cè)試,用來(lái)發(fā)現(xiàn)BUG,驗(yàn)證后臺(tái)程序
Jmeter一般用來(lái)做自動(dòng)化測(cè)試,做冒煙測(cè)試。
Postman是谷歌的一款接口測(cè)試插件,它使用簡(jiǎn)單,支持用例管理,支持get、post、文件上傳、響應(yīng)驗(yàn)證、變量管理、環(huán)境參數(shù)管理等功能,可以批量運(yùn)行,并支持用例導(dǎo)出、導(dǎo)入。
jmeter是一款100%純Java編寫的免費(fèi)開(kāi)源的工具,它主要用來(lái)做性能測(cè)試,相比loadrunner來(lái)說(shuō),它內(nèi)存占用小,免費(fèi)開(kāi)源,輕巧方便、無(wú)需安裝,越來(lái)越被大眾所喜愛(ài)。
注:以下用例中所用地址皆為本人在本地所搭的環(huán)境,外網(wǎng)無(wú)法訪問(wèn),見(jiàn)諒。
①、獲取用戶信息:該接口用于通過(guò)userid獲取用戶信息
請(qǐng)求地址:http://192.168.1.102:8081/getuser
請(qǐng)求方式:POST/GET
入?yún)ⅲ?br>
?出參:
?
?postman中請(qǐng)求如下
jmeter中請(qǐng)求如下:?
?
②、獲取用戶信息:需要添加header,Content-Type application/json
1.1 請(qǐng)求地址
http://192.168.1.102:8081/getuser2
1.2 請(qǐng)求方式
get/post
1.3 入?yún)?/p>
?1.4 出參
postman測(cè)試如下,本次入?yún)閖son類型,當(dāng)然文檔中沒(méi)說(shuō)非要用json,用其他方式也是可以的?
?
jmeter測(cè)試如下?
?
③、修改用戶余額2
1.1 功能描述
功能描述:需要添加cookie,token token是寫死的token12345
1.2 請(qǐng)求地址
http://192.168.1.102:8081/setmoney2
1.3 請(qǐng)求方式
Post
1.4 入?yún)?/p>
?1.5 出參
?postman測(cè)試如下:
?jmeter測(cè)試如下:
?
?
④文件上傳
postman:
jmeter
?
?
?
⑤、請(qǐng)求webService接口
請(qǐng)求webService接口需要用到的工具是SoapUI,如下圖
?
?
?在jmeter里請(qǐng)求如下:
四、總結(jié)
做好接口測(cè)試并沒(méi)有那么簡(jiǎn)單,當(dāng)然只要找對(duì)方法和工具,一切都沒(méi)有你想象中那么復(fù)雜!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-456985.html
postman 和 jmeter 都可以模擬發(fā)送網(wǎng)絡(luò)請(qǐng)求它們之間沒(méi)有本質(zhì)優(yōu)劣 看你應(yīng)用的場(chǎng)合決定哪個(gè)更合適?。?!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-456985.html
到了這里,關(guān)于Jmeter和Postman那個(gè)工具更適合做接口測(cè)試?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!