前階段做了一個小調查,發現軟件測試行業做功能測試和接口測試的人相對比較多。在測試工作中,有高手,自然也會有小白,但有一點我們無法否認,就是每一個高手都是從小白開始的,所以今天我們就來談談一大部分人在做的接口測試,小白變高手也許你只差這一次深入了解!
接口測試的目的
已經是老生常談了,我想不用我說,凡是說到接口總會被問及這個話題,的確,沒有目標就沒有評定標準,知道其目的也是至關重要的。
接口測試的目的通過英文翻譯呈現如下:
API 測試是一種作為集成測試的一部分,通過直接控制被測應用的接口(API)來確定是否在功能、可靠性、性能和安全方面達到預期的軟件測試活動。由于 API 都沒有 GUI 界面,API 測試都是在通訊層進行的。現在 API 測試在自動化測試中有著很重要的地位,因為 API 一般是應用邏輯的主要接口,同時 GUI 測試在敏捷開發和 DevOps 的快速迭代和頻繁變更中很難維護。
在進行接口測試前,還需要了解:
1)、GET和POST請求:
如果是get請求的話,直接在瀏覽器里輸入就行了,只要在瀏覽器里面直接能請求到的,都是get請求,如果是post的請求的話,就不行了,就得借助工具來發送。
GET請求和POST請求的區別:
1、GET使用URL或Cookie傳參。而POST將數據放在BODY中。
2、GET的URL會有長度上的限制,則POST的數據則可以非常大。
3、POST比GET安全,因為數據在地址欄上不可見。
4、一般get請求用來獲取數據,post請求用來發送數據。
2)、http狀態碼
每發出一個http請求之后,都會有一個響應,http本身會有一個狀態碼,來標示這個請求是否成功,常見的狀態碼有以下幾種:
1、200 2開頭的都表示這個請求發送成功,最常見的就是200,就代表這個請求是ok的,服務器也返回了。
2、300 3開頭的代表重定向,最常見的是302,把這個請求重定向到別的地方了,
3、400 400代表客戶端發送的請求有語法錯誤,401代表訪問的頁面沒有授權,403表示沒有權限訪問這個頁面,404代表沒有這個頁面
4、500 5開頭的代表服務器有異常,500代表服務器內部異常,504代表服務器端超時,沒返回結果
3)web service的接口如何測試:
它不需要你在拼報文了,會給一個webservice的地址,或者wsdl文件,直接在soapui導入,就可以看到這個webservice里面的所有接口,也有報文,直接填入參數調用,看返回結果就可以了。
4)cookie與session的區別:
1、cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。
2、cookie不是很安全,別人可以分析存放在本地的cookie并進行cookie欺騙考慮到安全應當使用session。
3、session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能考慮到減輕服務器性能方面,應當使用cookie。
4、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
5、所以個人建議:
將登錄信息等重要信息存放為session
其他信息如果需要保留,可以放在cookie中
接口測試怎么測:
1)、通用接口用例設計
①、通過性驗證:首先肯定要保證這個接口功能是好使的,也就是正常的通過性測試,按照接口文檔上的參數,正常傳入,是否可以返回正確的結果。
②、參數組合:現在有一個操作商品的接口,有個字段type,傳1的時候代表修改商品,商品id、商品名稱、價格有一個是必傳的,type傳2的時候是刪除商品,商品id 是必傳的,這樣的,就要測參數組合了,type傳1的時候,只傳商品名稱能不能修改成功,id、名稱、價格都傳的時候能不能修改成功。
③、接口安全:
1、繞過驗證,比如說購買了一個商品,它的價格是300元,那我在提交訂單時候,我把這個商品的價格改成3元,后端有沒有做驗證,更狠點,我把錢改成-3,是不是我的余額還要增加?
2、繞過身份授權,比如說修改商品信息接口,那必須得是賣家才能修改,那我傳一個普通用戶,能不能修改成功,我傳一個其他的賣家能不能修改成功
3、參數是否加密,比如說我登陸的接口,用戶名和密碼是不是加密,如果不加密的話,別人攔截到你的請求,就能獲取到你的信息了,加密規則是否容易破解。
4、密碼安全規則,密碼的復雜程度校驗
5、異常驗證:
所謂異常驗證,也就是我不按照你接口文檔上的要求輸入參數,來驗證接口對異常情況的校驗。
2)、根據業務邏輯來設計用例
根據業務邏輯來設計的話,就是根據自己系統的業務來設計用例,這個每個公司的業務不一樣,就得具體的看自己公司的業務了,其實這也和功能測試設計用例是一樣的。列出測試點,然后再去造數據測試對應的測試點。
用什么工具測
接口測試的工具很多,比如 postman、RESTClient、jmeter、loadrunner、SoapUI等,這里主要說下最近看到的一些接口測試工具方面的帖子,簡單匯總一下他們的實現方式:
本人首推的測試工具是postman和jmeter,接下來就簡單介紹下如何使用這兩款工具進行接口測試,其他工具本次暫不介紹。
1.創建接口用例集(沒區別)
Postman是Collections,Jmeter是線程組,沒什么區別。
2.步驟的實現(有區別)
Postman和jmeter都是創建http請求
區別1:postman請求的請求URL是一個整體,jmeter分成了4個部分(協議、主機、端口、路徑)
區別2:postman可以在請求中直接填寫請求頭信息, jmeter需要通過添加http請求頭管理器添加請求頭
區別3:對于cookie,postman可以對cookie做管理,但是jmeter只需添加http cookie管理器即可完成cookie的處理,并且是自動處理cookie信息,所以jmeter的cookie管理更簡單
Postman在pre-request script可以添加前置請求,獲取響應數據,比較容易進行json結果的處理,很方便的提取json數據——————jmeter不僅可以處理json數據,(json提取器),還可以提取其他數據(正則表達式提取器)
3數據用例的實現
區別1:jmeter比較適合進行數據與操作分離,而postman比較適合把數據和操作放在一起,顯然postman操作更簡單,jmeter更便于維護
區別2: postman也支持csv數據文件的導入,但是每次執行時都需要收工加載數據文件。不方便(所以只能做半自動化)
Jmeter可以進行完全自動化,特別是引入ant后效果更明顯
4斷言的實現
區別1:Postman有很多自帶的斷言函數,直接引用即可,操作非常方便。。。 jmeter也自帶斷言組件,操作非常直觀。 區別: postman用函數斷言, jmeter用元件進行斷言
區別2:jmeter支持正則表達式斷言,postman不支持
區別3:Jmeter的斷言更豐富。 postman需要通過編程來實現同樣的效果,所以難度更大
5執行
區別:默認執行,postman不能保存結果,jmeter可以報存結果
Postman可以通過newman實現批量執行和保存結果,jmeter可以通過ant實現批量執行和保存結果
6其他
Postman比較適合做手工接口測試,因為簡單,可以實現半自動化
Jmeter比較適合自動化接口測試,因為功能強大并且可以保存腳本,批量執行設置很容易
Postman一般用來做接口測試,用來發現BUG,驗證后臺程序
Jmeter一般用來做自動化測試,做冒煙測試。
Postman是谷歌的一款接口測試插件,它使用簡單,支持用例管理,支持get、post、文件上傳、響應驗證、變量管理、環境參數管理等功能,可以批量運行,并支持用例導出、導入。
jmeter是一款100%純JAVA編寫的免費開源的工具,它主要用來做性能測試,相比loadrunner來說,它內存占用小,免費開源,輕巧方便、無需安裝,越來越被大眾所喜愛。
注:以下用例中所用地址皆為本人在本地所搭的環境,外網無法訪問,見諒。
①、獲取用戶信息:該接口用于通過userid獲取用戶信息
請求地址:http://192.168.1.102:8081/getuser
請求方式:POST/GET
入參:
出參:
postman中請求如下
jmeter中請求如下:
②、獲取用戶信息:需要添加header,Content-Type Application/json
1.1 請求地址
http://192.168.1.102:8081/getuser2
1.2 請求方式
get/post
1.3 入參
1.4 出參
postman測試如下,本次入參為json類型,當然文檔中沒說非要用json,用其他方式也是可以的
jmeter測試如下
③、修改用戶余額2
1.1 功能描述
功能描述:需要添加cookie,token token是寫死的token12345
1.2 請求地址
http://192.168.1.102:8081/setmoney2
1.3 請求方式
Post
1.4 入參
1.5 出參
postman測試如下:
jmeter測試如下:
④文件上傳
postman:
jmeter:
⑤、請求webService接口
請求webService接口需要用到的工具是SoapUI,如下圖
在jmeter里請求如下:
總結:
做好接口測試并沒有那么簡單,當然只要找對方法和工具,一切都沒有你想象中那么復雜!
不管怎樣,既然開始了,那就要想辦法把它做好。接下來我會使用新的設計用例思路做我未完成的接口測試用例,并修改Java 代碼讓其支持使用Excel作為用例。上述分享中如果有不對的地方,歡迎大家及時提出
原作者:小白菜-逗逗
原出處:博客園
原文鏈接:https://www.cnblogs.com/xiaobaicai-doudou/p/12587268.html
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!