參考網(wǎng)站:http://www.cnblogs.com/zoraliu66/p/6743126.html
1.什么是接口測試
1)接口測試是測試系統(tǒng)組件間接口的一種測試腻惠。(是什么)
2)接口測試主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個子系統(tǒng)之間的交互點
3)接口測試的重點是要檢查數(shù)據(jù)的交換,傳遞和控制管理過程欲虚,以及系統(tǒng)間的相互邏輯依賴關(guān)系等。
2.為什么要做接口測試
為什么=原因+目的+作用
1)由于如今的系統(tǒng)復(fù)雜度不斷上升悔雹,傳統(tǒng)的測試方法成本急劇增加且測試效率大幅下降复哆,所以就要做接口測試欣喧。(什么導(dǎo)致的)
2)同時,接口測試相對容易實現(xiàn)自動化持續(xù)集成梯找,且相對UI自動化也比較穩(wěn)定唆阿,可以減少人工回歸測試人力成本與時間,縮短測試周期锈锤,支持后端快速發(fā)版需求驯鳖。(作用)
3)接口持續(xù)集成是為什么能低成本、高收益的根源久免。
4)現(xiàn)在很多系統(tǒng)前后端架構(gòu)是分離的浅辙,從安全層面來說,只依賴前端進(jìn)行限制已經(jīng)完全不能滿足系統(tǒng)的安全要求(繞過前面實在太容易)阎姥,?需要后端同樣進(jìn)行控制记舆,在這種情況下就需要從接口層面進(jìn)行驗證。
5)前后端傳輸呼巴、日志打印等信息是否加密傳輸也是需要驗證的泽腮,特別是涉及到用戶的隱私信息,如身份證衣赶,銀行卡等诊赊。(舉例)
總結(jié):由于系統(tǒng)復(fù)雜度不斷上升,加上目前很多系統(tǒng)前后端架構(gòu)是分離的府瞄,為了降低成本碧磅、提高測試效率以及滿足系統(tǒng)安全要求,需要從接口層面進(jìn)行驗證摘能;接口測試甚至可以實現(xiàn)自動化持續(xù)集成续崖,可以減少回歸測試的人力與時間、縮短測試周期团搞,最終實現(xiàn)低成本高收益严望。像涉及到用戶的隱私信息,如身份證逻恐、銀行卡等是否加密傳輸是需要驗證的像吻。
3.怎么做接口測試
3.1步驟
1,拿到開發(fā)給的需求文檔(輸入?yún)?shù)复隆,檢出參數(shù)拨匆,URL地址,請求方式)挽拂;
2.了解接口文檔里實現(xiàn)的功能惭每,測試點和測試范圍;
????? 1)數(shù)據(jù)驗證:長度,格式台腥,必填項宏赘,數(shù)據(jù)類型
?????? 2)功能邏輯:枚舉值,節(jié)點組合
3.編寫測試用例黎侈;
4.接口測試用例的評審察署;
5.用工具執(zhí)行測試用例:選擇所需請求方式發(fā)送url地址、請求參數(shù)峻汉;
6.根據(jù)返回參數(shù)分析結(jié)果贴汪,總結(jié)寫報告。
3.2 步驟解析
1)URL地址內(nèi)容:協(xié)議(http文本傳輸協(xié)議休吠、https超文本加密協(xié)議扳埂,開放協(xié)議SOAPsoap),端口號(默認(rèn)為88)蛛碌;
參考文獻(xiàn):http與soap協(xié)議的區(qū)別
2)請求方式:最基本的方法有4種聂喇,分別是GET,POST蔚携,PUT希太,DELETE
3)-如果輸入?yún)?shù)比較多,比較復(fù)雜酝蜒,最好用思維導(dǎo)圖分析再寫用例
4)接口測試工具用jemeter或者robotframework誊辉,兩者各有各的優(yōu)點,如果純接口測試可以選擇jemeter工具亡脑,如果想更好的管理用例堕澄,實現(xiàn)自動化,可以選擇rf霉咨,兩者原理差不多
5)請求參數(shù):頭信息不一定需要蛙紫,cokies也不一定需要,根據(jù)具體情況而定
Post和get的區(qū)別 :
????????? Http定義了與服務(wù)器交互的不同方法途戒,最基本的方法有4種坑傅,分別是GET,POST喷斋,PUT唁毒,DELETE。URL全稱是資源描述符星爪,我們可以這樣認(rèn) 為:一個URL地址浆西,它用于描述一個網(wǎng)絡(luò)上的資源,而HTTP中的GET顽腾,POST近零,PUT,DELETE就對應(yīng)著對這個資源的查,改久信,增猪瞬,刪4個操作,實際上只要get與post就可以實現(xiàn)入篮。到這里,大家應(yīng)該有個大概的了解了幌甘,GET一般用于獲取/查詢資源信息潮售,而POST一般用于更新資源信息。
1)Get是向服務(wù)器發(fā)索取數(shù)據(jù)的一種請求锅风,而Post是向服務(wù)器提交數(shù)據(jù)的一種請求酥诽,GET和POST只是發(fā)送機制不同,都是一種發(fā)送
2)根據(jù)HTTP規(guī)范皱埠,GET用于信息獲取肮帐,而且應(yīng)該是安全的和冪等的。
?????? ps1:安全指的是不修改數(shù)據(jù)方面边器,實際上從真正安全角度要post更安全训枢,因為密碼不會像get方式一樣以明文方式發(fā)送,因為一旦被瀏覽器緩存忘巧,別人可以看到明文的密碼就不安全了
?????? ps2:冪等的意味著對同一URL的多個請求應(yīng)該返回同樣的結(jié)果
3)根據(jù)HTTP規(guī)范恒界,POST表示可能修改、改變服務(wù)器上的資源的請求
3.3jemeter工具接口測試總結(jié):
1)線程組------可以設(shè)置:線程數(shù)砚嘴、循環(huán)次數(shù)及持續(xù)時間等
2)HTTP請求-----url(協(xié)議十酣、服務(wù)器IP、端口號际长、路徑)耸采、parameters與Body Data(請求參數(shù))、請求方法
????????? ps:如果是xml或者Json格式則寫在body data里工育,詳解:【Jmeter】參數(shù)Parameters和Body Data
?????? 注意Json和xml格式的區(qū)別:Json有鍵值對虾宇,用{}括起來;Xml 是<>? ? </>,值在中間
????? Parameters ------ xx=xx&xxx=xx格式的參數(shù)為GET或者POST請求中翅娶,url中帶的參數(shù)值文留,如: 在一個這樣的請求中/api/xx/xxx/xxxx?index=0&pagesize=100&thumb=1 ?號后面的可以寫在url中竭沫,也可以寫在Parameters中
Body Data----- json格式的是POST請求中的參數(shù)燥翅,POST請求參數(shù)時,看請求的格式蜕提,是否需要在請求中添加HTTP信息頭管理器森书,將請求的Content-Type 或者 User-Agent 等進(jìn)行定義
3)HTTP信息頭管理器-----主要項Content-Type、User-Agent
4)HTTP Cookie 管理器-----裝cookie信息,不一定需要
5)查看結(jié)果樹-------查看運行的結(jié)果
6)CSV Data Set Config---------可設(shè)置變量
7)固定定時器-----設(shè)置時間
3.4抓包工具h(yuǎn)ttpwatch的使用
抓包步驟:點擊Record->執(zhí)行動作->Stop
分析數(shù)據(jù):
1)看"Overview"------url凛膏、result(看狀態(tài)碼status code---可以用來檢查結(jié)果)
2)看"Headers"(‘’標(biāo)頭")-------Content-Type杨名、Cookie、Referer(要去添加的)
3)看"postData‘’(post類型會有)-------有值(value)的都需要猖毫,如果為空則可不去添加
4)看content(返回數(shù)據(jù))--------在查看結(jié)果時需要用來參考的數(shù)據(jù)
4.面試怎么回答---你的接口是怎么測試的台谍?
(開頭的總結(jié))我覺得接口測試還是比較簡單的,和功能測試差不多吁断。
接口測試就是模擬客戶端用戶操作向服務(wù)端發(fā)送請求趁蕊,是測試系統(tǒng)組件間接口的一種測試;主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個子系統(tǒng)之間的交互點仔役;重點是要檢查數(shù)據(jù)的交換掷伙,傳遞和控制管理過程,以及系統(tǒng)間的相互邏輯依賴關(guān)系等又兵。
首先開發(fā)給我們一個需求文檔任柜,里面會標(biāo)注一些參數(shù)信息,URL地址沛厨,是什么協(xié)議的(http協(xié)議還是https的宙地,一般都是http協(xié)議的)請求方式(是post請求數(shù)據(jù)多一點)還是get(傳輸速度快一點)
然后對接口文檔進(jìn)行一個詳細(xì)的分析,需要了解接口文檔里實現(xiàn)的功能俄烁,測試點和測試范圍绸栅。(我們主要測試參數(shù)的取值范圍,它的一些邊界這些都會測試页屠,當(dāng)他們?nèi)≈党晒蛘呤∥覀兌紩y粹胯,我們也會考慮一些參數(shù)的錯誤情況,當(dāng)參數(shù)為空辰企,或者參數(shù)多 一個或者少一個风纠,或者參數(shù)不存在的時候,我們都會去測牢贸,看他返回的狀態(tài)碼是不是跟需求文檔時候一致竹观,如果不一致,那就是問題了)
然后再根據(jù)測試點編寫測試用例潜索,像我們編寫測試的時候考慮實現(xiàn)什么功能來寫測試點臭增,然后參數(shù)的長度,格式竹习,類型誊抛,參數(shù)組合,一些異常情況整陌,
用例編寫完之后拗窃,我們會做一個接口測試評審(因為一個人可能考慮不是那么全面)
然后用工具去執(zhí)行測試用例瞎领,我們之前用的最多的工具就是jemeter,輸入接口地址和請求參數(shù)随夸,通過點擊運行發(fā)送請求九默,然后看它的返回碼和返回報文,分析宾毒。
(說完的總結(jié))我覺得接口測試比功能測試就是多了一個檢查點驼修,檢查它的返回碼和返回報文是不是符合需求文檔,重點就是請求和返回之前的參數(shù)校驗和檢查诈铛;如果有問題的話邪锌,我們會提交給開發(fā)進(jìn)行修復(fù),之后再做回歸測試