web介面測試總結

2021-07-03 04:54:01 字數 2651 閱讀 7256

面試中我偏愛問的乙個問題是這樣的:"介面測試(僅限controller層,不設計service和dao層介面)有什麼用,應該怎麼做?"。答案當然五花八門,有根本不做的、有模式化的模擬傳送請求檢視響應體是否符合介面文件的、

有把介面中每個引數都修改後排列組合重新傳送的。我之所以問這個問題是想從各個公司各類人的測試觀點中提取可用之處,但是幾乎沒有遇到過相對新穎和高效的觀點。

下面闡述我所理解的介面測試。

q:介面測試是什麼?

我認為介面測試是功能測試不可或缺的一部分,拋開了ui層的邏輯和限制對於服務端的功能進行了完整的測試。

q:介面測試有沒有作用?

當然有用,而且作用很大。從介面測發起的測試彌補了介面測試的遺漏點。介面測試起碼遺漏了 1.介面引數校驗 2.介面引數組成 3.響應訊息體。能將介面測試納入功能

測試的一部分並且完成,我想已經脫離了初級工程師這一範疇,測試的完整性得到了很大的提高。

q:介面測試怎麼做?

接下來到了最核心的部分,如何做好介面測試。

首先首先,工具的選擇很重要,需要乙個好的抓包工具或者**,瀏覽器方面的推薦firefox的firebug和chrome自帶的開發者工具,快捷鍵都是f12。工具方面推薦fiddle2和

charles,這兩款工具的功能非常強大,包括抓取http和https包、請求包結構、時間、斷點除錯、mock、重**送請求等等,囊括了你對於乙個抓包工具所有的訴求。

現在抓包工具有了,我們抓取乙個典型的post請求如下:

圖一圖二是乙個請求訊息頭與訊息體(如果訊息頭訊息體搞不清的話,先去惡補http知識先),請求訊息中的每個欄位都有意義且可以更改,這個現象就很有意思了,測試人員應

當如何去操作這個請求訊息呢?

第一步:【看】

(a)看介面的訪問方式是get、post、或者上傳檔案

(b)看介面的引數構成是否合理。舉個例子,大家看下面截圖,有個介面名稱為cancelorder,傳入引數有3個:原始狀態、修改訂單後的狀態、訂單code。有沒有覺得這個介面的設計師乙個悖論,介面的作用已經明確確定為取消訂單,還需要傳入狀態。有人可能說,即使加上這兩個引數也沒錯啊。這種觀點是錯誤的,訂單狀態在資料庫中已經有明確的定義,不需要再通過不確定的前端傳入,這樣會減弱程式的健壯性,增加冗餘。

(c)看所傳引數有無敏感資料需要加密傳輸。比如說使用者userid、password等資料如果不使用https進行通訊,最好使用加密的方式進行傳輸,這也是業界通用的標準,並且入庫也需是加密的。

(d)看所測服務的**。第一看對於傳入引數的校驗部分,第二是看整體邏輯處理部分。舉個例子,大家在測試過程中經過會遇到如圖五所示,有多個必填或者選填項、輸入條件特別多、每個輸入條件都需要做校驗。有些測試人員會對此類問題用正交的方式一項一項測試,這類效率太慢。個人認為效率最高的方式為對於介面引數的校驗,以靜態測試為主,review**的過濾條件,頁面控制項實際輸入測試為輔助。很多的輸入介面,其中判空處理是必須的。開發**中常用的乙個判空函式是if(***.isempty())。首先介面類查詢是否有控制項物件未使用該函式,若未使用肯定存在bug;其次即使使用這個函式也是有bug,該函式並未完全滿足需求。這個函式漏掉了輸入空格的情況,正確的做法是if(***.trimme().isempty())。那麼如果在全工程內,搜尋isempty,對比發現bug,最後可以選擇乙個輸入項進行測試,通過後所有輸入控間判空測試均告完畢。靜態測試最多隻需要10分鐘,對應所有可輸入業務控制項不為空以及過濾空格的功能點用例可能有幾十個,執行時間至少半個小時以上。靜態效率比大於1:3。

(e)看介面的返回體是否返回一些不必要的敏感資訊,返回格式是否合理等

第二步:【改】

(a)請求體中引數的常規修改。常規修改就是通用的邊界值方法,如極大值、極小值、極長值、null、空。未對這些值做校驗的後果可大可小。小的方面僅僅是伺服器throw乙個統一的錯誤提示,如網路錯誤等。中等一點的為前端頁面會返回如圖六形式的內部錯誤,這種錯誤會洩露一些敏感資訊。嚴重的後果可能就是影響現有或者後續業務,使得業務往不可控的方向進行。

圖六                  

(b)與業務強相關的引數修改。在本文中強調的一點就是介面測試是功能測試密不可分的一部分!在上段圖二中,各項引數都對應了資料庫中的某個業務字段。比如修改taskid為乙個還未上線的任務id,會不會就領取了這個任務。又或者修改taskid為已下線的任務id,是不是可以領取這個任務。這一類的引數修改法無定法,需要測試人員深入到功能內部,加上對於業務源**的走讀進行用例設計。

下班了,先寫到這。

web介面測試

看過不少關於講 web測試文章,對我的幫助很大,結合實際測試,把對我測試有用的整理下來,和大家分享下。1.介面部分 1 頁面清單是否完整 是否列舉全部頁面 2 頁面顯示情況 在不同解析度下 在不同瀏覽器版本中 3 頁面在視窗中的顯示 調整瀏覽器視窗大小,滾動條自適應 4 頁面元素清單 為實現功能,是...

web測試之介面測試

摘要 本文講的是web測試之介面測試,所謂介面測試就是指,布局是否合理 整體風格是否一致 各個控制項的放置位置是否符合客戶使用習慣,此外還要測試介面操作便捷性 導航簡單易懂性,頁面元素的可用性,介面中文字是否正確,命名是否統一,頁面是否美觀,文字 組合是否完美。一般情況下我們進行介面測試,直接依據產...

Web介面測試小結

從事web測試的,特別是電子商務 現在大部分客戶對介面的要求非常高,所以對於測試人員來講,也必須特別注意介面的一些東西。從前幾個專案來看,個人認為介面測試的測試點以及應該注意的問題 1 介面的線條是否一致,每個介面中線條是否對齊,是否一致。靜態頁面沒有確認的情況下 2 整個系統的介面是否保持一致 3...