HTTP超文本傳輸協議(HyperText Transfer Protocol)是互聯網上應用最為廣泛的一種網絡協議。所有的WWW文件都必須遵守這個標准。(詳情參考看一下百科)
HTTP發送請求有GET,POST,PUT, OPTION,HEAD,DELETE,TRACE,CONNECT 8種,目前來說最常見的是GET、POST和PUT請求,其他的比較少見。
1、GET:用於不修改數據僅向服務器獲取資源(比如我們常見的訪問某個網站首頁,進入某個頁面啊...基本都是用的GET請求方式)
2、POST:用於向服務器端提交數據並獲取服務器返回的處理結果(比如登錄某個網站,注冊提交等等一般都采用POST請求方式)
GET跟POST的區別:其實GET能做的POST方式也基本都能做,看你服務器端怎么處理。硬要說兩者的區別,兩者的最大區別在於,GET請求把所有請求參數都放在請求路勁里(比如 http://e.dangdang.com/classification_list_page.html?category=YXJJ&dimension=sale&order=0,后面的三個參數及值:category=YXJJ&dimension=sale&order=0都在路勁里)而POST則把參數放在BODY里提交,這樣做的好處主要有以下幾點:
A、GET請求參數放在路勁里 ,如果參數過多的那么會導致URL過長,而每種瀏覽器的URL長度都有各自的限制(比如chrome 8182字符 IE限制最長2083...)如果超過限制,那么請求就會失敗,而POST的話請求BODY里沒有這方面的限制;
B、GET請求參數放在路徑里任何人訪問網站一眼就能看到你的參數名參數值...這樣不安全,容易造成信息泄露,比如登錄請求,如果用GET,把用戶的密碼顯示在URL里,別人一眼就看到了
3、PUT:通常用於向服務器發送請求並也可以提交數據,PUT跟POST類似。
[OK 更多HTTP請求內容請參考百科]
咱們這里接着介紹如何使用jmeter來發送HTTP請求測試HTTP協議的接口吧。詳細步驟如下:
打開jmeter,右鍵測試計划,新建一個線程組:
右鍵線程組-->添加一個HTTP Sampler:
這里我們要測試的接口文檔假設如下:
1.HTTP接口1:jmeter測試http form表單參數的get請求
請求地址:http://api.nnzhp.cn/getuser
請求方式:GET
接口入參:userid(form表單參數)
返回格式:{"age": 18, "code": 200, "id": "1", "name": "小明"}
則jmeter配置如下:
OK,到此請求腳本就做好了,接下來添加一個監聽器 :查看結果樹,方便查看運行結果:
接下來再看另一個接口:
2.HTTP接口2 :jmeter測試http json入參的POST請求
請求地址:http://api.nnzhp.cn/getmoney
請求方式:POST
請求入參:userid(json)
返回格式:{'code':200,'userid':1,'money':1000}
jmeter中HTTP請求腳本配置如下:
運行結果如下:
再看一個接口:
3.HTTP 接口3:jmeter測試有header頭信息Content-Type application/json 的http請求
請求地址:http://api.nnzhp.cn/getuser2
請求方式:POST
請求頭:Content-Type: application/json
請求入參:userid
結果格式:{'code':200,id':1,'name':'小明','age':18}
jmeter請求配置如下:
寫好HTTP請求后右鍵-->添加一個配置元件 http請求頭:
填寫頭信息:
運行查看結果:
4.HTTP接口4:Jmeter測試帶cookie的http請求:
請求地址:http://api.nnzhp.cn/setmoney2
請求方法:POST
請求參數:userid money 表單參數 【需要添加cookie-->token=token12345】
返回格式:{'code':200,'success':'成功'}
腳本配置如下:
這里需要說明一下,cookie本身是放在http請求頭里傳送的,所以這里jmeter添加http請求的cookie時,直接把cookie放在HTTP信息頭管理器里:
查看運行結果:
5.Jmeter測試HTTP請求上傳文件:
請求地址:http://api.nnzhp.cn/uploadfile
請求方法:POS
請求參數:file (文件)
返回結果:{'code':200,'success':'成功'}
jmeter 腳本配置如下:
注意,使用jmeter上傳文件時,需要要選中:Use multipart/form-data for POST 或者就要在MIME類型里指定:multipart/form-data
查看運行結果:
OK,常見的HTTP請求腳本基本就這幾類了。