接口測試、概念及常用方法小結


       1.接口的概念從IT的角度出發,主要是子模塊或者子系統間交互並相互作用的部分。從形式上來看各種應用程序的API(最著名的Windows 系統的API),硬件的驅動程序,數據庫系統的訪問接口,再到后來的Webservice接口,http rest接口。雖然接口的形式各有不同,但是從測試角度來說,需要測試的內容大致是相同的,功能,性能,安全。

  我們常說的api就是接口的意思,現在常用的 web項目,app項目的接口都是基於http請求的,有些系統內部之間調用的接口一般不需要我們測試,這些很多是基於jar包那種類型的接口,只了解到這就差不多了。
  接口類型常見的有get,post,put...類型。get類型的接口一般是指獲取信息的接口,比如列表查詢的功能,點擊查詢按鈕就調用一個get接口,然后把信息返回出來。就是指把內容從服務器拉下來。
  post類型一般是提交表單的功能,比如注冊、上傳、發布帖子之類的就是post接口。就是指把內容推到服務器上去。
   接口測試的策略:接口測試屬於 功能測試,也可以看做是需要了解部分代碼的灰盒測試。測試流程是:1測試接口文檔。2.根據接口文檔編寫 測試用例(用例編寫方法完全可以按照 黑盒測試的用例編寫規則來編寫,如:邊界值、正交表等等設計方法)。3.執行測試,查看接口返回的接口數據是否正確,主要檢查返回的接口是否和接口文檔中定義的一樣,還有要檢查返回的數據是否和 數據庫中的保持一致。
   eg1.https://api.douban.com/v2/book/search?q='', 這是一個豆瓣的查詢書籍信息的開放的api,是一個get型接口。q='',單引號里就是查詢的參數,這里給參數為《百年孤獨》,然后在 瀏覽器中訪問下面地址:https://api.douban.com/v2/book/search?q='百年孤獨', 返回的就是接口信息。返回信息如下:
  內容很多,是一個json字符串。可以把所有東西復制下來,用在線解析的站點:json.cn這個網站中解析出來就很好看了。如圖:
  右邊就是解析出來的格式,就是一個json字符串中嵌套了一個名叫books的數組。我們測試的時候就是根據接口文檔,查看返回的這些數據是否是我們預期,判斷這些數據是否是預期一般還需要了解項目的數據庫,然后根據條件查詢數據庫,看接口返回的數據和數據庫中查出來的是否一致。
   eg2.get型的接口可以直接通過瀏覽器訪問,參數就帶在地址的后面以‘?’連接。但是post的就不行了,要用專門的工具來測試,常用的推薦jmeter和soapUI。
  首先查看接口文檔:
  根據接口文檔可知,該接口實現一個更新用戶昵稱的功能,由此可以開始設計測試用例。userId和ickName均不為空,測試輸入類型,測試更新成功后再數據庫中是否同步更新。jemter中操作如下圖:
  圖一
  
圖二
  第一張圖片的設置content-type為application/json是因為接口文檔中要求如此。如果沒要求,可以不用添加HTTP信息頭管理器。因為要求的是json格式的傳參,所以post的參數要在(圖二)body Data中以json格式書寫。
  eg3復雜格式的post接口:實際項目中,經常會遇到上傳文件,發布圖片等接口,測這種接口時上傳的參數往往是一個文件或者圖片,所以在jmeter中傳參就要用另一種方式。如下圖所示:
 
 

圖三
  由圖三的接口文檔查看需要請求的參數,在定義接口文檔時開發人員會給出該接口的請求格式是什么,即content-type。此處為content-type:multipart/form-data。 這種格式的不用在HTTP信息頭中單獨定義content-type。直接把參數放在Parameters中,要上傳的參數放在下面“通請求一起發送文件”里面瀏覽上傳符合格式要求的文件。
   eg3.還有一些需要特殊處理得接口,比如一個增加積分的接口,由於業務需要,每次請求都要生成不同的簽名作為請求參數。這種接口可以用beanshell來處理生成簽名的邏輯,將生成的簽名定義成一個變量,然后在http請求中調用這個變量,如下圖,具體實現在《參數不斷變化的接口做性能測試》一文會提到。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM