詳解 HTTP Request


詳解 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 文件 .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 代理服務器的密碼


免責聲明!

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



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