erp系統(tǒng)軟件免費(fèi)版優(yōu)化營(yíng)商環(huán)境心得體會(huì)2023
一、背景
? 在我們工作中有時(shí)候會(huì)需要使用客戶提供的內(nèi)網(wǎng)負(fù)載機(jī)進(jìn)行性能測(cè)試,一般在什么情況下我們需要要求客戶提供內(nèi)網(wǎng)負(fù)載機(jī)進(jìn)行性能測(cè)試呢?
遇到公網(wǎng)環(huán)境下性能測(cè)試達(dá)到了帶寬瓶頸。那么這時(shí),我們就需要考慮在內(nèi)網(wǎng)環(huán)境負(fù)載機(jī)下來(lái)執(zhí)行我們的性能測(cè)試以達(dá)到屏蔽帶寬影響的目的。
系統(tǒng)對(duì)高并發(fā)做了防護(hù),例如ddos防護(hù)
測(cè)試的并發(fā)過(guò)高導(dǎo)致負(fù)載機(jī)先達(dá)到瓶頸
本節(jié)我們介紹在內(nèi)網(wǎng)負(fù)載機(jī)下執(zhí)行JMeter性能測(cè)試。
二、準(zhǔn)備
我們需要準(zhǔn)備一下我們接下來(lái)需要用的東西:
-
ssh連接工具(例如:Xshell、Git Bash,在這里我們使用Git Bash)
-
apache-jmeter-5.5或以上(版本過(guò)高會(huì)導(dǎo)致java版本過(guò)高的報(bào)錯(cuò)提示)
-
性能測(cè)試腳本
-
腳本如下:
-
三、假設(shè)
在這里我們先做出一些假設(shè):
- 被測(cè)網(wǎng)站為https://www.baidu.com。(我們一般在測(cè)試時(shí)測(cè)試的域名為http而非https)
- 負(fù)載機(jī)處于baidu內(nèi)網(wǎng)環(huán)境中
- https://www.baidu.com?在內(nèi)網(wǎng)中對(duì)應(yīng)的內(nèi)網(wǎng)ip為10.5.16.8
- 文章中負(fù)載機(jī)已安裝配置環(huán)境,在本文中我們假設(shè)未安裝任何環(huán)境
四、操作步驟
1、連接負(fù)載機(jī)
首先我們?cè)谀_本及jmeter所在文件夾下右鍵打開(kāi)Git Bash
連接負(fù)載機(jī)
shell
ssh root@192.168.2.45 # root為登錄的用戶,@后為訪問(wèn)負(fù)載機(jī)ip地址
回車出現(xiàn)
root@192.168.2.45's password:
我們輸入密碼后回車即可,登錄成功
2、檢查環(huán)境
首先檢查java環(huán)境
shell
java --version
出現(xiàn)類似以下內(nèi)容表示環(huán)境中存在java
檢查jmeter環(huán)境
shell
jmeter --version
出現(xiàn)類似以下內(nèi)容表示環(huán)境中存在jmeter
查看Linux內(nèi)存
shell
free -h
這里我們可以發(fā)現(xiàn)我們內(nèi)存為1.6GB
查看LinuxCPU信息
shell
cat /proc/cpuinfo
這里我們看最后一個(gè)processor序號(hào)為1,故CPU為2核
查看Linux系統(tǒng)架構(gòu)
shell
uname -a
這里可以知道系統(tǒng)架構(gòu)為x86_64
3、測(cè)試準(zhǔn)備
? 在上文中我們說(shuō)到,假設(shè)負(fù)載機(jī)未安裝任何環(huán)境。這里我們分別介紹兩種方式進(jìn)行安裝。
(1)Java安裝(鏈接下載)
首先我們打開(kāi)Java官網(wǎng)(其他下載地址也可)https://www.oracle.com/java/technologies/downloads/,選擇jdk17(這里我們用jdk17進(jìn)行演示)
這里我們復(fù)制x64 Compressed Archive(具體下載的包取決于之前查詢的CPU架構(gòu)來(lái)決定)后的鏈接:https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
創(chuàng)建java目錄
shell
mkdir ~/myTest mkdir ~/myTest/java cd ~/myTest/java
使用wget命令下載,等待下載完成
shell
wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz
PS:該方法需要確保負(fù)載機(jī)可以連通外網(wǎng)使用一下命令檢查
shell
ping www.baidu.com
下載完成后查看
解壓
shell
tar -zxvf jdk-17_linux-x64_bin.tar.gz
(2)JMeter安裝(文件傳輸)
? 向負(fù)載機(jī)傳輸文件我們可以通過(guò)ftp服務(wù)器傳輸。但是在這里我們用了Git Bash,在這里我們使用更加簡(jiǎn)便的scp來(lái)進(jìn)行傳輸。
退回上一層,創(chuàng)建jmeter目錄
shell
cd ../ mkdir jmeter cd jmeter
再次在放置腳本及jmeter所在文件夾下右鍵再次打開(kāi)一個(gè)Git Bash
輸入命令
shell
scp ./apache-jmeter-5.4.1.zip root@192.168.2.45:~/myTest/jmeter
輸入密碼后上傳
上傳后關(guān)閉該窗口,回到之前的bash窗口檢查是否上傳成功
解壓
shell
unzip apache-jmeter-5.4.1.zip
到了這里我們就基本可以開(kāi)始操作腳本了,但是大家可能會(huì)好奇,環(huán)境變量怎么沒(méi)有配置呢?
? 并非是我們不配置環(huán)境變量,而是因?yàn)樵跍y(cè)試中,我們一般不在客戶的環(huán)境中配置永久環(huán)境變量,我們一般采用臨時(shí)環(huán)境變量。這個(gè)我們?cè)诤竺鏁?huì)說(shuō)如何去配置
那么為什么要用臨時(shí)環(huán)境變量呢?
? 臨時(shí)環(huán)境變量是指僅在當(dāng)前系統(tǒng)會(huì)話有效的環(huán)境變量,該環(huán)境變量不會(huì)被寫入系統(tǒng)的環(huán)境變量文件,也不會(huì)被永久保存。臨時(shí)環(huán)境變量會(huì)在關(guān)閉本次會(huì)話后自動(dòng)清除,不會(huì)影響下一次系統(tǒng)登錄。同時(shí)也不會(huì)影響用戶原有服務(wù)的環(huán)境變量。
在這里我們還需要進(jìn)行一步編輯,需要修改我們的jmeter.sh文件或jmeter文件,這里我們修改jmeter.sh文件。
進(jìn)入bin目錄
shell
cd bin ls
修改jmeter.sh
在這里有幾個(gè)問(wèn)題需要解釋一下
為什么需要修改這個(gè)配置?
? 在大并發(fā)的測(cè)試中,我們需要的大量的內(nèi)存來(lái)執(zhí)行壓力測(cè)試,而JMeter在默認(rèn)情況下的內(nèi)存分配非常低,我們需要自己把該項(xiàng)配置的最大堆修改成合適的值
那么我們應(yīng)該修改成多少合適呢?
? 根據(jù)負(fù)載機(jī)的內(nèi)存來(lái)決定該項(xiàng)的值為多少。在前面我們查詢了內(nèi)存為1.6GB,所以我們?cè)O(shè)置成1GB。一般建議設(shè)置為內(nèi)存的80%。例如一臺(tái)8GB的負(fù)載機(jī),我們可以設(shè)置為6GB。
shell
vim jmeter.sh
找到JVM-ARGS
復(fù)制該行,去除注釋,將512m修改為合適的大小
4、調(diào)試腳本
回到我們上面的腳本截圖
既然我們是在內(nèi)網(wǎng)環(huán)境下運(yùn)行,那么我們應(yīng)該將URL改為內(nèi)網(wǎng)ip訪問(wèn)才會(huì)達(dá)到理想效果。否則同樣需要走公網(wǎng)進(jìn)行訪問(wèn)。那么我們需要怎么解決呢?
方法一:
? 我們可以直接將域名改為IP。但是該方法不推薦
方法二:
? 修改負(fù)載機(jī)的host文件。推薦
為什么我們不推薦方法一呢?
? 如果使用的是方法一,我們就無(wú)法本機(jī)上進(jìn)行調(diào)試。而使用方法二我們不僅可以進(jìn)行本機(jī)調(diào)試,而且在負(fù)載機(jī)上也走的是內(nèi)網(wǎng)而不是公網(wǎng)。
5、修改host
我們先修改hosts文件
shell
vim /etc/hosts
輸入i插入host信息,修改后按esc后輸入:x
6、配置運(yùn)行腳本
新建一個(gè)文件夾放置腳本
同樣使用scp將腳本拷貝進(jìn)文件夾
shell
scp ./內(nèi)網(wǎng)測(cè)試.jmx root@192.168.2.45:~/myTest/jmeterTest
新建run.sh文件(也可以選擇在本機(jī)新建好再傳入負(fù)載機(jī))
shell
mkdir run.sh vim run.sh
run.sh腳本如下
shell
export JAVA_HOME=~/myTest/java/jdk-17.0.8 # jdk所在目錄 export JMETER_HOME=~/myTest/jmeter # jmeter所在目錄export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH # jdk和jmeter的bin目錄java --version # 檢查java是否配置成功 jmeter --version # 檢查jmeter是否配置成功
配置完成后保存,執(zhí)行run.sh
shell
bash run.sh
環(huán)境生效
再次編輯run.sh
shell
export JAVA_HOME=~/myTest/java/jdk-17.0.8 # jdk所在目錄 export JMETER_HOME=~/myTest/jmeter # jmeter所在目錄export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH # jdk和jmeter的bin目錄jmeter -n -t 內(nèi)網(wǎng)測(cè)試.jmx -l 內(nèi)網(wǎng)測(cè)試.jtl # 運(yùn)行腳本 # jmeter -g 內(nèi)網(wǎng)測(cè)試.jtl -o 內(nèi)網(wǎng)測(cè)試 # 如果并發(fā)過(guò)大建議生成HTML報(bào)告后scp到本地機(jī)# java --version # 檢查java是否配置成功 # jmeter --version # 檢查jmeter是否配置成功
運(yùn)行完成后
我們可以再次使用scp命令將生成的jtll文件傳回本地機(jī)后生成html報(bào)告,但是不推薦
為什么不推薦直接將腳本復(fù)制到本地機(jī)呢?
? 對(duì)于高并發(fā)的場(chǎng)景,生成的jtl文件會(huì)非常的龐大,所以我們一般建議將其生成為HTML報(bào)告,將HTML報(bào)告復(fù)制到本地機(jī)。如確實(shí)有必要收集jtl文件或者文件較小,可以采取直接將jtl文件復(fù)制到本機(jī)再生成HTML報(bào)告的方法
shell
scp root@192.168.2.45:~/myTest/jmeterTest/內(nèi)網(wǎng)測(cè)試.jtl ./
如果需要再次生成html報(bào)告,將運(yùn)行腳本注釋,取消生成html報(bào)告的注釋。再次bash run.sh即可
【性能測(cè)試】終于有一套全面的性能測(cè)試教程啦!真實(shí)企業(yè)性能測(cè)試全流程項(xiàng)目實(shí)戰(zhàn)!