1. 为什么要在Linux虚拟机搭建JMeterAntJenkins持续集成环境最近在帮电商团队优化性能测试流程时发现手工执行JMeter脚本存在三个致命问题测试结果分散在各自电脑上难以汇总、脚本版本管理混乱、非技术成员无法自主触发测试。这促使我研究基于Linux虚拟机的自动化方案原因很简单——Linux系统天生适合做服务端持续集成。选择虚拟机而非物理机部署主要考虑到这些实际因素资源隔离性能测试本身消耗大量CPU和内存独立虚拟机避免影响宿主机的稳定性环境复用通过虚拟机快照功能5分钟就能克隆出完全相同的测试环境成本控制阿里云ECS最便宜配置2核4G就能流畅运行整套工具链迁移便捷OVF格式虚拟机镜像可以在VMware、VirtualBox等平台自由迁移提示推荐使用Ubuntu Server 22.04 LTS作为基础系统其长期支持版本能保证工具链的稳定性且社区资源丰富。2. 环境准备与基础组件安装2.1 虚拟机基础配置在VMware Workstation中新建虚拟机时建议采用以下配置磁盘空间至少40GBJMeter测试结果文件可能很大内存分配最低4GB若需执行大规模压测建议8GB网络模式桥接网络方便宿主机访问Jenkins界面安装完成后首先执行sudo apt update sudo apt upgrade -y sudo apt install -y openjdk-11-jdk gitJDK版本需要特别注意Jenkins最新版要求Java 11但JMeter 5.4.1兼容Java 8-17这里选择折中的Java 11。2.2 JMeter安装与优化从官网下载二进制包解压后需要调整JMeter默认配置wget https://dlcdn.apache.org/jmeter/binaries/apache-jmeter-5.4.1.tgz tar -xzf apache-jmeter-5.4.1.tgz cd apache-jmeter-5.4.1/bin sed -i s/-Xms1g/-Xms512m/ jmeter.sh # 降低初始内存占用 sed -i s/-Xmx1g/-Xmx2g/ jmeter.sh # 提高最大内存限制关键目录说明bin/包含启动脚本和配置文件lib/ext/放置插件如WebDriver、MQTT等docs/保存测试报告模板2.3 Ant安装与构建文件配置Apache Ant的安装相对简单sudo apt install -y ant但需要特别设计build.xml文件结构。这是我优化过的模板project nameJMeter-Ant defaultrun property namejmeter.home value/opt/apache-jmeter-5.4.1/ property namereport.dir value${basedir}/report/ target namerun taskdef namejmeter classnameorg.programmerplanet.ant.taskdefs.jmeter.JMeterTask/ jmeter jmeterhome${jmeter.home} resultlog${report.dir}/result.jtl testplans dir${basedir} includes*.jmx/ /jmeter xslt in${report.dir}/result.jtl out${report.dir}/index.html style${jmeter.home}/extras/jmeter-results-detail-report_21.xsl/ /target /project3. Jenkins的核心配置技巧3.1 安全安装与插件管理使用官方提供的安装方式wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c echo deb http://pkg.jenkins.io/debian-stable binary/ /etc/apt/sources.list.d/jenkins.list sudo apt update sudo apt install -y jenkins安装后立即修改两个关键配置修改HTTP端口默认8080易冲突sudo sed -i s/HTTP_PORT8080/HTTP_PORT9080/ /etc/default/jenkins sudo systemctl restart jenkins替换插件下载源加速sudo sed -i s/https:\/\/updates.jenkins.io\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/ /var/lib/jenkins/hudson.model.UpdateCenter.xml3.2 构建任务的关键参数创建自由风格项目时这些参数最易出错源码管理如果使用Git务必配置SSH密钥而非HTTPS地址构建触发器推荐使用Poll SCM而非Build periodically避免空跑Post-build Actions添加Publish HTML reports插件时Index page[s]要写相对路径如report/index.html3.3 邮件通知的进阶配置在系统配置→邮件通知中测试时经常遇到发信失败要注意SMTP端口腾讯企业邮箱用465(SSL)网易邮箱用25(TLS)高级设置中必须勾选Use SMTP Authentication测试邮件接收人建议用真实邮箱部分邮件服务商会拦截发给自己的测试邮件4. 持续集成流程的实战优化4.1 JMeter脚本版本控制规范在团队协作中建议采用这样的目录结构performance-tests/ ├── scenarios/ │ ├── login/ │ │ ├── login.jmx │ │ └── test-data.csv ├── libraries/ │ └── user-defined-functions.jar └── build.xml每个JMX文件应该使用${__P(threads)}等参数化变量禁用View Results Tree等调试监听器在Test Plan中勾选独立运行每个线程组4.2 Ant构建的性能优化通过并行执行提升效率parallel threadCount2 jmeter jmeterhome${jmeter.home} resultlog${report.dir}/api.jtl testplans dir${basedir} includesapi-test.jmx/ /jmeter jmeter jmeterhome${jmeter.home} resultlog${report.dir}/ui.jtl testplans dir${basedir} includesui-test.jmx/ /jmeter /parallel4.3 测试报告的智能分析在Jenkins中集成Performance插件后可以设置失败阈值当90%响应时间500ms时标记为不稳定构建配置趋势图显示最近10次构建的TPS对比添加自定义指标通过正则表达式从日志中提取业务指标5. 踩坑实录与解决方案5.1 中文乱码问题连环套现象测试报告中的中文显示为问号 解决方案链JMeter配置修改bin/jmeter.propertiessampleresult.default.encodingUTF-8Ant配置build.xml中增加encoding属性xslt inresult.jtl outreport.html stylejmeter-results-detail-report_21.xsl encodingUTF-8/Jenkins配置系统属性增加-Dfile.encodingUTF-85.2 资源监控的隐藏技巧常规做法是使用JMeter的PerfMon插件但在虚拟机环境中更推荐nohup sar -u -r -n DEV 1 system_stats.log 然后在Ant的build.xml中添加exec executablesh output${report.dir}/system_stats.html arg value-c/ arg valuecat system_stats.log | sadf -h -- -u -r -n DEV ${report.dir}/system_stats.html/ /exec5.3 Jenkins管道脚本的防呆设计对于复杂的多环境测试建议使用Jenkinsfilepipeline { agent any stages { stage(Checkout) { steps { git branch: main, url: gitexample.com:performance-tests.git } } stage(Run Test) { steps { sh ant -Dthreads${params.THREADS} } } } post { always { archiveArtifacts artifacts: report/** emailext body: ${currentBuild.currentResult}: ${env.BUILD_URL}, subject: JMeter Test ${currentBuild.currentResult}, to: teamexample.com } } }这套环境搭建完成后我们的回归测试效率提升了70%。最惊喜的是产品经理现在可以自助触发测试只需在Jenkins界面点击Build with Parameters并输入线程数即可。对于想深入优化的同学建议后续研究将测试结果自动存入InfluxDBGrafana实现实时监控使用Docker容器化JMeter实现动态扩缩容集成SonarQube进行测试代码质量分析
企业数字化 ERP 产品动态
相关推荐
Windows下React Native Android环境搭建与调试指南 1. Windows下React Native Android环境搭建全指南作为跨平台移动开发的主流框架,React Native让开发者能够使用JavaScript构建原生应用。但在Windows平台搭建Android开发环境时,往往会遇到各种"坑"。本文将基于最新稳定版React Native 0.73&am… · 2026/9/20 23:54:05
DOS与Linux命令对比:跨平台开发必备技能 1. 为什么需要同时掌握DOS和Linux命令? 在当今的技术环境中,虽然Linux系统在服务器、云计算和开发领域占据主导地位,但Windows系统仍然是个人电脑的主流操作系统。作为一名技术人员,同时掌握DOS(Windows命令提示符&… · 2026/9/16 13:09:55
如何从零搭建高效技术博客:选型与运营指南 1. 为什么你需要一个个人技术博客 在技术行业摸爬滚打十几年后,我越来越意识到一个事实:那些真正在职业发展上取得突破的人,往往都有记录和分享的习惯。个人技术博客不仅仅是一个展示窗口,它更像是一个技术人的"第二大脑&quo… · 2026/9/20 13:16:34
别被忽悠!3步讲透网站设计班培训,教你从零搭建避坑指南 别被忽悠!3步讲透网站设计班培训,教你从零搭建避坑指南 网站做好了没人访问,这几乎是每个刚入行或者想转行做网站的人最崩溃的瞬间。你熬了几个大夜改代码,盯着屏幕上的像素死磕,结果上线一周,百度收录个位数,后台访客寥寥无几。这时候你才反应过来,… · 2026/9/27 5:07:33
多时间尺度源-储-荷协同规划:储能容量优化配置与全寿命周期经济性评估实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 5:07:27
Storm 延迟监控与 SLO 管理:构建可靠实时计算系统的核心保障 Storm 延迟监控与 SLO 管理:构建可靠实时计算系统的核心保障1. 消息延迟度量体系构建
实时计算系统中,消息延迟是衡量系统性能的核心指标。构建延迟度量体系需覆盖数据采集、处理、存储全链路,确保延迟数据的准确性与实时性。消息延迟度量流程… · 2026/9/27 5:07:15
智慧工厂建设蓝图:三集成四层次五平台框架拆解与落地 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 5:07:02
双纤双向光模块选型避坑指南:USOT系列速率、波长与距离详解 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 5:06:56
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01