接口測試的工具有很多,之前在另外一篇文章中寫過用 Postman 做接口測試的 http://m.itdecent.cn/p/fdfbf790927a,這次我們來學(xué)習(xí)用另外一個工具 JMeter 來做一個簡單的接口測試。
1、獲取 API 信息
API的方法:GET
API的URL:https://api.seniverse.com/v3/weather/now.json
API的參數(shù):
-
請求參數(shù):
參數(shù)名 參數(shù)類型 參數(shù)意義 是否必選 key string 你的API密鑰 (需要自主到心知天氣平臺獲取) true location string 查詢的地理位置 true language string 結(jié)果表示的語言 false,默認(rèn)簡體中文 unit string 結(jié)果表示的單位(華氏度,攝氏度) false,默認(rèn)攝氏度 location 參數(shù)值范圍:
代理位置有世界各地的,可以參考一份數(shù)據(jù)文檔,鏈接:https://pan.baidu.com/s/1_LTRGVI799L-sfZyWbbIPA 密碼:gk3t
language 參數(shù)值范圍:
zh-Hans簡體中文zh-Hant繁體中文en英文ja日語de德語fr法語es西班牙語pt葡萄牙語hi印地語(印度官方語言之一)id印度尼西亞語ru俄語th泰語ar阿拉伯語默認(rèn)值:
zh-Hans
unit 參數(shù)值范圍:
當(dāng)unit為c時
返回值 單位 溫度 c(攝氏度) 風(fēng)速 km/h(千米每小時) 能見度 km(千米) 氣壓 mb(百帕) 當(dāng)unit為f時
返回值 單位 溫度 f(華氏度) 風(fēng)速 mph(英里每小時) 能見度 mi(英里) 氣壓 in(英寸) -
響應(yīng)參數(shù):
參數(shù)名 參數(shù)類型 參數(shù)意義 location 對象:包括id, name, country, path,timezone, timezone_offset now 對象:包括 text,code, temperature last_update 日期 示例:
{ "results": [ { "location": { "id": "WS10730EM8EV", "name": "深圳", "country": "CN", "path": "深圳,深圳,廣東,中國", "timezone": "Asia/Shanghai", "timezone_offset": "+08:00" }, "now": { "text": "多云", "code": "4", "temperature": "29" }, "last_update": "2018-09-04T19:20:00+08:00" } ] }
2、編寫用例腳本
首先在 JMeter 的線程組下創(chuàng)建一個 HTTP 請求測試腳本,把 API 的信息填寫完整。

3、運(yùn)行用例腳本
然后在線程組下添加監(jiān)聽器--察看結(jié)果樹,運(yùn)行用例腳本。

從上面的響應(yīng)數(shù)據(jù)可以看到服務(wù)器成功返回了相對應(yīng)的天氣結(jié)果。
4、用例斷言
返回響應(yīng)數(shù)據(jù)后,接著對用例編寫一個斷言判斷測試是否通過。下面我們以斷言城市名稱 name 參數(shù)為例對這個測試用例添加一個斷言。
4.1 編寫斷言
斷言的方式有很多,平時測試可以根據(jù)自己的需要選擇不同的斷言方式。

這里我們選擇 JSON Assertion 的方式,在請求下添加一個 JSON Assertion 斷言。

這里有幾個配置項(xiàng)要設(shè)置一下:
Assert JSON Path exists:要斷言的 JSON 元素路徑。其中請求響應(yīng)數(shù)據(jù)的 JSON 對象換成了別名$, 路徑的寫法有2種,一種是$.results[0].location.name ,另外一種是$['results'][0]['location']['name'] 。
Additionally assert value:如果想讓斷言具有某些值,勾選復(fù)選框,這里我們勾選上。
Expected Value:斷言的值 。這里寫上期望的 name 值:深圳。
最后,在腳本下添加一個監(jiān)聽器--斷言結(jié)果來監(jiān)聽斷言的結(jié)果情況。
4.2 查看斷言結(jié)果
添加斷言后,再次運(yùn)行一次用例腳本。


從上圖可以看出斷言通過了。
為了看斷言失敗的效果,故意改錯請求中的 location 參數(shù)值。

再發(fā)送一次請求。


這次可以看到用例斷言失敗了。
以上就是一個用 JMeter 工具做接口測試的簡單例子,希望對初學(xué)者有用。