呼叫第三方介面 入參是陣列 介面測試用例介紹

2021-10-11 15:57:14 字數 2755 閱讀 9536

隨著測試分析和分層測試的深化,"介面測試"出現在我們視野的頻次越來越高。那麼介面測的用例設計常用哪些方法呢?本文將詳細描述。

1 介面測試

1.1 介面測試

介面:主要是子模組或者子系統間互動並相互作用的部分。

這裡說的介面是廣義的,客戶端與後台服務間的協議;外掛程式間通訊的介面;模組間的介面;再小到乙個類提供的方法;都可以理解為介面。

介面測試:是指針對模組或系統間介面進行的測試。

1.2 介面測試發現的典型問題

介面測試經常遇到的bug和問題,如下:

(1)傳入引數處理不當,導致程式crash;

(2)型別溢位,導致資料讀出和寫入不一致;

(3)因物件許可權未進行校驗,可以訪問其他使用者敏感資訊;

(4)狀態處理不當,導致邏輯出現錯亂;

(5)邏輯校驗不完善,可利用漏洞獲取非正當利益等。

2 介面測試用例設計

上圖為乙個典型的介面。乙個介面通常是有輸入輸出的,輸入就是我們常見的入參,輸出有時有,有時沒有。呼叫相關介面,介面會執行相關處理邏輯。

介面測試的用例設計,主要從輸入和介面處理兩方面考慮:

1)針對輸入,可按照引數型別進行設計;

2)針對介面處理,可按照邏輯進行用例設計;

3)針對輸出,可根據結果進行分析設計。

2.1 針對輸入設計

對於介面來說,輸入就是入參。常見引數型別有:

(1)數值型(int,long,float,double等)

(2)字串型別

(3)陣列或鍊錶

結構體

結構體(struct)是一些元素的結合,元素實際也是數值型,字串型,陣列或鍊錶。

下面詳細說明數值型、字串型、陣列或鍊錶三種引數型別用例設計。

2.1.1 數值型

數值型的引數主要考慮以下幾個方面設計:

如果引數規定了值的範圍,則需要考慮等價類取值範圍內、取值範圍外,取值的邊界,如有需要,可能會遍歷取值範圍內的各個值。

例如檢查許可權的介面:taskchecker.checktask(int taskid) taskid的取值範圍是1-35,那麼設計時考慮:

●1-35範圍內和範圍外的值;

●1-35的邊界:0,1,35,36;

●型別的特殊值:-1,0

●資料型別的邊界值:int的最小值最大值;

●因為1-35**的許可權id不同,可能需要遍歷1-35的每個值。

常見問題和風險:

●特殊值處理不當導致程式異常退出;

●型別邊界溢位

●取值範圍外值未返回正確的錯誤資訊等

2.1.2 字串型

字串型的引數,主要考慮字串的長度和內容:

例如介面轉換設定鬧鐘的介面dateutil.getdayofddhh(string ddhh),用例可以考慮:

●長度為4位,比4位少,比4位多;

●邊界值:string的最大長度;

●特殊值:空字元;

●字串內容可考慮型別:數字,非數字;

●特殊字元。

●如果是輸入使用者輸入且其他使用者可見的內容,則還需要考慮敏感字是否被正常過濾。

可能出現的問題和風險:

●傳入非特定型別程式異常退出

●超長字元未進行處理,導致儲存、顯示等異常

●其他使用者可見設定的敏感字

2.1.3 陣列或鍊錶型別

引數型別為陣列或鍊錶時,用例可以考慮:

例如批量提交任務的介面submittask(int taskid),引數用例設計考慮:

●正常取值:1-5個許可權,範圍外:6個許可權;

●邊界值:1-35的邊界值,請求允許最大最小值;

●特殊值:0個;

●合法id和不合法的;

●重複的id等。

可能存在的問題和風險:

●0個item時程式異常退出;

●重複的item處理時未去重導致結果異常等。

2.2 針對邏輯設計

介面需要進行一些邏輯處理的,那麼按邏輯設計用例可以從以下幾個角度分析。

2.2.1 約束條件分析

(1)數值限制:分數限制、金幣限制、等級限制等等。

例如:兌換q幣活動要求積分》50才可參與。

(2)狀態限制:登入狀態等。

例如:同步使用者資訊需要先登入賬號。

(3)關係限制:繫結的關係,好友關係等。

例如:幫家人防騙功能只能查詢繫結家人的來電資訊。

(4)許可權限制:管理員等。

約束條件的測試在功能測試中經常遇到,在介面測試中更為重要。它的意義在於:使用者進行操作時,在該操作的前端可以已經進行了約束條件的限制,故使用者無法直接觸發請求該介面。但是實際上,如果有其他手段:例如ui有bug或者通過技術手段直接呼叫介面,那麼介面是否針對這些條件進行了限制就尤為重要

第三方APP呼叫jeesite介面,傳遞引數

最近使用jeesite 4.x版本開發,遇到該問題,記錄一下解決方案 下面是傳送資料方 呼叫 public void postjson map.put func function i jsonobject json jsonobject.fromobject map logutil.info add...

Feign呼叫第三方http介面

我們平常在開發的時候,經常會碰到呼叫第三方的介面,這個時候我們可以使用httpclient或者resttemplate,但是這兩種方式相比較與feign呼叫,都會麻煩一點兒。feign是宣告式服務呼叫客戶端,既規範又簡潔,幫我們遮蔽了http呼叫的複雜性,而且完美切入springcloud技術體系。...

第三方支付介面

第三方支付介面 簽約入口 4.郵局支付 網匯通 7.免手續費自助整合 10.nps網上支付系統 contact contact.jsp 程式參考文件 見附件nps支付系統介面 特點 1.支援國內銀行支付 2.支援國外銀行支付 3.支援神州行充值卡支付 product payment easyown....