詳解 HTTP Request
HTTP Request 介紹
用來發送 HTTP、HTTPS 協議請求
HTTP Request 界面

| 字段名 | 作用 |
|---|---|
| 名稱 | 不多介紹啦,建議自定義一個識別度高的名稱 |
| 注釋 | 對於測試沒有任何影響,僅記錄作用 |
| 協議 | http或https,大小寫不敏感****默認:http |
| 服務器名稱或IP | 服務器 host 或者 ip,不包括協議****比如:www.baidu.com、192.168.196.128 |
| 端口號 | 目標服務器的端口號,默認:80 |
| 方法 | 發送 http 請求的方法 |
| 路徑 | 目標請求的 URL 路徑不包括協議、host、ip、端口 |
| 內容編碼 | 請求的編碼方式,默認:iso8859 |
| 自動重定向 | 發出的請求的響應碼是3**,會自動跳轉到新目標頁面只記錄最終頁面的返回結果 |
| 跟隨重定向 | 和自動重定向唯一不同的是:會記錄重定向過程中的的所有請求的響應結果 |
| 使用 KeepAlive | jmeter 和目標服務器之間使用 Keep-Alive 方式進行 HTTP 通信真正做性能測試強烈建議不勾選 |
| 對POST使用multipart/form-data | post 請求需要上傳文件時勾選 |
| 與瀏覽器兼容的頭 | 當勾選 multipart/form-data 時,勾選此項http請求頭中的 Content-Type 和Content-Transfer-Encoding 被忽略而只發送 Content-Disposition 部分 |
Parameters 講解

| 字段 | 描述 |
|---|---|
| Name | 參數名 |
| Value | 參數值 |
| URL Encode? | 是否要 URL 編碼?重點:如果參數值包含了中文、特殊字符(非數字字母以外),最好勾上,當然全都勾上最穩妥 |
| Content-Type | 參數值的資源類型默認:text/plain |
| Include Equals? | 當你的參數值為空的時候,可以選擇不包含=,默認勾選如果參數值不為空,則不可以取消勾選 |
什么是 URL 編碼
- URL 編碼解碼,又叫百分號編碼,是統一資源定位(URL)的編碼方式
- URL 地址(常說網址)規定了數字,字母可以直接使用,另外一批作為特殊用戶字符也可以直接用( / , : @ 等),剩下的其它所有字符必須通過 %xx 編碼處理
- 編碼方法很簡單,在該字符ascii碼的的16進制字符前面加%,如空格字符,ascii碼是32,對應16進制是20,那么 urlencode 編碼結果是 %20
URL 編碼的栗子
直接在網上搜在線 URL 編解碼


include equals 的栗子
參數值為空,且勾選 Include equals

參數值為空,但不勾選 Include equals

其實說的就是等於號而已,一般也不會傳空值,即使傳了也會帶上=
Body Data 講解

- 沒啥好說的,傳 json 字符串就行了,注意下格式,后面再講具體栗子
- 不過倒有個重點:如果 Parameters 有參數列表的話,是無法切換到 Body Data 的哦
Files Upload 講解

| 字段 | 描述 |
|---|---|
| File Path | 文件的本地路徑 |
| Parameter Name | 參數名 |
| MIME Type | 資源媒體類型 |
常見資源媒體類型
| 類型 | 文件后綴 | 格式 |
|---|---|---|
| 超文本標記語言文本 | .html | text/html |
| 普通文本 | .txt | text/plain |
| XML 文件 | .xml | text/xml |
| PNG 圖片 | .png | image/png |
| GIF | .gif | image/gif |
| JPEG 圖片 | .jpeg、jpg | image/jpeg |
| 類型 | 文件后綴 | 格式 |
|---|---|---|
| 表單中進行文件上傳 | multipart/form-data | |
| 表單默認提交數據的格式 | application/x-www-form-urlencoded | |
| XML 數據格式 | application/xml | |
| JSON 數據格式 | application/json | |
| PDF 文件 | application/pdf | |
| RTF 文本 | .rtf | application/rtf |
| GZIP 文件 | .gz | application/x-gzip |
| TAR 文件 | .tar | application/x-tar |
| AVI 文件 | .avi | video/x-msvideo |
| MPEG 文件 | .mpg、.mpeg | video/mpeg |
不同的content-type在jmeter中如何輸入參數
前提
因為是需要真實接口進行測試的,這里提供兩種方案
- 自己在本地有一套測試開源項目
application/x-www-form-urlencoded 的栗子
備注:也是表單提交最常見的栗子
Parameters 方式傳參

總結
- 最終表單的參數列表會拼接到 URL 中,所以如果包含了中文、特殊字符就要勾選編碼?哦
- 這里不可以通過 Body Data 傳遞參數哦,會無法識別到參數,已實踐過(即使加了 HTTP請求頭也不行),乖乖用 Parameters 的方式傳參
content-type:application/json 的栗子
Body Data 方式傳參
請求體

content-type:multipart/form-data
重點:用於 post 請求,需要文件上傳的場景;記住不是 get 請求
文件參數

請求體

重點
- 如果添加了 HTTP請求頭,請務必不要添加 content-type : multipart/form-data
- 如果加了的話:那么所有的請求參數都會被當成文件以二進制形式傳輸,我們 parameters 里的文本格式參數就不會被識別,接口會提示參數為空
HTTP Request Advance
說實話我還沒用過這部分的內容,不過還是得了解下每個配置項是什么意思哦

Client implemention 和 Timeouts
| 字段 | 描述 |
|---|---|
| implementation | 發送http請求的方式,可選項為 java、HttpClient4(默認) |
| Connect | 連接超時時間,單位毫秒 |
| Respones | 響應等待超時時間,單位毫秒 |
Embedded Resources from HTML Files
- 從HTML文件獲取所有內含的資源
- jmeter 在發出的 HTTP請求獲得響應的 HTML文件內容后,對 HTML進行解析並獲取HTML中包含的所有資源(圖片、flash等)
| 字段 | 描述 |
|---|---|
| Retrieve All Embedded Resources | 發送http請求的方式,可選項為 java、HttpClient4(默認) |
| Parallel downloadds. Number | 是否使用自設資源處。啟用后可以設置資源池大小,默認為6 |
| URLs must match | URL 匹配過濾,填寫此項則只會下載與此內容項匹配的 url 的資源 |
Source address
只用於 HTTP協議且 implemention = HttpClient4 時
| 字段 | 描述 |
|---|---|
| IP/Hostname | IP /主機名以使用特定的IP地址或(本地)主機名 |
| Device | 選擇設備以選擇該接口的第一個可用地址,該設備可以是IPv4或IPv6 |
| Device IPv4 | 選擇IPv4設備來選擇名稱設備的IPv4地址(如eth0, lo, em0) |
| Device IPv6 | 選擇IPv6設備來選擇名稱設備的IPv6地址(如eth0, lo, em0) |
Proxy Server
代理服務器
| 字段 | 描述 |
|---|---|
| Server Name or IP | 代理服務器的名稱或者IP地址 |
| Port Number | 代理服務器的端口號 |
| Username | 代理服務器的用戶名 |
| Password | 代理服務器的密碼 |
