【性能測試】jmeter+Linux環境部署和分布式壓測,一篇打通...

目錄:導讀

    • 前言
    • 一、Python編程入門到精通
    • 二、接口自動化項目實戰
    • 三、Web自動化項目實戰
    • 四、App自動化項目實戰
    • 五、一線大廠簡歷
    • 六、測試開發DevOps體系
    • 七、常用自動化測試工具
    • 八、JMeter性能測試
    • 九、總結(尾部小驚喜)


前言

1、linux獲取動態ip或靜態ip

1)virtualbox 加載linux虛擬機鏡像文件,加載時重置全部網卡,加載后網絡選擇“橋接網絡”–本機當前使用網卡;

2)ifconfig #獲取linux虛擬機ip地址,記下HWADDR 值;

3)vi /etc/sysconfig/network-scripts/ifcfg-eth0 #將 HWADDR 修改為上步的記錄下來的值,BOOTPROTO=dhcp,自動獲取動態ip;

4)rm -rf /etc/udev/rules.d/70-persistent-net.rules #刪除網絡緩存文件;
5)service network restart #重啟網絡服務
6)ifconfig #驗證是否自動獲取了ip

7)如果在第5步報錯failed,也可以設置使用靜態ip,設置 ifcfg-eth0 里的 BOOTPROTO=static ,如下圖,ip設置時,與主機當前wifi保持同一個網段。設置后進行第4步然后重啟生效;

在這里插入圖片描述

2、linux上jdk 安裝

1)路徑:/usr/local/ ,輸入rz,上傳jdk-8u201-linux-i586.tar.gz,執行:tar xvf jdk-8u201-linux-i586.tar.gz 解壓,生成jdk文件夾;

2)執行 vi /etc/profile,配置環境變量,在profile 下面增加這段后,按esc,冒號,wq保存并退出:

export JAVA_HOME=/usr/local/jdk1.8.0_201
export JMETER_HOME=/export/servers/apache-jmeter-5.1.1      (jmeter配置,在/export/servers/路徑下)
export JAVA_BIN=/usr/local/jdk1.8.0_201/bin
export CLASS_PATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_BIN:$JMETER_HOME/bin

3)執行 source /etc/profile 使配置文件生效;
4)執行java -v ,驗證,返回jdk1.8,則安裝配置成功;

3、linux上mysql 安裝

1)先卸載系統自帶的mysql,停止mysql:service mysql stop

2)查找以前是否裝有mysql,命令:rpm -qa|grep -i mysql,可以看到mysql的幾個包:

qt-mysql-4.6.2-26.el6_4.i686
perl-DBD-MySQL-4.013-3.el6.i686
MySQL-client-5.6.17-1.linux_glibc2.5.i386
MySQL-server-5.6.17-1.linux_glibc2.5.i386

依次刪除上述四個包:rpm -e --nodeps 包名
刪除老版本mysql的開發頭文件和庫:

rm -rf /usr/lib/mysql    rm -rf /usr/include/mysql
rm -rf /etc/my.cnf
rm -rf /var/lib/mysql

3)將新版本 mysql-5.6.27-linux-glibc2.5-i686.tar.gz上傳到/usr/local/ 下,tar xvf mysql-5.6.27-linux-glibc2.5-i686.tar.gz,解壓(如果解壓過程中出現tar的報錯,忽略)

4)然后重命名:mv mysql-5.6.27-linux-glibc2.5-i686 mysql

5)添加系統mysql組和mysql用戶:

groupadd mysql
useradd mysql -g mysql

6)進入到解壓完的mysql目錄下,修改文件所有者和組為mysql , chown -R mysql:mysql ./*

7)安裝數據庫:執行命令 ./scripts/mysql_install_db --user=mysql

8)進入到mysql的support-files目錄下,執行cp mysql.server /etc/init.d/mysql

9)啟動mysql服務:執行命令service mysql start

10)執行命令:ps -ef | grep mysql 看到mysql服務說明啟動成功

11)進入到mysql的bin目錄下,設置密碼:./mysqladmin -u root password '密碼'

12)創建軟鏈接,保證任何路徑下都可以啟動mysql:ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

13)登錄mysql,mysql -u root -p

14)對遠程訪問進行授權: grant all privileges on *.* to root@"%" identified by '123456' with grant option;

mysql linux下導入數據
導入(必須在mysql內部執行):在mysql命令行下:source xxx.sql
導出(mysql外部執行):mysqldump

導出整個數據庫(包括數據庫中的數據):

mysqldump -u username -p dbname > dbname.sql

導出數據庫結構(不含數據):

mysqldump -u username -p -d dbname > dbname.sql

導出數據庫中的某張數據表(包含數據):

mysqldump -u username -p dbname tablename > tablename.sql

導出數據庫中的某張數據表的表結構(不含數據):

mysqldump -u username -p -d dbname tablename > tablename.sql

mysql官方客戶端常用命令:

創建數據庫:create database xxx;
查看所有數據庫:show databases;
使用某個數據庫:use xxx;
查看當前數據庫下有什么表:show tables;
查看某個表的表結構:desc xxx;
退出:exit;

例如:
創建數據庫,啟動數據庫服務,登錄mysql(見上方第9、13步)后,在mysql內部,輸入 create database oa

進入oa庫,導入sql: use oa; 然后執行 source oa.sql;

4、linux上JMeter安裝及參數優化

1)路徑:/export/servers/ ,輸入rz,上傳apache-jmeter-5.1.1.zip,執行:unzip apache-jmeter-5.1.1.zip 解壓,生成jmeter文件夾;

2)配置環境變量,參見二、linux上jdk 安裝的環境變量配置步驟2,進到Jmeter 根目錄下需要添加執行權限 chmod -R +x ./*

3)進入 jmeter文件夾,bin目錄下:修改reportgenerator.properties 中 jmeter.reportgenerator.overall_granularity=1000(報表中數據展示間隔1秒);

4)修改控制臺取樣間隔的設置,bin下 jmeter.properties 中

summariser.interval=10,默認為30s,最低可修改為6s;
sampleresult.default.encoding=UTF-8  ,默認編碼方式;修改bin下jmeter中,增加一行    HEAP="-Xms2g -Xmx2g -XX:MaxMetaspaceSize=256m"   

5、linux上tomcat部署

1)單項目部署:
僅一個項目時,將war包放到tomcat下webapps目錄下,然后返回bin目錄,執行:./startup.sh & tail -f ../logs/catalina.out 啟動服務,然后去瀏覽器進入項目訪問,就可以驗證服務啟動是否成功了。

2)多項目部署:
創建文件夾/export/apps,將項目的war包或其他格式壓縮包 放入路徑/app-pinter/pinter下,注意層級關系。/export/apps/app-oa/oa/WEB-INF等文件

復制tomcat為多個,重命名:

項目1:mv apache-tomcat-8.5.38 tomcat-pintercd tomcat-pinter/conf, vi server.xml, 非編輯模式下按“/”搜索appBase, 修改路徑為/export/apps/app-pinter

項目2:mv apache-tomcat-8.5.38 tomcat-oacd tomcat-oa/conf, vi server.xml, 非編輯模式下按“/”搜索appBase, 修改路徑為/export/apps/app-oa

然后修改項目2啟動時所占用的端口號8080(HTTP/1.1)、8009(AJP/1.3)、8005(SHUTDOWN)為:8081、8010、8006

在這里插入圖片描述

完成后,分別進入tomcat-**/bin,運行:./startup.sh & tail -f ../logs/catalina.out,即可啟動各自對應的項目;

6、linux上jmeter腳本運行及報告生成

1)將windows上調試好的jmx腳本上傳至home目錄下新建文件夾test,(java請求,將jar包和依賴包文件夾放至jmeter下lib/ext/目錄下);

2)單機器測試步驟: 執行./jmeter -n -t /home/test/TestPlan.jmx -l /home/test/result.jtl

-n:命令行模式,no-gui;
-t:jmx腳本路徑;
-l:jtl結果文件存放路徑

運行顯示結果如下圖,只展示total數據,不能區分接口

在這里插入圖片描述

3)結果文件result.jtl 可以用sz /home/test/result.jtl 命令下載下來,使用jmeter查看聚合報告中的瀏覽打開;

4)在linux中分析結果生成報表:創建文件夾output,存放報表

執行:jmeter -g result.jtl -o output 將output中內容一起下下來,瀏覽器中打開可看到數據和趨勢圖表。

如果報找不到主機類錯誤,需配置一下hosts。步驟見下節

7、linux上JMeter 分布式壓測

分布式測試步驟:舉例—有壓力機A(主)、B(輔), 被測機器C(啟動tomcat服務)

1)需配host:vi /etc/hosts,在后面增加一行 192.168.0.12 hostname,否則啟動jmeter server會報錯!

2)在A、B上都部署 jmeter,路徑相同。C上啟動項目對應的tomcat服務。

3)如果是java腳本,將java腳本和相關lib包都放在A、B jmeter目錄lib/ext下,將jmx上傳到主壓力機A上的/home/test(自己創建)/**.jmx下,如果有csv數據文件,傳到A、B jmx腳本同路徑下。

4)進入到jmeter目錄下,將A、B j兩臺機器上的jmeter下所有文件都賦予可執行權限,chmod -R +x ./*

5)修改A jmeter/bin/jmeter.properties,將其中的remote_hosts修改為作為壓力機的兩臺機器ip,remote_hosts=127.0.0.1,192.168.0.102,修改server.rmi.ssl.disable=true

6)在A、B上進入到jmeter的bin目錄下,都啟動nohup ./jmeter-server &,(后臺啟動jmeter-server服務)。

7)在主jmeter的機器上,執行 jmeter -n -t jdbc.jmx -l result.jtl -r(r 表示多臺機器)

8)另一種不需要改配置文件:執行jmeter -n -t jdbc.jmx -l result.jtl -R 127.0.0.1,192.168.0.12(示例)

注意:
如果是http腳本,在controller的機器上有腳本文件即可;
如果是Java腳本,在每一臺機器上都得有腳本文件和依賴的jar包;
必要時,修改jmx中的csv文件為絕對路徑;
需要關閉兩臺壓力機的防火墻:service iptables stop

兩臺壓力機間互傳文件 scp data.txt root@192.168.0.117:/home/test/,按enter回車后輸入密碼即可傳送成功 ;

主壓力機A上不要用ctrl+c或q手動退出運行,會導致B機器上停止不及時,如需停止,進入jmeter/bin下運行./shutdown.sh;

不同壓力機上的數據會自動匯總到主壓力機上;
如jmeter上兩個線程組并發數各為10,兩臺壓力機上最終統計的并發數為40;

完整版!企業級性能測試實戰,速通Jmeter性能測試到分布式集群壓測教程

下面是我整理的2025年最全的軟件測試工程師學習知識架構體系圖

一、Python編程入門到精通

請添加圖片描述

二、接口自動化項目實戰

請添加圖片描述

三、Web自動化項目實戰

請添加圖片描述

四、App自動化項目實戰

請添加圖片描述

五、一線大廠簡歷

請添加圖片描述

六、測試開發DevOps體系

請添加圖片描述

七、常用自動化測試工具

請添加圖片描述

八、JMeter性能測試

請添加圖片描述

九、總結(尾部小驚喜)

人生最動人的風景,往往藏在最難攀爬的高處。當你覺得力竭時,請記住:每一次堅持都在雕刻更強大的自己。別問路有多遠,只管邁步向前;別怕山有多高,向上攀登就是答案!

你體內沉睡著改變世界的力量!每個清晨都是改寫命運的新機會,每次挫折都是精心包裝的禮物。當全世界都在說"不可能"時,正是你證明"可能"的最好時機!

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

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

相關文章

Java 17 新特性筆記

Java 17 是一個 長期支持版本(LTS),于 2021 年 9 月發布,是繼 Java 11 之后的重要里程碑。它整合了 Java 12~16 的眾多特性,并引入新的語言增強、JDK API 改進、性能優化和安全增強。 Java 17 版本信息 發布時間&…

WWDC 25 風云再起:SwiftUI 7 Charts 心法從 2D 到 3D 的華麗蛻變

概述 在 iOS 開發這個波譎云詭的江湖中,SwiftUI 可謂是一位后起之秀,以其簡潔明快的招式迅速在 UI 框架領域中嶄露頭角。 而其中的 Charts 框架,更是如同江湖中的 “數據可視化寶典”那樣,讓各位禿頭少俠們能夠輕松將復雜的數據轉…

Vue+Element Plus 中按回車刷新頁面問題排查與解決

VueElement Plus 中按回車刷新頁面問題排查與解決原因分析解決方案方法一:阻止默認行為 submit.prevent方法二:只監聽回車并觸發搜索最終推薦寫法如下:在使用 Vue 3 Element Plus 開發后臺系統時,我們常常會通過 搭配 實現搜索功…

x86匯編語言入門基礎(三)匯編指令篇3 位移運算

位移運算指令:SHL邏輯移位,SAR算術移位, ROR循環右移 1. SHL 邏輯移位 Shift Left, SHL代表向左移位,SHR代表向右移位 指令格式:shl op1, op2 目的操作數 op1:寄存器/內存地址源操作數 op2:寄…

Java-69 深入淺出 RPC 單體架構 垂直架構 分布式架構 微服務架構

點一下關注吧!!!非常感謝!!持續更新!!! 🚀 AI篇持續更新中!(長期更新) AI煉丹日志-29 - 字節跳動 DeerFlow 深度研究框斜體樣式架 私有…

Android 如何阻止應用自升級

問題背景 1.打開PlayStore,然后登陸賬戶 2.退出應用過幾分鐘后,應用會自動更新到新版本 3.再次打開應用,問題即可復現 一聯網進入playStore應用并且登錄谷歌賬號,退出幾分鐘,在進入,發現應用版本號更新了,應用進行了自我升級,關鍵是升級之后谷歌商店就用不了了,就…

Docker-構建鏡像并實現LNMP架構

一、搭建LNMP基礎配置1、制作Nginx鏡像制作dockerfilevim dockerfileFROM centos:7 RUN rm -rf /etc/yum.repos.d/* RUN curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo RUN yum clean all RUN yum makecache RUN yum -y install z…

Python之--基本知識

基本輸出語法結構: print(輸出內容)print()函數完整的語法格出: print (value,...,sep,end\n,fileNone)只有字符串可以用連接基本輸入語法結構: xinput(提示文字’)注意事項: 無論輸入的數據是什么 x 的數據類型都是字符串類型示例:name input("Enter your na…

VS CodeC51 單片機開發環境搭建

文章目錄前言1.安裝插件2.創建EIDE項目(51單片機)3.配置工具鏈(第一次使用需要配置)4.編譯與下載5.項目文件簡介與串口調試工具6.推薦插件7.打包模板與導出模板8.51單片機串口無法識別問題前言 需要安裝keil c51版本需要配置好C/…

國密算法(SM2/SM3/SM4)

文章目錄國密算法(SM2/SM3/SM4)詳解:從性能對比到Java手機號安全處理實戰一、 國密核心算法簡介二、 性能深度對比三、 Java實戰:手機號的安全處理方案一:使用SM3哈希存儲(推薦用于驗證場景)方案…

從前端轉go開發的學習路線

從前端開發轉向 Go(Golang)后端開發,是一個非常可行也很實用的方向,特別是在做 高性能微服務、分布式系統、云原生(如Kubernetes) 等方面。以下是一份適合你(有多年開發經驗的前端開發者&#x…

node或瀏覽器上傳文件到阿里云OSS

阿里云配置 進入阿里云OSS Bucket 列表的某個 Bucket 倉庫下,點擊訪問控制 RAM 創建用戶 勾上 創建 AccessKey ID 和 AccessKey Secret 復制 AccessKey 信息 用文檔保存 創建角色 選擇云賬號 復制 ARN 用文檔保存,然后 新增權限 搜索 oss 選擇 AliyunOSS…

26考研物理復試面試常見問答問題匯總,物理專業保研推免夏令營面試問題匯總,物理本科知識專業面試最全攻略!

還在為物理考研復試面試發愁?還在為物理招聘的專業面試抓狂?還在為即將到來的物理夏令營面試不知從何下手、翻遍了厚厚的教材卻抓不住重點?別慌,接下來我會從「考研的物理復試經歷」「物理面試攻略」「物理面試基礎問答題匯總很全…

(5)機器學習小白入門 YOLOv:數據需求與圖像不足應對策略

(1)機器學習小白入門YOLOv :從概念到實踐 (2)機器學習小白入門 YOLOv:從模塊優化到工程部署 (3)機器學習小白入門 YOLOv: 解鎖圖片分類新技能 (4)機器學習小白入門YOLOv :圖片標注實操手冊 (5)機器學習小白入門 YOLOv:…

百年制造名企,三菱重工引領“智”造新范式

日前,由深圳軟件協會指導、法大大和信息俠聯合出品的《制造行業合同數智化升級白皮書》(以下簡稱“白皮書”)正式發布,并首次提出 “電子簽法律AI” 雙輪驅動模型。在制造行業面臨供應鏈協同、合規風控及全球化出海等多重挑戰的當…

【學習筆記】計算機操作系統(七)—— 文件管理

第七章 文件管理 文章目錄第七章 文件管理7.1 文件和文件系統7.1.1 數據項、記錄和文件7.1.2 文件名和類型7.1.3 文件系統的層次結構7.1.4 文件操作7.2 文件的邏輯結構7.2.1 文件邏輯結構的類型7.2.2 順序文件(Sequential File)7.2.3 記錄尋址7.2.4 索引文件(Index File)7.2.5 …

基于PyQt5與深度學習的可視化水果識別系統(集成CNN, MobileNetV2, VGG16)

一、項目概述 大家好!今天我將分享一個我近期完成的深度學習項目——一個功能強大的、帶圖形化界面(GUI)的水果識別系統。該系統不僅能識別靜態圖片中的水果,還集成了模型訓練、評估、數據增強等功能于一體,為深度學習…

k8s-服務發布基礎

目錄 Service的定義 核心定義 Service 的類型 關鍵組件與機制 工作流程示例 高級特性 Service工作原理 核心工作原理 標簽選擇器(Label Selector) Endpoints 對象 網絡代理與負載均衡(kube-proxy) userspace 模式&#…

洛谷P1514 [NOIP 2010 提高組] 引水入城

洛谷P1514 [NOIP 2010 提高組] 引水入城 洛谷題目傳送門 題目背景 NOIP2010 提高組 T4 題目描述 在一個遙遠的國度,一側是風景秀美的湖泊,另一側則是漫無邊際的沙漠。該國的行政區劃十分特殊,剛好構成一個 NNN 行 MMM 列的矩形&#xff…

【unity小技巧】國內Unity6下載安裝和一些Unity6新功能使用介紹

文章目錄前言一、安裝1、國外下載2、國內下載二、常用的新功能變化1、官方推薦使用inputsystem進行輸入控制2、修復了InputSystem命名錯誤導致listen被遮擋的bug3、自帶去除unity啟動畫面logo功能4、unity官方的behavior行為樹插件5、linearVelocity代替過時的velocity方法6、隨…