Jmeter的安裝部署以及錄製腳本




學習目標

1.Jmeter環境搭建

2.Jmeter元件介紹

3.Jmeter的作用域

4.JMeter執行順序

5.使用JMeter錄製並回放腳本



我的環境:win7 64位 JDK:jdk-8u191-windows-i586
                                   JMeter:apache-jmeter-5.0


JMeter環境搭建

安裝java依賴環境

        JDK下載:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

        配置java環境地址:https://jingyan.baidu.com/article/9f63fb91d87fb0c8400f0e93.html

校驗

        cmd命令 --- java -version

運行

         jmeter官網:http://jmeter.apache.org/download_jmeter.cgi    

        進入...\apache-jmeter-3.2\bin\解壓目錄,雙擊ApacheJMeter.jar啓動(注:一定要配置Java環境)


JMeter中組件中的常見的元件介紹

測試計劃與線程組不屬於元件

取樣器

取樣器(Sample)是性能測試中向服務器發送請求,記錄響應信息,記錄響應時間的最小單元,JMeter原生支持多種不同的sampler ,如 HTTP Request Sampler 、 FTP Request Sample 、TCP Request Sample 、JDBC Request Sampler 等,每一種不同類型的 sampler 可以根據設置的參數向服務器發出不同類型的請求。

邏輯控制器

邏輯控制器,包括兩類無件,一類是用於控制測試計劃(test plan) 中 取樣器(sampler) 節點發送請求的邏輯順序的控制器,常用的有 如果(If)控制器 、switch Controller 、Runtime Controller、循環控制器等。另一類是用來組織可控制 sampler 來節點的,如 事務控制器、吞吐量控制器。。

配置元件

配置元件(config element)用於提供對靜態數據配置的支持。CSV Data Set config 可以將本地數據文件形成數據池(Data Pool),而對應於HTTP Request Sampler和 TCP Request Sampler等類型的配製元件則可以修改Sampler的默認數據。(例如,HTTP Cookie Manager 可以用於對 HTTP Request Sampler 的 cookie 進行管理)

監聽器

這個監聽器可不是用來監聽系統資源的元件。它是用來對測試結果數據進行處理和可視化展示的一系列元件。 圖形結果、察看結果樹、聚合報告等都是我們經常用到的元件。

定時器

定時器(Timer)用於操作之間設置等待時間,等待時間是性能測試中常用的控制客戶端QPS的手段。類似於LoadRunner裏面的“思考時間”。JMeter 定義了Bean Shell Timer、Constant Throughput Timer、固定定時器等不同類型的Timer。

前置處理器

用於在實際的請求發出之前對即將發出的請求進行特殊處理。例如,HTTP URL重寫修飾符則可以實現URL重寫,當RUL中有sessionID 一類的session信息時,可以通過該處理器填充發出請求的實際的SessionID 

後置處理器

用於對 Sampler 發出請求後得到的服務器響應進行處理。一般用來提取響應中的特定數據(類似LoadRunner測試工具中的關聯概念)。例如,XPath Extractor 則可以用於提取響應數據中通過給定XPath值獲得的數據

斷言

斷言用於檢查測試中得到的相應數據等是否符合預期,斷言一般用來設置檢查點,用以保證性能測試過程中的數據交互是否與預期一致。


JMeter的作用域

JMeter中共有8類可被執行的元件(測試計劃與線程組不屬於元件),這些元件中,取樣器是典型的不與其它元件發生交互作用的元件,邏輯控制器只對其子節點的取樣器有效,而其它元件(配置元件 、定時器 、後置處理器、斷言、監聽器、)需要與取樣器(sampler)等元件交互。我們從各個元件的層次結構就可以判斷每個元件的作用域。

採樣器

採樣器會按照其在測試樹中的順序去執行,還可以用邏輯控制器來改變採樣器運行的重複次數。

邏輯控制器

邏輯控制器可以改變其子測試元件的請求執行順序。

監聽器

監聽器可以在測試的任何地方添加,包括直接放在測試計劃之下。它們僅收集測試樹中相同或者更低級別測試元件的數據。

定時器

定時器會讓作用域內的每一個採樣器都在執行前等待一個固定時長。如果測試人員爲線程組添加了多個定時器,那麼JMeter會將這些定時器的時長疊加起來,共同影響作用域範圍內的採樣器。定時器可以作爲採樣器或者邏輯控制器的子項,目的是隻影響作用域內的採樣器。

斷言

斷言會影響作用域內的所有采樣器。如果要讓斷言隻影響某個採樣器,需要將斷言作爲該採樣器的子項

配置元件

配置元件僅對其所在的測試樹分支有效。例如,假設測試人員在一個簡單邏輯控制器中放置了一個HTTP Cookie管理器,那麼該HTTP Cookie管理器只對放置在簡單邏輯控制器內的其他邏輯控制器生效。

前置處理器

前置處理器通常用於在採樣器發出請求前修改採樣器的某些設置,或者更新某些變量的值(這些變量不在服務器響應中獲取值)。

後置處理器

如果後置處理器附着在某個採樣器之下,那麼它只會在該採樣器運行之後執行。後置處理器通常被用來處理服務器的響應數據,特別是服務器響應中提取數據。


Jmeter的執行順序

配置元件(config elements ) --- 前置處理器(Per-processors) --- 定時器(timers ) --- 取樣器(Sampler) --- 後置處理器(Post-processors) --- 斷言 (Assertions)--- 監聽器(Listeners)

注意:

前置處理器、後置處理器和斷言等元件只能對 取樣器作用,因此,如果在它們的作用域內沒有任何取樣器,則不會被執行。

如果在同一作用域範圍內有多個同一類型的元件,則這些元件按照它們在測試計劃中的上下順序一次執行。

一個斷言在測試樹中是分等級的。如果它的父元件是請求,它就被應用於那個請求。如果它的父元件是控制器,它就影響所有那個控制器下的所有請求。

使用JMeter創建一個簡單的性能測試


JMeter錄製腳本並回放

1.新建線程組

       新建線程組以及重要的屬性解釋

2.新建HTTP Cookie管理器

3.新建HTTP代理服務器

              netstat -an使用這個命令查看已用的端口號,這裏填寫的端口號必須是唯一的

包含和排除模式

包含模式

包含模式可以寫爲:.*服務器地址.* 例如:".*192\.168\.1\.100.*"

排除模式

.*\.js.*|.*\.css.*|.*\.jpg.*|.*\.jpeg.*|.*\.gif.*|.*\.png.*|.*\.bmp.*

4.設置代理服務器

如果被測的客戶端是PC機,如圖下設置代理


地址:該處填寫Jmeter代理服務器所在的機器的IP。(如果jmeter代理服務器和客戶端在同一臺電腦上,則該處可以填寫localhost。)

端口:該處填寫Jmeter代理服務器所配置的端口。

win7 設置代理

5.執行操作

如果客戶端與被測服務器是同一臺電腦,訪問時不要使用localhost,應該使用ip地址,否則代理不生效

6.關閉連接

JMeter停止代理服務器

還原客戶端的代理設置,否則客戶端無法訪問外網。


我碰見的問題

1.問題如下:


解決:

      蠢!!!!是JMeter5.0的新特性

     錄製特性增加了一個始終在頂部的彈出框,當你在瀏覽器中操作時,可以命名你的事務。

2.響應數據亂碼

解決:

1:指定請求節點下,新建後置控制器"BeanShell PostProcessor"

2:其腳本框中輸入:prev.setDataEncoding("UTF-8");

3:保存

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章