分布式壓測系列之Jmeter4.0第一季

1)Jmeter4.0介紹

jmeter是個純java編寫的開源壓測工具,apache旗下的開源軟件,一開始是設計為web測試的軟件,由于發展迅猛,現在可以壓測許多協議比如:http、https、soap、ftp、database數據庫、LDAP? 輕量目錄訪問協議、TCP、SOMP(簡單郵件協議)等,由于是純java編寫,可以在蘋果、window或者Linux下運行,全功能的測試IDE,允許快速的建立測試計劃(從瀏覽器或本地應用程序,官網地址:http://jmeter.apache.org),Jmeter是一個中高級開發或者測試人員都必須掌握的一個工具。

目前用的常用測試工具對比:

1、loadrunner:性能穩定,壓測結果及細粒度大,可以自定義腳本進行壓測,但是太過于重大,功能比較繁多
2、apache ab(單接口壓測最方便):模擬多線程并發請求,ab命令對發出負載的計算機要求很低,既不會占用很多CPU,也不會占用太多的內存,但卻會給目標服務器造成巨大的負載, 簡單DDOS攻擊等
3、webbench:webbench首先fork出多個子進程,每個子進程都循環做web訪問測試。子進程把訪問的結果通過pipe告訴父進程,父進程做最終的統計結果

 

2)特點

  • 提供GUI圖形界面和非GUI界面進行壓測,在windows下面進行開發測試壓測腳本,然后直接在linux上執行
  • 可以提供完整的動態HTML壓測報告
  • 純java編寫,一次編寫,四處壓測
  • 多線程框架允許通過多個線程同時進行采樣壓測,并通過單獨的線程組同時采樣不同的功能
  • 提供高度可擴展的功能,自定義插件:
  • 提供函數可用于為測試提供動態輸入或提供數據操作。
  • 通過Maven,Graddle和Jenkins的第三方開源庫輕松持續集成

3)準備工作

需要安裝java運行環境,建議安裝JDK環境,雖然JRE也可以,但是壓測https需要JDK里面的 keytool工具;
新版本Jmeter4.0,需要JDK8以上版本,JDK9或者JDK10都可以;并配置好JDK環境(這里就不講配置JDK環境了)
下載對應的Jmeter4.0版本并解壓(官網地址:http://jmeter.apache.org/)
windows系統: http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.zip
Mac或者Linux:http://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-4.0.tgz

 
bin:核心可執行文件,包含配置jmeter.bat: windows啟動文件:jmeter: mac或者linux啟動文件:jmeter-server:mac或者Liunx分布式壓測使用的啟動文件jmeter-server.bat:mac或者Liunx分布式壓測使用的啟動文件jmeter.properties: 核心配置文件examples:壓測腳本文件JMX和動態讀取csv參數文件案例result—template:可視化HTMLtemplate:JMX的模板文件docs:Jmeter的API文檔
extras:插件拓展的包
lib:核心的依賴包
ext:核心包
junit:單元測試包

5)Jmeter核心組件介紹

?

什么是測試計劃(Test plan)?

? ? 就是壓測的一個流程,比如壓測什么接口,并發多少用戶,協議等等,在測試計劃下面配置線程組,采樣器,監聽器等組件

什么是線程組(Thread Group)?

線程組就是模擬多少用戶并發訪問你的應用,這個組里面共有多少用戶,創建方法如上圖現在“添加->threads->線程組“參數說明:線程數:虛擬用戶數。一個虛擬用戶占用一個進程或線程			準備時長(Ramp-Up Period(in seconds)):全部線程啟動的時長,比如100個線程,20秒,則表示20秒內100個線程都要啟動完成,每秒啟動5個線程			循環次數:每個線程發送的次數,假如值為5,100個線程,則會發送500次請求,可以勾選永遠循環

 

什么是采樣器(Sampler)?

真正干活的組件,采樣器里面配置你要壓測的接口,協議,參數等
可以創建各種采樣器,如Http請求,FTP請求,JDBC壓測數據庫請求,JMS等,對應的采樣器有不同的配置
以http請求采樣器為例名稱:采樣器名稱,一般是接口名稱,方便后續進行區分,比如“login接口”注釋:采樣器的描述,方便別人理解,類似壓測接口描述web服務器配置協議:壓測的協議,比如“http”或者"https"服務器名稱或IP:壓測目標機器的端口或者服務器IP地址,比如 www.xdclass.net端口號:壓測目標機器的端口號,比如 8080HTTP請求配置方法:http的請求方法,常用的有GET,POST,PUT,DELETE,PATCH等路徑:壓測的接口的URL,比如 /api/v1/usersContent encoding:是否進行內容編碼自動重定向:http有302狀態碼返回的時候,重定向,但不會產生記錄,不可以做關聯請求,比如比如第二個請求要用到第一個請求的數據,則選擇自動重定向無法做關聯跟隨重定向:會產生記錄,可以做關聯,默認勾選這個Use multipart/from-data for HTTP POST :當發送POST請求時,使用Use multipart/from-data方法發送,默認不選中。parameters:參數配置Files Upload:文件上傳配置



什么是結果樹?

壓測的結果查看,可以看到壓測發送的url,http參數,返回結果,返回的整個響應,然后如果有斷言或者調試,可以看到斷言是否通過等等
添加路徑: 線程組->添加->監聽器->察看結果樹
如果不添加結果數,則點擊壓測開始按鈕,壓測具體響應我們無法知道,所以需要添加結果數,
一來是方便調試壓測腳本,看請求參數,路徑是否正常
切換到結果數查看頁面,點擊壓測按鈕就可以進壓測,邊壓測可以邊看到請求的結果。

 

補充個小技巧,就是GUI圖形界面語言版本中英文切換:

1、控制臺修改menu -> options -> choose language 選擇對應的語言版本就可以
2、配置文件修改	bin目錄 -> jmeter.properties默認 #language=en改為 language=zh_CN?
OK,Jmeter4.0壓力測試第一季入門先到這里,
下一站章 會再分享Jmeter高級知識,比如斷言使用,動態讀取CSV參數,壓測Mysql,阿里云Linux環境非GUI界面壓測,分布式壓測等等

視頻教程參考:

? ?https://www.xdclass.net/#/coursecatalogue?video_id=3

?

關注我們,分享前沿動態



轉載于:https://www.cnblogs.com/xdclass/p/8709932.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280723.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280723.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280723.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

powershell 查看系統設備\device status

查看設備 $allDevice"C:\Data\soundDevAll.txt" (Get-WmiObject -Class Win32_SoundDevice).Name|Out-File $allDevice device status $deviceInfoGet-WmiObject Win32_PnPEntity| select Name, Status | where {$_.Name -like "$deviceName"} $set…

Fish Shell 使用筆記

安裝Fish Shell brew install fish 安裝Oh My Fish curl -L https://get.oh-my.fish | fish 安裝Fisher curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish 配置 autojump clone autojump git clone https://github.com/wting/autojum…

Entity Framework Core 7中高效地進行批量數據插入

因為之前的版本中,EF Core無法實現高效地批量插入、修改、刪除數據,所以我開發了Zack.EFCore.Batch這個開源項目,比較受大家的歡迎,獲得了400多個star。從.NET 7開始,微軟在Entity Framework Core 7內置了對高效地批量…

Hive學習之路 (一)Hive初識

Hive 簡介 什么是Hive 1、Hive 由 Facebook 實現并開源 2、是基于 Hadoop 的一個數據倉庫工具 3、可以將結構化的數據映射為一張數據庫表 4、并提供 HQL(Hive SQL)查詢功能 5、底層數據是存儲在 HDFS 上 6、Hive的本質是將 SQL 語句轉換為 MapReduce 任務運行 7、使不熟悉 MapR…

angularJs select綁定的model 取不到值

內容結構 一.原因分析 二. 解決辦法 一.原因分析 1.由于原型繼承的關系,修改父級對象中的someBareValue會同時修改子對象中的值,但反之則不行。2.ng-if 以及 ng-repeat 會創建一個子級作用域,如果在這倆個指令中添加了元素&a…

PS2019攝影后期處理(三)通透....

一、PS可選顏色 在對應顏色進行cmyk加減

(原創) 今天拿到學生證了 (日記)

<原文我在2006/09/07發表在藍色小舖>今天拿到學生證了&#xff0c;終於正式成為臺大的學生。第一件事情就是去臺大圖書館借了四本書回家看&#xff0c;一次可以借兩個月耶&#xff0c;真不錯。 感覺很複雜&#xff0c;下星期要離開華碩&#xff0c;得繳回識別證&#xff…

os 鍵盤快捷鍵截圖_如何通過鍵盤快捷鍵更有效地使用OS X虛擬桌面

os 鍵盤快捷鍵截圖() We like having multiple virtual desktops on OS X, especially when we can supercharge them by combining them with a few simple keyboard shortcuts. So, on that note, here are some practical ways to use OS X’s virtual desktops like you me…

旗正規則引擎內存表出錯的原因及解決方法

經常我們有一些使用者問到這個問題&#xff0c;關于內存表出錯的情況&#xff0c;其實問題不復雜&#xff0c;我這給大家簡單的講一下就明白了&#xff0c;如果還有什么不明白的&#xff0c;其實也都可以問廠家杭州旗正&#xff0c;隨時都有人回應的。 1 內存表 1.1 匯總 1.1.1…

Shell腳本之sed的使用

1.sed命令&#xff1b;主要作用是查找&#xff1b;新增 刪除 和修改替換。 user.txt daokr#cat user.txt ID Name Sex Age 1 zhang M 19 2 wang G 20 3 cheng M 10 4 huahua M 100 查找命令&#xff1a;-n 和 p&#xff08;prin…

.NET周報【11月第4期 2022-11-30】

國內文章.NET 7 的 AOT 到底能不能扛反編譯&#xff1f;https://www.cnblogs.com/huangxincheng/p/16917197.html在 B 站&#xff0c;公眾號上發了一篇 AOT 的文章后&#xff0c;沒想到反響還是挺大的&#xff0c;都稱贊這個東西能抗反編譯&#xff0c;可以讓破解難度極大提高&…

結合hello world探討gcc編譯程序的過程

本博客&#xff08;http://blog.csdn.net/livelylittlefish&#xff09;貼出作者&#xff08;三二一小魚&#xff09;相關研究、學習內容所做的筆記&#xff0c;歡迎廣大朋友指正&#xff01; 結合"hello world"探討gcc編譯程序的過程 1. gcc簡介 gcc/g是GNU工程的C和…

Powershell 時間相關

1.時間相差秒數計算 $start Get-Date Get-HotFix $end Get-Date Write-Host -ForegroundColor Red (Total Runtime: ($end - $start).TotalSeconds)//若開始時間保存為字符串$startTime Get-Date -Format yyyyMMddTHH:mm:ss $startTime[datetime]::ParseExact("$sta…

java類中,成員變量賦值第一個進行,其次是靜態構造函數,再次是構造函數

如題是結論&#xff0c;如果有人問你Java類的成員初始化順序和初始化塊知識就這樣回答他。下面是代碼&#xff1a; package com.test;public class TestClass{// 成員變量賦值第一個執行private static int m11;private int m21;// 靜態構造函數第二個執行static{System.out.pr…

Unity的未來,是固守Mono,還是擁抱CoreCLR?

TLDR;Unity堅定的擁抱.NET標準生態&#xff0c;正全速向CoreCLR遷移。Mono vs CoreCLR對于一個C#的初學者&#xff0c;首先要了解的便是.NET和C#的關系。所以這里不再贅述。對于一個Unity的初學者&#xff0c;在使用C#編碼的過程中&#xff0c;一定會遇到一些C#新特性不能在項目…

hinton教授的本科生課程CSC321-機器學習中的神經網的筆記

最近一直在看仙守博友所記錄的筆記 Hinton的CSC321課程&#xff08;完結&#xff0c;待文字潤色&#xff09;&#xff1a; 1、lecture1-NN的簡介 2、lecture2-NN結構的主要類型的概述和感知機 3、lecture3-線性神經元和算法 4、lecture4-神經網絡在語言上的應用 5、lecture5-對…

ASP存儲過程參數數據類型

ASP調用存儲過程一般的方法&#xff1a; p.Append cmd.CreateParameter("參數名稱",類型,方向,大小) 參許參數值的類型的意義如下&#xff1a; 名稱值 整數值 功能 adDBTimeStamp 135 日期時間數據類型 adDecimal 14 十進制整數值 adDouble …

powershell 啟動線程與關閉線程

啟動線程 $ScreenCapture"C:\ResolutionTool\ScreenCapture.exe" Start-Process $ScreenCapture 關閉線程 Get-Process ScreenCapture| Stop-Process

HDU 5673 Robot 卡特蘭數

題目鏈接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid5673 題目描述&#xff1a; 一個人從原點開始向右走&#xff0c; 要求N秒后回到原點&#xff0c; 且過程中不能到負半軸&#xff0c; 人有兩種操作&#xff0c; 走動或者停止&#xff0c; 問總共有多少種方案&…

刪除本地賬戶無法登錄電腦_如何從Windows的登錄屏幕中刪除本地用戶帳戶

刪除本地賬戶無法登錄電腦If you have multiple user accounts on your computer, you might find it annoying to have to click on the icon for your username each time you start up the computer. To remedy this problem, you can hide a user account with a registry …