熱門文章 (Popular Post)

顯示具有 JMeter 標籤的文章。 顯示所有文章

[Stress Test] JMeter Remote Test 遠端測試

By : Duran Hsieh

前言

在某些案例需求,可能需要不同區域主機對伺服器進行壓力測試;又或者是需要更嚴苛、更大的壓力測試案例,本身發出 Request 主機資源不足情況下,就非常需要遠端測試。

主要內容如下:
1. 基本介紹
2. GUI mode 遠端測試
3. Command line Mode (Non-GUI mode) 遠端測試
這篇文章將簡單說明如何使用JMeter 遠端控制數台 JMeter Server 同時對於目標伺服器進行測試,若有錯誤或任何建議,請各位先進不吝指教。


介紹

基本介紹

下圖為執行Remote test 示意圖,需要 1台 client 與數台 remote server,而這幾台電腦都必須安裝 JMeter。我們從 client 執行測試命令,而由數台 remote server 對目標伺服器進行測試。若你的遠端主機各執行500 thread,若有5台遠端主機,就是執行2500 thread。

[Stress Test] JMeter Command line mode and report dashboard 指令操作模式與報表儀表板

By : Duran Hsieh

前言

在過去製作許多小型專案或小型形象網站,通常部會持續高流量一段時間,做壓力測試往往不需要太過於嚴苛,透過圖形化介面的JMeter很快就能完成任務。近年來接觸到大型產品專案,需要測試服務負載極限,無法於圖形化介面執行測試案例(會當掉),而官網也強調:
Don't run load test using GUI mode !
此外,最近也持續在研究持續整合,嘗試將JMeter納入其中一環,命令執行是必要的,因此特別做一份筆記簡單紀錄 JMeter 命令執行的方法。本篇文章若有錯誤或任何建議,請各位先進不吝指教。


介紹

首先我們先介紹每個指令所代表意義:
-n:  讓 JMeter 於非圖形介面模式(non-gui mode)執行
-t:  執行計畫(plan)名稱,副檔名為JMX
-l:  執行結果(result)儲存名稱,副檔名為JTL,
-j:  執行紀錄(log)儲存名稱
-r:  執行遠端測試 (依據 JMeter prorerty "remote_hosts" 設定)
-R:  執行遠端測試 (特定主機,需要於命令給予伺服器清單)
-g:  產生報表儀表板,CSV檔案(儲存路徑)
-e:  負載測試後產生報表儀表板
-o:  輸出資料夾名稱,輸出資料為負載測試後產生報表儀表板 (這個資料夾不存在或內容必須為空)

我們測試案例如下圖:
執行計畫(test plan)

[Stress Test] JMeter Preprocessor and Postprocessor 前置處理器與後製處理器

By : Duran Hsieh

前言

前面幾篇我們介紹 JMeter 一些基本的知識與操作方式,這一篇我們將簡單介紹前置處理器(Pre Processor) 與後置處理器 (Post Processor),內容包含:
1. 基本介紹
2. 前置處理器
3. 後置處理器

前置處理器後置處理器在 JMeter 是非常方便的設定,可以應付多數情境需求,若熟悉這兩個設定,寫起腳本會更加得心應手,而在後置處理器部分 - XPath Extractor部分,我們使用Debug Sample方式印出所有資料,方便您除錯。本篇文章若有錯誤或任何建議,請各位先進不吝指教。

介紹

基本介紹

在許多壓力測試情境,我們常常需要在發出 HTTP Request 前後進行一些特別的處理,如下圖所示:

[Stress Test] JMeter BeanShell 介紹與撰寫

By : Duran Hsieh

前言

Beanshell 為一個輕量級 Java interpreter,可以完整 Java 語法動態執行、片段代碼執行。JMeter 功能已經相當齊全,但我們仍能透過 Beanshell 撰寫各種客製的前處理、取樣與後置處理,製作符合各種情境的腳本。如同撰寫 Java 應用程式,在JMeter內能匯入各種套件使用,我們也將介紹如何匯入 jar 檔,在Beanshell 撰寫進行簡易的 json 解析。本篇主要內容為:
1. BeanShell 取樣
2. JAR 匯入與使用
本篇文章若有錯誤或任何建議,請各位先進不吝指教,謝謝。



介紹

BeanShell 取樣

在 JMeter,我們能增加三種有關Beanshell 的操作,分別是 Beanshell 前置處理器、後置處理器與取樣。

在第三篇隨機資料的範例中,我們簡單介紹 Beanshell 內接收 variable 與 property,並且列印出結果。使用方式方別為:
Step 1. 於執行緒群組點選右鍵,新增 BeanShell 取樣


[Stress Test] JMeter Wait, Loop, and Random 等待、迴圈與隨機數

By : Duran Hsieh

前言

撰寫壓力測試腳本如同撰寫程式一樣,經常面臨對於某些測試行為進行延遲重複處理,也有機會遇到需要隨機數產生資料進行測試的情境。在這篇,我們將介紹如何於 JMeter 中撰寫 Wait, Loop, 與 Random 腳本,與前一篇 variable 與 property 結合,撰寫腳本將更得心應手。本篇文章若有任何錯誤或建議,請各位先進不吝指導,謝謝。


介紹

Wait :延遲

延遲部分可以分成 計時器(Timer)測試動作(Test Action),有不同的設定方法。

1. Timer (計時器):
在談計時器 (Timer) 之前,我們必須詳細閱讀官網說明,個人過去有過看到 Timer 很開心直接拿來用,最後壓測結果頗詭異,很久才發現有問題。
Note that timers are processed before each sampler in the scope in which they are found; if there are several timers in the same scope, all the timers will be processed before each sampler.
Timers are only processed in conjunction with a sampler. A timer which is not in the same scope as a sampler will not be processed at all.
To apply a timer to a single sampler, add the timer as a child element of the sampler. The timer will be applied before the sampler is executed. To apply a timer after a sampler, either add it to the next sampler, or add it as the child of a Test Action Sampler.
主要重點如下:
1. Timer 的執行會在取樣前執行,無論放在同一層,或當作 child 放在某個取樣底下。如下範例,雖然計時器放在 Step1 後面,執行結果仍是 停2秒 > 執行Step 1

[Stress Test] JMeter Function, Variables and Properties 變數與性質

By : Duran Hsieh

前言

前一篇我們簡單介紹 JMeter 操作作方式與設定一個腳本測試 ASP.NET Core 範例網站。在這一篇,要介紹幾個簡單卻在撰寫腳本過程中非常重要的元素 - Function, User Defined Variables, User ParametersProperties。如同寫程式方式,可以設定使用者變數提供後續測試工作(如 Http Request, Header, PreProcessor, 與PostProcessor)..等使用,理所當然,這些變數可以傳遞參數但也受到 scope 與 thread 影響。此外,在撰寫/修改腳本期間,使用這些自訂的變數,可以讓您不需要進入各個測試行為內一個一個修改,並增加腳本可讀性,相當實用。本篇文章若有任何錯誤或建議,請各位先進不吝指導,謝謝。


介紹

Function
JMeter 定義一些變數方便我們使用,個人常用到像是:
1. threadNum : 取得目前 thread 編號
2. machineIP : 取得本地執行機器 IP address
3. machineName : 取得本地執行機器名稱
4. time: 取得時間

而使用方法非常的簡單,無論在測試工作或者BeanShell,只需要${__RefName}即可使用:
${__threadNum}
${__machineIP}
其他變數請參考: http://jmeter.apache.org/usermanual/functions.html#functions

[Stress Test] JMeter Introduction 介紹與基本操作

By : Duran Hsieh

介紹

JMeter是一套 Java-based、開源的測試工具,能對於您的網站進行功能與壓力測試。支援豐富的通訊協定、前(後)置處理、腳本撰寫、報表呈現與使用者變數功能,讓測試人員能夠撰寫符合產品測試的情境,達到有效的測試。JMeter 操作介面容易,也提供錄製腳本的功能與結果報表,功能相當強大。本系列文章若有任何錯誤或建議,請各位先進不吝指導,謝謝。
本系列文章目錄如下(暫定,會更改):
  1. JMeter Introduction 介紹與基本操作
  2. JMeter Variables and Properties 變數與性質
  3. JMeter Wait, Loop, and Random 等待、迴圈與隨機數
  4. JMeter BeanShell 介紹與撰寫
  5. JMeter Preprocessor and  Postprocessor 前置處理器與後製處理器
  6. JMeter Command line mode and report dashboard 指令操作模式與報表儀表板
  7. JMeter Remote Test 遠端測試
  8. 附錄: JMeter Recording Controller 進階操作 錄製控制器
  9. 附錄: [IIS] Performance tunning for WebAPI
  10. JMeter An error occurred: Data exporter "html" is unable to export data

在這一篇,我們將簡單介紹如何使用JMeter,內容如下:
  1. 下載與安裝
  2. 第一個網站壓力測試腳本
  3. 設定報表
  4. 測試
本篇文章原為 2013年3月1日 JMeter 基本操作,於第八屆 IT邦幫忙鐵人賽重新撰寫,於2017年5月改寫作為 JMeter 系列文章內容之一。

下載與安裝

JMeter網站,點選 JMeter.zip 下載,並且解壓縮。

- Copyright © Duran Hsieh @ Matsurigoto - Date A Live - Powered by Blogger - Designed by Johanes Djogan -