咱們常說的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請求中調用這個變量,以下圖,具體實如今《參數不斷變化的接口作性能測試》一文會提到。