# jmeter HTTP請求
啟動jmeter,建立一個測試計劃
這里再次說說怎么安裝和啟動jmeter吧,昨天下午又被人問到怎樣安裝和使用,我也是醉了;在我看來,百度能解決百分之八十的問題,特別是基礎的問題。。。
**安裝:**去官網下載一個安裝包,官網地址:jmeter.apache.org(Windows系統下載.zip包,Linux系統下載.tgz包)
**環境:**jmeter是一個純java工具,因此,JDK必不可少,現在最新版的jmeter是3.1,做了很多的優化,建議使用1.7及以上的JDK
? ? ?JDK版本請注意和操作系統吻合,下載后默認安裝,一般不需要修改環境變量
**啟動:**打開jmeter文件夾,bin文件→jmeter.bat(Windows執行文件)文件,就可以啟動jmeter了
啟動jmeter,默認有一個測試計劃,然后,修改計劃名稱,盡量使其變得有意義,容易看懂,然后,新建一個線程組

這里線程數我設置為1,方便演示

然后,添加一個http信息頭管理器

這里解釋一下為什么要添加http信息頭管理器:
JMeter不是瀏覽器,因此其行為并不和瀏覽器完全一致。這些JMeter提供的配置元件中的HTTP屬性管理器用于盡可能模擬瀏覽器行為,在HTTP協議層上發送給被測應用的http請求
**(1)HTTP Request Defaults(請求默認值)**
? ? 用于設置其作用范圍內的所有HTTP的默認值,可被設置的內容包括HTTP請求的host、端口、協議等
**(2)HTTP Authorization Manager(授權管理器)**
? ? 用于設置自動對一些需要NTLM驗證的頁面進行認證和登錄
**(3)HTTP Cache Manager**
? ? 用于模擬瀏覽器的Cache行為。為Test Plan增加該屬性管理器后,Test Plan運行過程中會使用Last-Modified、ETag和Expired等決定是否從Cache中獲取相應的元素
**(4)HTTP Cookie Manager(cookie管理器)**
? ? 用于管理Test Plan運行時的所有Cookie。HTTP Cookie Manager可以自動儲存服務器發送給客戶端的所有Cookie,并在發送請求時附加上合適的Cookie
? ? 同時,用戶也可以在HTTP Cookie Manager中手工添加一些Cookie,這些被手工添加的Cookie會在發送請求時被自動附加到請求
**(5)HTTP Header Manager(信息頭管理器)**
? ? 用于定制Sampler發出的HTTP請求的請求頭的內容。不同的瀏覽器發出的HTTP請求具有不同的Agent
? ? 訪問某些有防盜鏈的頁面時需要正確的Refer...這些情況下都需要通過HTTP Header Manager來保證發送的HTTP請求是正確的
http信息頭管理器添加好之后,需要填入信息頭的名稱以及對應的值,如下

Content-Type意思可以理解為參數名稱、類型,值下面輸入對應的參數類型就行了,這里我測試時候需要傳輸json類型,因此就填入了application/json
接著,添加Sampler(取樣器)→http請求

按照截圖所示,填入測試的服務器地址、端口、所用的戶協議、方法,這里方法我用的是POST,然后填入路徑,選擇Body Data;
**關于http請求的的屬性參數說明:**
**1)名稱:**用于標識一個sample。建議使用一個有意義的名稱
**2)注釋:**對于測試沒任何影響,僅用來記錄用戶可讀的注釋信息
**3)服務器名稱或IP:**http請求發送的目標服務器名稱或者IP地址,比如http://www.baidu.com
**4)端口號:**目標服務器的端口號,默認值為80,可不填
**5)協議:**向目標服務器發送http請求時的協議,http/https,大小寫不敏感,默認http
**6)方法:**發送http請求的方法(鏈接:http://www.cnblogs.com/imyalost/p/5630940.html)
**7)Content encoding:**內容的編碼方式(Content-Type=application/json;charset=utf-8)
**8)路徑:**目標的URL路徑(不包括服務器地址和端口)
**9)自動重定向:**如果選中該項,發出的http請求得到響應是301/302,jmeter會重定向到新的界面
**10)Use keep Alive:**jmeter 和目標服務器之間使用 Keep-Alive方式進行HTTP通信(默認選中)
**11)Use multipart/from-data for HTTP POST :**當發送HTTP POST 請求時,使用
**12)Parameters、Body Data以及Files Upload的區別:**
**? ?1.**parameter是指函數定義中參數,而argument指的是函數調用時的實際參數
**? ?2.**簡略描述為:parameter=形參(formal parameter), argument=實參(actual parameter)
`**? 3.**在不很嚴格的情況下,現在二者可以混用,一般用argument,而parameter則比較少用
`
? ?While defining method, variables passed in the method are called parameters.
? ?當定義方法時,傳遞到方法中的變量稱為參數.
? ?While using those methods, values passed to those variables are called arguments.
? ?當調用方法時,傳給變量的值稱為引數.(有時argument被翻譯為“引數“)
**? ?4、**Body Data指的是實體數據,就是請求報文里面主體實體的內容,一般我們向服務器發送請求,攜帶的實體主體參數,可以寫入這里
**? ?5、**Files Upload指的是:從HTML文件獲取所有有內含的資源:被選中時,發出HTTP請求并獲得響應的HTML文件內容后還對該HTML
? ? ? 進行Parse 并獲取HTML中包含的所有資源(圖片、flash等):(默認不選中)
? ? ? 如果用戶只希望獲取特定資源,可以在下方的Embedded URLs must match 文本框中填入需要下載的特定資源表達式,只有能匹配指定正則表達式的URL指向資源會被下載
接下來可以給這個測試計劃添加一個監視器,常用的監視器有“查看結果樹”和“聚合報告”
添加好監視器,點擊運行,開始測試

如上,測試結束后,如果我們的請求成功發送給服務器,那么結果樹里面的模擬請求會顯示為綠色,可以通過取樣器結果里面的響應狀態碼信息來判斷
也可以點擊請求模塊,查看我們發送的請求

里面有我們發送的請求的方法、協議、地址以及實體主體數據,以及數據類型,大小,發送時間,客戶端版本等信息
響應數據:里面包含服務器返回給我們的響應數據實體,如下圖
- 第一章-測試理論
- 1.1軟件測試的概念
- 1.2測試的分類
- 1.3軟件測試的流程
- 1.4黑盒測試的方法
- 1.5AxureRP的使用
- 1.6xmind,截圖工具的使用
- 1.7測試計劃
- 1.8測試用例
- 1.9測試報告
- 2.0 正交表附錄
- 第二章-缺陷管理工具
- 2.1缺陷的內容
- 2.2書寫規范
- 2.3缺陷的優先級
- 2.4缺陷的生命周期
- 2.5缺陷管理工具簡介
- 2.6缺陷管理工具部署及使用
- 2.7軟件測試基礎面試
- 第三章-數據庫
- 3.1 SQL Server簡介及安裝
- 3.2 SQL Server示例數據庫
- 3.3 SQL Server 加載示例
- 3.3 SQL Server 中的數據類型
- 3.4 SQL Server 數據定義語言DDL
- 3.5 SQL Server 修改數據
- 3.6 SQL Server 查詢數據
- 3.7 SQL Server 連表
- 3.8 SQL Server 數據分組
- 3.9 SQL Server 子查詢
- 3.10.1 SQL Server 集合操作符
- 3.10.2 SQL Server聚合函數
- 3.10.3 SQL Server 日期函數
- 3.10.4 SQL Server 字符串函數
- 第四章-linux
- 第五章-接口測試
- 5.1 postman 接口測試簡介
- 5.2 postman 安裝
- 5.3 postman 創建請求及發送請求
- 5.4 postman 菜單及設置
- 5.5 postman New菜單功能介紹
- 5.6 postman 常用的斷言
- 5.7 請求前腳本
- 5.8 fiddler網絡基礎及fiddler簡介
- 5.9 fiddler原理及使用
- 5.10 fiddler 實例
- 5.11 Ant 介紹
- 5.12 Ant 環境搭建
- 5.13 Jmeter 簡介
- 5.14 Jmeter 環境搭建
- 5.15 jmeter 初識
- 5.16 jmeter SOAP/XML-RPC Request
- 5.17 jmeter HTTP請求
- 5.18 jmeter JDBC Request
- 5.19 jmeter元件的作用域與執行順序
- 5.20 jmeter 定時器
- 5.21 jmeter 斷言
- 5.22 jmeter 邏輯控制器
- 5.23 jmeter 常用函數
- 5.24 soapUI概述
- 5.25 SoapUI 斷言
- 5.26 soapUI數據源及參數化
- 5.27 SoapUI模擬REST MockService
- 5.28 Jenkins的部署與配置
- 5.29 Jmeter+Ant+Jenkins 搭建
- 5.30 jmeter腳本錄制
- 5.31 badboy常見的問題
- 第六章-性能測試
- 6.1 性能測試理論
- 6.2 性能測試及LoadRunner簡介
- 第七章-UI自動化
- 第八章-Maven
- 第九章-測試框架
- 第十章-移動測試
- 10.1 移動測試點及測試流程
- 10.2 移動測試分類及特點
- 10.3 ADB命令及Monkey使用
- 10.4 MonkeyRunner使用
- 10.5 appium工作原理及使用
- 10.6 Appium環境搭建(Java版)
- 10.7 Appium常用函數(Java版)
- 10.8 Appium常用函數(Python版)
- 10.9 兼容性測試