本文整理了面試中經常被問到的介面測驗題目,也是專案中經常遇到的實際問題,希望能通過這些題目提高對介面測驗的理解,
后續也會持續更新一些題目進來,希望能對大家有所幫助,
1、請詳細闡述介面測驗和UI測驗在測驗活動中是如何協同測驗的?

UI與介面測驗的協同可以從下面的方向考慮:
- UI的操作實際上就是用另一種方式呼叫介面,那么介面有多少種引陣列合就要求UI用例要構造多少種操作進行呼叫
- UI操作所需要的資料可以用介面來生成
- 介面測驗可以保證資料和邏輯的準確性,UI測驗需要考慮互動和界面展示的邏輯正確性
- UI測驗需要重視介面呼叫不成功或者介面例外情況下UI的呈現方式和用戶體驗
- UI中可能會有一些狀態的快取資訊(這樣就不需要每次頻繁呼叫介面去獲取了),比如鑒權資訊等,需要重點關注這些快取的更新策略
2、介面測驗中上下游介面有資料依賴如何處理?
上下游介面的資料依賴無非就是準備測驗資料,
假如一個事務需要順序呼叫2個介面:A和B介面, B依賴A介面的回應資料,這時候在執行B介面之前必須完成A介面,并通過某些手段獲得A介面的特定資料給B介面使用,
資料一般有三種方式獲得:
- 獨立統一的測驗資料庫, A、B需要的資料都可以從庫里拿到
- 假如B依賴A創造的資料,那么每次執行B之前必須執行A去做資料創建
- 通過正則運算式動態獲得A的回傳資料,并保存到變數中,通過引數化的方式傳遞給B介面
3、依賴于第三方資料的介面如何進行測驗?
可以使用SoapUI等工具直接呼叫第三方資料介面的webservice,通過回傳值來查看第三方資料的介面是否呼叫正常,
也可以利用一些工具來模擬第三方的資料回傳,最大限度的降低對第三方資料介面的依賴,
4、介面測驗中依賴登錄狀態的介面如何測驗?
依賴登錄狀態的介面的本質上是在每次發送請求時需要帶上Session或者Cookie才能發送成功,在構建POST請求時添加必要的Session或者Cookie,
如果使用python+requests實作的話,可以使用session物件發送介面請求,
5、webService介面測驗是什么?
webService介面有一套完整的協議標準,主要為soap協議,用來進行訊息的傳遞,回傳結果需要包裝在一個soap協議指定的語法格式中,即使你只需要簡單的回傳字符1,也需要包裝在協議種回傳,協議描述了成功失敗否,結果值等,可以通過soapUI測驗工具去進行介面的模擬及測驗,
web service介面的特點:
- 介面中實作的方法和要求引數一目了然,
- 不用擔心大小寫問題,
- 不用擔心中文 urlencode 問題,
- 代碼中不用多次宣告認證(賬號,密碼)引數,
- 傳遞引數可以為陣列,物件等,
6、如何獲取介面的引數?
設計介面測驗用例時,涉及的是電商系統,其中包括很多修改,如商品、商家、店鋪等等,針對這些資料的修改,會涉及到很多引數,如商品的名稱,商品的尺碼,商品的顏色等等,
那在設計實作“修改”接?口時,如何確定要傳哪些引數?是只需要傳我要修改的引數,還是全部引數都要傳?
方式一、關鍵還是看后臺邏輯實作
舉例:User有兩個屬性username,password
后臺邏輯實作:update User set username=? where id=xxx;
那么,如果你只想更新username的時候,可以不傳password,其值是保持不變的,
后臺邏輯實作:udpate User set username=?,password=? where id=xxx;
這種情況下,即使你只想更新username,也需要傳password的值給后臺,不然password就會被更新為空,
此外,還有一些資料如id等,如果sql中沒有寫,那即使傳遞了本欄位的引數,資料庫也不會更新,因此,在寫關于“修改”的介面時,需要考慮一下,后臺的邏輯是怎么實作的,然后確認要傳遞哪些引數,
方式二、抓包工具直接抓取介面情況分析
如果系統已經實作了,并且已經確定了介面邏輯,那么我們通過Fiddler等抓包工具,抓取到對應業務的請求報文,分析其中傳遞引數資訊即可,
7、為什么要做介面測驗?
介面是獲取和操作資源的方式,而大部分系統和產品中,資源一般都是產品的核心,比如微信核心資源就是通訊錄關系鏈和聊天記錄等,因此資源是必測的,
另外介面中大部分的內容是資料,通過資料的對比我們能推測到系統和產品的邏輯,測介面就是測邏輯,
最后介面中的回傳相對單純,不像web頁面,html代碼中有太多ui的東西,ui最不穩定,變化太快,介面相對穩定一點點,但是里面的干擾資訊更少,斷言相對容易很多,
8、HTTP介面傳遞資料最常用的方式?
Get方式是從服務器上獲取資料;在做資料查詢時,建議用Get方式;如:商品資訊介面、搜索介面、博客訪客介面等,
Post方式是向服務器傳送資料 ;在做資料添加、修改或洗掉時,建議用Post方式 ;如:微博圖片上傳圖片介面、登錄注冊介面等,
9、什么是介面測驗?
介面測驗是測驗系統組件間介面的一種測驗,
介面測驗的重點是檢查資料的交換,傳遞的正確性,以及介面間邏輯依賴關系,
提交介面測驗的重要意義:實作開發期并行測驗,減少頁面層測驗的深度,縮短整個專案的測驗周期,
10、我們測驗的介面屬于哪一類?
大多數的介面指的是HTTP介面,通常是指 B/S架構,由客戶端(瀏覽器)呼叫,或模擬客戶端(瀏覽器)呼叫服務器提供的API介面,由介面完成處理并回傳一個應答的程序,
常見介面型別還有:Webservice介面,http介面,jms介面,hessian介面、REST介面,
11、介面測驗用例撰寫的要點都包含哪些?
- 測驗每個引數型別不合法的情況(等價類)
- 測驗每個引數取值范圍不合法的情況(等價類)
- 測驗引數為空的情況(等價類)
- 測驗引數前后臺定義的一致性
- 測驗每個引數的上下限(邊界值)
- 如果兩個請求有嚴格的先后順序,需要測驗調轉順序的情況(引陣列合和順序)
- 介面引數有可選和必選情況的引陣列合測驗(引陣列合和順序)
12、介面測驗的基本步驟?
1)獲取請求報文資料
通過fiddler工具或者API介面檔案獲得請求報文引數,其中就包括請求方式(get、post、put等)、URL地址、請求的query string parameter以及請求的body資料,
2)借助工具模擬請求報文并發送
把第一步中獲得的引數,整理到jmeter、postman、soapui等介面引數工具中,模擬介面請求并發送該請求,
3)獲得回應結果
使用介面測驗工具發送請求后,會回傳回應報文,分析回應報文中的資料是否是符合要求的,
4)斷言:判斷實際結果是否與預期相同
在工具中也可以添加預設的斷言,在運行介面測驗后,會自動回傳介面是否實作正確,我們可以使用回應報文的回應狀態碼、回應的headers頭部或者回應的正文資料(html、json格式等)進行斷言,
13、HTTP協議的特點是什么?
1)HTTP是無連接
無連接的含義是限制每次連接只處理一個請求,服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接,采用這種方式可以節省傳輸時間,
2)HTTP是媒體獨立的
這意味著,只要客戶端和服務器知道如何處理的資料內容,任何型別的資料都可以通過HTTP發送,客戶端以及服務器指定使用適合的MIME-type內容型別,
3)HTTP是無狀態
HTTP協議是無狀態協議,無狀態是指協議對于事務處理沒有記憶能力,缺少狀態意味著如果后續處理需要前面的資訊,則它必須重傳,這樣可能導致每次連接傳送的資料量增大,另一方面,在服務器不需要先前資訊時它的應答就較快,
14、HTTP客戶端請求訊息包含哪幾部分?
客戶端發送一個HTTP請求到服務器的請求訊息包括以下格式:
- 請求行(request line)
- 請求頭部(header)
- 空行
- 請求資料

15、HTTP服務器回應訊息包含哪些資訊?
HTTP回應由四個部分組成,分別是:
- 狀態行
- 訊息報頭
- 空行
- 回應正文

16、常見的HTTP狀態碼
- 200 - 請求成功
- 301 - 資源(網頁等)被永久轉移到其它URL
- 404 - 請求的資源(網頁等)不存在
- 500 - 內部服務器錯誤
最后感謝每一個認真閱讀我文章的人,看著粉絲一路的上漲和關注,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對于【軟體測驗】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測驗工程師們走過最艱難的路程,希望也能幫助到你!
在我的QQ技術交流群里(技術交流和資源共享,廣告勿擾)
可以自助拿走,群號:175317069 群里的免費資料都是筆者十多年測驗生涯的精華,還有同行大神一起交流技術哦

碼字不易,如果此文章對你有幫助的話,點個贊收個藏,給作者一個鼓勵,也方便你下次能夠快速查找,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293119.html
標籤:其他
