一、前言:什么是接口
1.接口指的是軟件提供給外界的一種服務。作用在於使其內部的數據能被外部進行修改的交互方式。
例如:USB接口,電腦里的數據可以看成是內容數據,而U盤里的數據可以看成是外部數據,那么USB接口的作用就是:電腦和U盤交互數據,也就是使電腦內部的數據能夠和外部的U盤交換數據。
例如:微信的提現和充值,就調用銀行對外開放的接口, 這些接口有權限控制,一般需要鑒權碼token才可以訪問。那為什么要鑒權碼呢?如果沒有鑒權碼約束,那是不是誰也可以修改銀行內部的數據?那還得了,那就真可以定一個小目標了!
2.接口一般來說有兩種:一種是程序內部的接口,一種是系統對外的接口。
系統對外的接口:比如你要從別的網站或服務器上獲取資源或信息,別人肯定不會把數據共享給你,他只能給你提供一個他們寫好的方法來獲取數據,你引用他提供的接口就能使用他寫好的方法,從而達到數據共享的目的,比如說咱們用的app它在進行數據處理的時候都是通過接口來進行調用的。
程序內部的接口:方法與方法之間,模塊與模塊之間的交互,程序內部拋出的接口,比如bbs系統,有登錄模塊、發帖模塊等等,那你要發帖就必須先登錄,要發帖就得登錄,那么這兩個模塊就得有交互,它就會拋出一個接口,供內部系統進行調用。
二、接口協議以及對應的接口測試工具
1、基於http協議的接口:
http協議又叫超文本傳輸協議,主要是用於瀏覽器和服務器之間交互數據,這種接口常使用get和post兩種方法請求,基於這種協議開發的接口是目前市面上面最多的!一般使用的接口測試工具有:
Postman
Jmeter
2、基於webService協議的接口
webService是基於soap的通信協議,請求和返回報文一般是xml格式的。一般使用的接口測試工具有:
SoapUI
3、基於Dubbo協議的接口
1、dubbo 缺省協議 采用單一長連接和NIO異步通訊,適合於小數據量大並發的服務調用,以及服務消費者機器數遠大於服務提供者機器數的情況
2、不適合傳送大數據量的服務,比如傳文件,傳視頻等,除非請求量很低。
3、基於Dubbo協議的接口一般也是使用SoapUI工具進行測試。
三、接口測試如何設計測試用例?
接口測試一般考慮入參形式的變化和接口的業務邏輯,一般設計接口測試用例采用等價類、邊界值、場景法居多!
接口測試設計測試用例的思路如下:
1.接口業務邏輯測試?(正例)
接口邏輯測試是指根據業務邏輯、輸入參數、輸出值的描述,對正常輸入情況下所得的輸出值
是否正確的測試,也就是測試對外提供的接口服務是否正常工作。
2.模塊接口測試?(反例)
模塊接口測試是為了保證數據的安全及程序在異常情況下的邏輯的正確性而進行的測試。?
模塊接口測試的主要包括以下幾個方面?
1)鑒權碼token異常(鑒權碼為空<沒有鑒權碼>,錯誤的鑒權碼,過期的鑒權碼)。
2)其他參數異常。
1、必填項檢查
2、參數的長度、類型、格式異常:
常規參數:(數字、字符串、日期)
參數長度:6-18位。或身份證、電話的長度。
參數類型:數字(精度),字母,中文,帶空格的參數,特殊字符。
日期格式:日期:年月日,年月日時分秒,日期格式(包括/,-,:等)。
3)錯誤碼異常覆蓋。
4)接口測試其他的關注點
接口有翻頁時,頁碼與頁數的異常值測試
數據庫的增刪改查,比如一個post接口操作完成后,通過列表頁接口看下新的數據是否和剛才的post一致
接口返回的圖片地址能否打開,圖片尺寸是否符合需求
當輸出參數有聯動性時,需要校驗返回兩參數的實際結果是否都符合需求。
所有列表頁接口必須考慮排序值
所有功能都要考慮兼容舊版本
四、接口組成?
1.接口都有那些部分組成呢?
由接口文檔可知,接口至少應有:請求地址、請求方法、請求參數(入參和出參)組成,部分接口有請求頭header。
2.header請求頭和入參都是發送到服務器他們有什么區別呢?
首先,它們確實都是發送到服務器里的參數,但它們是有區別的,header里存放的參數一般存放的是一些校驗信息,比如cookie,它是為了校驗這個請求是否有權限請求服務器,如果有,它才能請求服務器,然后把請求地址連同入參一起發送到服務器,然后服務器會根據地址和入參來返回出參。也就是說,服務器是先接受header信息進行判斷該請求是否有權限請求,判斷有權限后,才會接受請求地址和入參的。
五、總結
如果你對此文有任何疑問,如果你覺得此文對你有幫助,如果你對軟件測試、接口測試、自動化測試、面試經驗交流感興趣歡迎加入:
軟件測試技術群:695458161,群里發放的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。
作者:來自公眾號:軟測之家
出處:https://www.cnblogs.com/csmashang
原創不易,歡迎轉載,但未經作者同意請保留此段聲明,並在文章頁面明顯位置給出原文鏈接!