章節(jié)一壓力測試課程介紹
1、2018年億級(jí)流量壓測系列之Jmeter4.0課程介紹和效果演示
簡介:
講解課程安排,使用的Jmeter版本
創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、虎丘網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、商城開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為虎丘等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
講課風(fēng)格:涉及的組件,操作配置多,不會(huì)一次性講解,會(huì)先講部分,然后在后續(xù)操作中慢慢補(bǔ)充,更容易消化和理解
2、常用壓力測試工具對(duì)比
簡介:目前用的常用測試工具對(duì)比
1、loadrunner
性能穩(wěn)定,壓測結(jié)果及細(xì)粒度大,可以自定義腳本進(jìn)行壓測,但是太過于重大,功能比較繁多
2、apache ab(單接口壓測最方便)
模擬多線程并發(fā)請(qǐng)求,ab命令對(duì)發(fā)出負(fù)載的計(jì)算機(jī)要求很低,既不會(huì)占用很多CPU,也不會(huì)占用太多的內(nèi)存,但卻會(huì)給目標(biāo)服務(wù)器造成巨大的負(fù)載, 簡單DDOS×××等
3、webbench
webbench首先fork出多個(gè)子進(jìn)程,每個(gè)子進(jìn)程都循環(huán)做web訪問測試。子進(jìn)程把訪問的結(jié)果通過pipe告訴父進(jìn)程,父進(jìn)程做最終的統(tǒng)計(jì)結(jié)果。
章節(jié)二 JMeter4.x基礎(chǔ)知識(shí)講解和壓測實(shí)操
3、Jmeter基本介紹和使用場景
簡介
1、壓測不同的協(xié)議和應(yīng)用
1) Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
2) SOAP / REST Webservices
3) FTP
4) Database via JDBC
5) LDAP 輕量目錄訪問協(xié)議
6) Message-oriented middleware (MOM) via JMS
7) Mail - SMTP(S), POP3(S) and IMAP(S)
8) TCP等等
2、使用場景及優(yōu)點(diǎn)
1)功能測試
2)壓力測試
3)分布式壓力測試
4)純java開發(fā)
5)上手容易,高性能
4)提供測試數(shù)據(jù)分析
5)各種報(bào)表數(shù)據(jù)圖形展示
4、本地快速安裝Jmeter4.x
簡介:GUI圖形界面的安裝
1、需要安裝JDK8。或者JDK9,JDK10
2、快速下載
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
3、文檔地址:http://jmeter.apache.org/usermanual/get-started.html
4、建議安裝JDK環(huán)境,雖然JRE也可以,但是壓測https需要JDK里面的 keytool工具
5、Jmeter目錄文件講解
簡介:講解jmeter解壓文件里面的各個(gè)目錄,文件等
1、目錄
bin:核心可執(zhí)行文件,包含配置
jmeter.bat: windows啟動(dòng)文件:
jmeter: mac或者linux啟動(dòng)文件:
jmeter-server:mac或者Liunx分布式壓測使用的啟動(dòng)文件
jmeter-server.bat:mac或者Liunx分布式壓測使用的啟動(dòng)文件
jmeter.properties: 核心配置文件
extras:插件拓展的包
lib:核心的依賴包
ext:核心包
junit:單元測試包
6、Jmeter語言版本中英文切換
簡介:
講解怎么改變jmeter的GUI界面語言版本
1、控制臺(tái)修改
menu -> options -> choose language
2、配置文件修改
bin目錄 -> jmeter.properties
默認(rèn) #language=en
改為 language=zh_CN
7、使用SpringBoot 2.0快速編寫API測試接口
簡介
使用java的框架springBoot快速編寫幾個(gè)API接口測試
https://spring.io/guides/gs/spring-boot/
接口列表
1、模擬GET請(qǐng)求,用戶列表接口
2、模擬POST請(qǐng)求,用戶登錄接口
http://localhost:8080/users
8、創(chuàng)建Jmeter測試計(jì)劃,快速壓測一個(gè)接口
簡介:
通過帶著why來學(xué)習(xí),快速創(chuàng)建一個(gè)測試計(jì)劃
章節(jié)三 Jmeter核心組件講解和實(shí)操
9、Jmeter基礎(chǔ)功能組件介紹線程組和Sampler
簡介:講解Jmeter里面GUI菜單欄主要組件
1、添加->threads->線程組(控制總體并發(fā))
線程數(shù):虛擬用戶數(shù)。一個(gè)虛擬用戶占用一個(gè)進(jìn)程或線程
準(zhǔn)備時(shí)長(Ramp-Up Period(in seconds)):全部線程啟動(dòng)的時(shí)長,比如100個(gè)線程,20秒,則表示20秒內(nèi)100個(gè)線程都要啟動(dòng)完成,每秒啟動(dòng)5個(gè)線程
循環(huán)次數(shù):每個(gè)線程發(fā)送的次數(shù),假如值為5,100個(gè)線程,則會(huì)發(fā)送500次請(qǐng)求,可以勾選永遠(yuǎn)循環(huán)
2、線程組->添加-> Sampler(采樣器) -> Http (一個(gè)線程組下面可以增加幾個(gè)Sampler)
名稱:采樣器名稱
注釋:對(duì)這個(gè)采樣器的描述
web服務(wù)器:
默認(rèn)協(xié)議是http
默認(rèn)端口是80
服務(wù)器名稱或IP :請(qǐng)求的目標(biāo)服務(wù)器名稱或IP地址
路徑:服務(wù)器URL
Use multipart/from-data for HTTP POST :當(dāng)發(fā)送POST請(qǐng)求時(shí),使用Use multipart/from-data方法發(fā)送,默認(rèn)不選中。
3、查看測試結(jié)果
線程組->添加->監(jiān)聽器->察看結(jié)果樹
10、Jmeter的斷言基本使用
簡介:介紹什么是斷言及基本使用
1、增加斷言: 線程組 -> 添加 -> 斷言 -> 響應(yīng)斷言
apply to(應(yīng)用范圍):
Main sample only: 僅當(dāng)前父取樣器 進(jìn)行斷言,一般一個(gè)請(qǐng)求,如果發(fā)一個(gè)請(qǐng)求會(huì)觸發(fā)多個(gè),則就有sub sample(比較少用)
要測試的響應(yīng)字段:
響應(yīng)文本:即響應(yīng)的數(shù)據(jù),比如json等文本
響應(yīng)代碼:http的響應(yīng)狀態(tài)碼,比如200,302,404這些
響應(yīng)信息:http響應(yīng)代碼對(duì)應(yīng)的響應(yīng)信息,例如:OK, Found
Response Header: 響應(yīng)頭
模式匹配規(guī)則:
包括:包含在里面就成功
匹配:響應(yīng)內(nèi)容完全匹配,不區(qū)分大小寫
equals:完全匹配,區(qū)分大小寫
2、斷言結(jié)果監(jiān)聽器: 線程組-> 添加 -> 監(jiān)聽器 -> 斷言結(jié)果
里面的內(nèi)容是sampler采樣器的名稱
斷言失敗,查看結(jié)果樹任務(wù)結(jié)果顏色標(biāo)紅(通過結(jié)果數(shù)里面雙擊不通過的記錄,可以看到錯(cuò)誤信息)
3、每個(gè)sample下面可以加單獨(dú)的結(jié)果樹,然后同時(shí)加多個(gè)斷言,最外層可以加個(gè)結(jié)果樹進(jìn)行匯總
11、Jmeter實(shí)戰(zhàn)之壓測結(jié)果聚合報(bào)告分析
簡介:講解壓測結(jié)果的聚合報(bào)告
新增聚合報(bào)告:線程組->添加->監(jiān)聽器->聚合報(bào)告(Aggregate Report)
lable: sampler的名稱
Samples: 一共發(fā)出去多少請(qǐng)求,例如10個(gè)用戶,循環(huán)10次,則是 100
Average: 平均響應(yīng)時(shí)間
Median: 中位數(shù),也就是 50% 用戶的響應(yīng)時(shí)間
90% Line : 90% 用戶的響應(yīng)不會(huì)超過該時(shí)間 (90% of the samples took no more than this time. The remaining samples at least as long as this)
95% Line : 95% 用戶的響應(yīng)不會(huì)超過該時(shí)間
99% Line : 99% 用戶的響應(yīng)不會(huì)超過該時(shí)間
min : 最小響應(yīng)時(shí)間
max : 最大響應(yīng)時(shí)間
Error%:錯(cuò)誤的請(qǐng)求的數(shù)量/請(qǐng)求的總數(shù)
Throughput: 吞吐量——默認(rèn)情況下表示每秒完成的請(qǐng)求數(shù)(Request per Second) 可類比為qps
KB/Sec: 每秒接收數(shù)據(jù)量
12、Jmeter壓測腳本JMX講解
簡介:壓測腳本JMX講解
1、打開方式subline,或者xml編輯器
2、運(yùn)行日志和壓測時(shí)間查看(基礎(chǔ)按鈕)
章節(jié)四 自定義變量和CSV可變參數(shù)實(shí)操
13、Jmeter用戶自定義變量實(shí)戰(zhàn)
簡介:什么是用戶自定義變量,怎樣使用
為什么使用:很多變量在全局中都有使用,或者測試數(shù)據(jù)更改,可以在一處定義,四處使用
比如服務(wù)器地址
1、線程組->add -> Config Element(配置原件)-> User Definde Variable(用戶定義的變量)
2、引用方式${XXX},在接口中變量中使用
3、原始查看結(jié)果樹和非原生查看(基礎(chǔ)按鈕)
14、Jmeter實(shí)戰(zhàn)之CSV可變參數(shù)壓測
簡介:
實(shí)戰(zhàn)操作jmeter讀取CSV和Txt文本文件里面的參數(shù)進(jìn)行壓測
1、線程組->add -> Config Element(配置原件)-> CSV data set config (CSV數(shù)據(jù)文件設(shè)置)
15、CSV文件多參數(shù)使用
簡介:在讀取的配置文件里面,同時(shí)使用多個(gè)自定義參數(shù)
1、如果是多個(gè)參數(shù)需要同時(shí)引用,則在CSV數(shù)據(jù)文件里面設(shè)置加多個(gè)字段
Variabled names(comma-delitited): csv_name,csv_pwd
章節(jié)五 MySQL數(shù)據(jù)庫壓測實(shí)操
16、Jmeter壓測實(shí)戰(zhàn)之JDBC request壓測Mysql講解
簡介:講解jdbc壓測mysql相關(guān)準(zhǔn)備工作,jar包添加,配置講解
1、Thread Group -> add -> sampler -> jdbc request
2、jar包添加 mysql-connector-java-5.1.30.jar
3、JDBC connection Configuration 配置
1、JDBC request->add -> config element -> JDBC connection configuration
核心配置
Max Number of connections : 最大連接數(shù)
MAX wait :最大等待時(shí)間
Auto Commit: 是否自動(dòng)提交事務(wù)
DataBase URL : 數(shù)據(jù)庫連接地址 jdbc:mysql://127.0.0.1:3306/blog
JDBC Driver Class : 數(shù)據(jù)庫驅(qū)動(dòng),選擇對(duì)應(yīng)的mysql
username:數(shù)據(jù)庫用戶名
password:數(shù)據(jù)庫密碼
17、Jmeter壓測實(shí)戰(zhàn)之JDBC request壓測Mysql, select語句
簡介:使用jmeter壓測mysql,select,insert語句
1、Debug Sampler使用(結(jié)果樹中查看)
Thread Group -> add -> sampler -> debug sampler
2、參數(shù)講解:(sql結(jié)尾不要加";")
1、variable name of pool declared in JDBC connection configuration(和配置文件同名)
2、Query Type 查詢類型
3、parameter values 參數(shù)值
4、parameter types 參數(shù)類型
5、variable names sql執(zhí)行結(jié)果變量名
6、result variable names 所有結(jié)果當(dāng)做一個(gè)對(duì)象存儲(chǔ)
7、query timeouts 查詢超時(shí)時(shí)間
8、 handle results 處理結(jié)果集
章節(jié)六 高級(jí)篇之分布式壓測基礎(chǔ)知識(shí)
18、分布式壓測介紹
簡介:講解什么是分布式壓測
普通壓測:單臺(tái)機(jī)可以對(duì)目標(biāo)機(jī)器產(chǎn)生的壓力比較小,受限因素包括CPU,網(wǎng)絡(luò),IO等
分布式壓測:利用多臺(tái)機(jī)器向目標(biāo)機(jī)器產(chǎn)生壓力,模擬幾萬用戶并發(fā)訪問
19、Jmeter分布式壓測原理
簡介:講解Jmeter分布式壓測原理
1、總控機(jī)器的節(jié)點(diǎn)master,其他產(chǎn)生壓力的機(jī)器叫“肉雞” server
2、master會(huì)把壓測腳本發(fā)送到 server上面
3、執(zhí)行的時(shí)候,server上只需要把jmeter-server打開就可以了,不用啟動(dòng)jmeter
4、結(jié)束后,server會(huì)把壓測數(shù)據(jù)回傳給master,然后master匯總輸出報(bào)告
5、配置詳情
章節(jié)七 高級(jí)篇之阿里云Linux服務(wù)器壓測接口實(shí)戰(zhàn)
20、SpringBoot 接口打包,并用jar包方式部署
簡介:用jar包方式在控制臺(tái)進(jìn)行啟動(dòng)
打包 mvn package && java -jar target/gs-spring-boot-0.1.0.jar
21、阿里云服務(wù)器介紹和ECS服務(wù)器使用
簡介:
阿里云服務(wù)器介紹和購買ECS服務(wù)器等
推薦購買2G內(nèi)存以上的進(jìn)行開發(fā)學(xué)習(xí)
22、阿里云Linux服務(wù)器下安裝啟動(dòng)JDK8并配置環(huán)境變量
簡介:在阿里云環(huán)境下安裝JDK8并配置環(huán)境變量
23、部署java項(xiàng)目到阿里云服務(wù)器和守護(hù)進(jìn)程講解
簡介:
部署項(xiàng)目到阿里云,并啟動(dòng),公網(wǎng)可以訪問
1、注意點(diǎn)
關(guān)閉防火墻
阿里云控制臺(tái)安全策略,開放端口
linux上運(yùn)行 java -jar xxxx
ssh root@120.79.160.143
守護(hù)進(jìn)程:nohup java -jar xxxxx &
什么是守護(hù)進(jìn)程:
24、阿里云Linux服務(wù)器安裝Jmeter 4.0
簡介:在阿里云環(huán)境下安裝Jmeter
經(jīng)濟(jì)足夠:購買兩臺(tái)阿里云機(jī)器
不足:本地虛擬機(jī),或者用你室友的電腦,在同個(gè)局域網(wǎng)就可以,安裝同個(gè)版本的jdk,jmeter,同個(gè)路徑,不要帶有空格或者中文
下載地址
wget http://apache.osuosl.org//jmeter/binaries/apache-jmeter-4.0.tgz
25、Jmeter非GUI界面 參數(shù)講解
講解:非GUI界面,壓測參數(shù)講解
-h 幫助
-n 非GUI模式
-t 指定要運(yùn)行的 JMeter 測試腳本文件
-l 記錄結(jié)果的文件 每次運(yùn)行之前,(要確保之前沒有運(yùn)行過,即xxx.jtl不存在,不然報(bào)錯(cuò))
-r Jmter.properties文件中指定的所有遠(yuǎn)程服務(wù)器
-e 在腳本運(yùn)行結(jié)束后生成html報(bào)告
-o 用于存放html報(bào)告的目錄(目錄要為空,不然報(bào)錯(cuò))
官方配置文件地址 http://jmeter.apache.org/usermanual/get-started.html
jmeter -n -t linux_users_api.jmx -l result.jtl -e -o /usr/local/softwate/jmeter/temp/ResultReport
jmeter -n -t /Users/jack/Desktop/linux_users_api.jmx -l result.jtl -e -o /Users/jack/Desktop/person/jmeter/temp
26、項(xiàng)目實(shí)戰(zhàn)之阿里云Linux服務(wù)器下非GUI執(zhí)行jmeter壓測
簡介:
在阿里云服務(wù)器上以非GUI界面去執(zhí)行JMX壓測腳本
jmx目錄:/usr/local/software/jmeter/temp
jmeter -n -t /usr/local/software/jmeter/temp/linux_users_api.jmx -l /usr/local/software/jmeter/temp/jtl/result.jtl
章節(jié)八 高級(jí)篇之阿里云壓測 html可視化壓測報(bào)告細(xì)講
27、阿里云Linux服務(wù)器 Jmeter壓測實(shí)戰(zhàn)之jtl文件生成和查看
簡介:
利用軟件從阿里云Centos服務(wù)器下載壓測報(bào)告,講解Jtl文件,并怎么查看文件
可以通過打開jmeter,新建線程組->summary report->瀏覽文件 進(jìn)行查看
28、Jmeter壓測接口的性能優(yōu)化
簡介:講解Jmeter壓測減少資源使用的一些建議,即壓測結(jié)果更準(zhǔn)確
1、使用非GUI模式:jmeter -n -t test.jmx -l result.jtl
2、少使用Listener, 如果使用-l參數(shù),它們都可以被刪除或禁用。
3、在加載測試期間不要使用“查看結(jié)果樹”或“查看結(jié)果”表監(jiān)聽器,只能在腳本階段使用它們來調(diào)試腳本。
4、包含控制器在這里沒有幫助,因?yàn)樗鼘⑽募械乃袦y試元素添加到測試計(jì)劃中。]
5、不要使用功能模式,使用CSV輸出而不是XML
6、只保存你需要的數(shù)據(jù),盡可能少地使用斷言
7、如果測試需要大量數(shù)據(jù),可以提前準(zhǔn)備好測試數(shù)據(jù)放到數(shù)據(jù)文件中,以CSV Read方式讀取。
8、用內(nèi)網(wǎng)壓測,減少其他帶寬影響壓測結(jié)果
9、如果壓測大流量,盡量用多幾個(gè)節(jié)點(diǎn)以非GUI模式向服務(wù)器施壓
官方推薦 :http://jakarta.apache.org/jmeter/usermanual/best-practices.html#lean_mean
29、項(xiàng)目實(shí)戰(zhàn)之Jmeter壓測生成多維度圖形化HTML測試報(bào)告
簡介:
把Jmtere壓測結(jié)果轉(zhuǎn)換為Html
指令
jmeter -n -t /usr/local/software/jmeter/temp/linux_users_api.jmx -l /usr/local/software/jmeter/temp/jtl/result.jtl -e -o /usr/local/software/jmeter/temp/result
30、Jmeter圖形化HTML壓測報(bào)告dashboard講解
簡介:
講解壓測報(bào)告 html里面Dashboard的核心指標(biāo)
1、dashboard講解
1)Test and Report informations
Source file:jtl文件名
Start Time :壓測開始時(shí)間
End Time :壓測結(jié)束時(shí)間
Filter for display:過濾器
Lable:sampler采樣器名稱
2)APDEX(Application performance Index)
apdex:應(yīng)用程序性能指標(biāo),范圍在0~1之間,1表示達(dá)到所有用戶均滿意
T(Toleration threshold):可接受閥值
F(Frustration threshold):失敗閥值
3)Requests Summary
OK:成功率
KO:失敗率
4)Statistics 統(tǒng)計(jì)數(shù)據(jù)
lable:sampler采樣器名稱
samples:請(qǐng)求總數(shù),并發(fā)數(shù)*循環(huán)次數(shù)
KO:失敗次數(shù)
Error%:失敗率
Average:平均響應(yīng)時(shí)間
Min:最小響應(yīng)時(shí)間
Max:最大響應(yīng)時(shí)間
90th pct: 90%的用戶響應(yīng)時(shí)間不會(huì)超過這個(gè)值(關(guān)注這個(gè)就可以了)
2ms,3ms,4,5,2,6,8,3,9
95th pct: 95%的用戶響應(yīng)時(shí)間不會(huì)超過這個(gè)值
99th pct: 99%的用戶響應(yīng)時(shí)間不會(huì)超過這個(gè)值 (存在極端值)
throughtput:Request per Second吞吐量 qps
received:每秒從服務(wù)器接收的數(shù)據(jù)量
send:每秒發(fā)送的數(shù)據(jù)量
31、Jmeter圖形化HTML壓測報(bào)告Charts報(bào)表講解
簡介:
講解壓測報(bào)告 html里面Charts的核心指標(biāo)
1、charts講解
1)Over Time(隨著時(shí)間的變化)
Response Times Over Time:響應(yīng)時(shí)間變化趨勢
Response Time Percentiles Over Time (successful responses):最大,最小,平均,用戶響應(yīng)時(shí)間分布
Active Threads Over Time:并發(fā)用戶數(shù)趨勢
Bytes Throughput Over Time:每秒接收和請(qǐng)求字節(jié)數(shù)變化,藍(lán)色表示發(fā)送,×××表示接受
Latencies Over Time:平均響應(yīng)延時(shí)趨勢
Connect Time Over Time :連接耗時(shí)趨勢
1)Throughput
Hits Per Second (excluding embedded resources):每秒點(diǎn)擊次數(shù)
Codes Per Second (excluding embedded resources):每秒狀態(tài)碼數(shù)量
Transactions Per Second:即TPS,每秒事務(wù)數(shù)
Response Time Vs Request:響應(yīng)時(shí)間和請(qǐng)求數(shù)對(duì)比
Latency Vs Request:延遲時(shí)間和請(qǐng)求數(shù)對(duì)比
1)Response Times
Response Time Percentiles:響應(yīng)時(shí)間百分比
Response Time Overview:響應(yīng)時(shí)間概述
Time Vs Threads:活躍線程數(shù)和響應(yīng)時(shí)間
Response Time Distribution:響應(yīng)時(shí)間分布圖
章節(jié)九 高級(jí)篇之多節(jié)點(diǎn)JMeter分布式壓測實(shí)戰(zhàn)
32、Jmeter4.0分布式壓測準(zhǔn)備工作
簡介:講解Linux服務(wù)器上jmeter進(jìn)行分布式壓測的相關(guān)準(zhǔn)備工作
1、壓測注意事項(xiàng)
the firewalls on the systems are turned off or correct ports are opened.
系統(tǒng)上的防火墻被關(guān)閉或正確的端口被打開。
all the clients are on the same subnet.
所有的客戶端都在同一個(gè)子網(wǎng)上。
the server is in the same subnet, if 192.x.x.x or 10.x.x.x IP addresses are used. If the server doesn't use 192.xx or 10.xx IP address, there shouldn't be any problems.
如果使用192.x.x.x或10.x.x.x IP地址,則服務(wù)器位于同一子網(wǎng)中。 如果服務(wù)器不使用192.xx或10.xx IP地址,則不應(yīng)該有任何問題。
Make sure JMeter can access the server.
確保JMeter可以訪問服務(wù)器。
Make sure you use the same version of JMeter and Java on all the systems. Mixing versions will not work correctly.
確保在所有系統(tǒng)上使用相同版本的JMeter和Java。 混合版本將無法正常工作。
You have setup SSL for RMI or disabled it.
您已為RMI設(shè)置SSL或?qū)⑵浣谩?
官網(wǎng)地址 http://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html
壓測注意事項(xiàng):一定要用內(nèi)網(wǎng)IP,不用用公網(wǎng)IP,用ping去檢查
2、專業(yè)名字
master:司令
slave:奴隸
target:目標(biāo)
地址:http://jmeter.apache.org/images/screenshots/distributed-names.svg
地址:http://jmeter.apache.org/images/screenshots/distributed-jmeter.svg
遠(yuǎn)程拷貝(內(nèi)網(wǎng)地址):
scp -r /usr/local/software/jdk-8u141-linux-x64.tar.gz root@172.18.230.233:/usr/local/software
scp -r /usr/local/software/jmeter/apache-jmeter-4.0.tgz root@172.18.230.233:/usr/local/software/jmeter
啟動(dòng)
./jmeter-server 或者 nohup ./jmeter-server &
檢查啟動(dòng)是否成功
ps -ef|grep jmeter-server
ps aux|grep jmeter-server
33、阿里云jmeter壓測常見問題處理
簡介:講解阿里云上安裝jmeter常見問題的處理,安裝遇到的問題等等
(備注:內(nèi)容較多,放在筆記最下方)
34、Jmeter4.0分布式壓測實(shí)戰(zhàn)
簡介:Jmeter分布式壓測實(shí)戰(zhàn),壓測接口
1、關(guān)注CPU和內(nèi)存使用
本地非GUI分布式壓測 -r
jmeter -n -t /Users/jack/Desktop/remote.jmx -r -l /Users/jack/Desktop/jtl/result.jtl -e -o /Users/jack/Desktop/result
壓測結(jié)果
./jmeter -n -t /Users/jack/Desktop/remote.jmx -r -l /Users/jack/Desktop/jtl/result.jtl -e -o /Users/jack/Desktop/result
Creating summariser <summary>
Created the tree successfully using /Users/jack/Desktop/remote.jmx
Configuring remote engine: 172.20.10.3:8899
Using local port: 8899
Configuring remote engine: 172.20.10.11:8899
Starting remote engines
Starting the test @ Thu Mar 29 23:21:13 CST 2018 (1522336873931)
Remote engines have been started
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
summary = 4 in 00:00:22 = 0.2/s Avg: 5582 Min: 94 Max: 21006 Err: 1 (25.00%)
Tidying up remote @ Thu Mar 29 23:21:36 CST 2018 (1522336896842)
... end of run
2、壓測修改master節(jié)點(diǎn)信息
jemeter.properties 值是slave機(jī)器的ip+端口號(hào),如果有多個(gè),用逗號(hào)分隔
remote_hosts=192.168.0.102:8899,192.168.0.101:8899
server.rmi.ssl.disable=true (前面有說到)
3、啟動(dòng)slave機(jī)器,注意要同個(gè)網(wǎng)段,ip地址用內(nèi)網(wǎng)ip
./jmeter-server
Using local port: 8899
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[192.168.0.102:8899](local),objID:[3a585a4d:162724586ab:-7fff, 3963132813614033916]]]
相關(guān)資料:
https://www.cnblogs.com/Fine-Chan/p/6233823.html
https://blog.csdn.net/liujingqiu/article/details/52635289
https://www.cnblogs.com/puresoul/p/4844539.html
章節(jié)十 高級(jí)篇之Jmeter壓測課程總結(jié)和架構(gòu)淺析
35、課程總結(jié)和關(guān)于系統(tǒng)架構(gòu),推薦學(xué)習(xí)資料
簡介:講解測試人員的基礎(chǔ)技能,系統(tǒng)架構(gòu)知識(shí),相關(guān)推薦書籍,課程總結(jié)等
配置元件=》前置處理器=》定時(shí)器=》采樣器=》后置處理器=》斷言=》監(jiān)聽器
安裝常見問題
1、問題
[root@iZwz95j86y235aroi85ht0Z bin]# ./jmeter-server
Created remote object: UnicastServerRef2 [liveRef: [endpoint::39308,objID:[24e78a63:16243c70661:-7fff, 7492480871343944173]]]
Server failed to start: java.rmi.RemoteException: Cannot start. Unable to get local host IP address.; nested exception is:
java.net.UnknownHostException: iZwz95j86y235aroi85ht0Z: iZwz95j86y235aroi85ht0Z: Name or service not known
An error occurred: Cannot start. Unable to get local host IP address.; nested exception is:
java.net.UnknownHostException: iZwz95j86y235aroi85ht0Z: iZwz95j86y235aroi85ht0Z: Name or service not known
解決:
hostname 命令獲取機(jī)器名稱,追加一個(gè)映射 iZwz95j86y235aroi85ht0Z
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
120.79.160.143 iZwz95j86y235aroi85ht0Z
windows用戶 修改c:\windows\system32\drivers\etc\hosts文件,增加一條域名 與IP的映射
2、問題
[root@iZwz95j86y235aroi85ht0Z bin]# ./jmeter-server
Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
An error occurred: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
解決:
擁有RMI over SSL的有效密鑰庫,或者禁用了SSL。
1、禁用SSL
jmeter.property里面 server.rmi.ssl.disable 改為 true,表示禁用
3、問題:
[root@iZ949uw2xehZ bin]# ./jmeter
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)
#
# Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/jmeter/apache-jmeter-4.0/bin/hs_err_pid5855.log
解決:
編輯jmeter
搜索 : "${HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"
改變初始堆內(nèi)存和最大堆內(nèi)存
4、僅修改 server_port 即可,下面兩者一樣
server.rmi.localport=8899 表示slave server啟動(dòng)顯示的端口
server_port=8899 表示master機(jī)器要遠(yuǎn)程連接的端口 即 remote_hosts=xxxx:8899
5、<!-- jmeter 分布式性能測試(多網(wǎng)卡配置) -->
我們要在多網(wǎng)卡的服務(wù)器上開啟RMI服務(wù)的話必須指定IP,使他們能夠在同一個(gè)網(wǎng)段內(nèi)。
需要以下幾步(假定所有機(jī)器都在10.120.11.*網(wǎng)段,agent服務(wù)器為linux,controller服務(wù)器為windows):
1、 修改agent服務(wù)器,指定agent機(jī)器的IP
修改jmeter-server文件
# vi jmeter-server
修改RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx(需要連接的IP)
2、修改server服務(wù)器,指定server機(jī)器的IP
修改jmeter.bat文件
新增set rmi_host=-Djava.rmi.server.hostname=10.120.11.214
修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
6、確定在controller機(jī)器上安裝jdk,版本和jmeter一致,配置環(huán)境變量:Java_home等
在Agent機(jī)器上安裝jdk,配置環(huán)境變量:Java_home和JMeter_home
安裝目錄不要帶空格,最好都是簡短的英文路徑
7、master機(jī)器啟動(dòng)后會(huì)拷貝jmx文件到slave機(jī)器,所以不需要在每臺(tái)slave機(jī)器上也上傳一份jmx,只需要在master機(jī)器上上傳一份jmx腳本即可。
如果使用csv進(jìn)行參數(shù)化,則需要把參數(shù)文件在每臺(tái)slave上拷一份且路徑需要設(shè)置成一樣的。
總樣本數(shù) = 線程數(shù) * 循環(huán)次數(shù) * 執(zhí)行機(jī)總數(shù)
8、連接失敗原因排查
以下步驟進(jìn)行排查:
9、"could not find ApacheJmeter_core.jar"
解決:在Agent機(jī)器安裝jdk,并設(shè)置環(huán)境變量
10、”Bad call to remote host"
解決:檢查被控制機(jī)器上的jmeter-server有沒有啟動(dòng),或者remote_hosts的配置是否正確。
更多學(xué)習(xí)資料可參考:https://www.xdclass.net/#/coursecatalogue?video_id=3
http://edu.51cto.com/course/13251.html
本文名稱:JMeter接口壓力測試課程入門到高級(jí)實(shí)戰(zhàn)教程(詳情)
分享網(wǎng)址:http://jinyejixie.com/article8/ijjhip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站導(dǎo)航、電子商務(wù)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)